The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes how to deploy the autoscaled Cisco Firepower Threat Defense Virtual (FTDv) in Azure in a high trust environment.
Cisco recommends that you have knowledge of these topics:
The information in this document is based on these software and hardware versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
FTDv brings Cisco's Firepower Next-Generation Firewall functionality to virtualized environments, enabling consistent security policies to follow workloads across your physical, virtual, and cloud environments, and between clouds.
With these deployments being available in a virtualized environment, currently support for HA is not available for NGFW. Hence, to provide a highly available solution Cisco Next-Generation Firewall (NGFW) utilizes Azure's native features such as Availability Sets and Virtual Machine Scale Set (VMSS) to make NGFW highly available and cater to increasing traffic on demand.
This document focuses on Configuring Cisco NGFW to AutoScale based on different parameters wherein NGFW scales in or scales out ON-DEMAND. This covers the use case where the customer has a requirement to use Firepower Management Center (FMC) which is available in colocation datacenter and needed to centrally manage all NGFW, also customers don't want to have FMC and FTD to communicate over Public IP for management traffic.
Before going deeper into configuration and design consideration following are the few concepts that should be well understood wrt to Azure:
Currently, the AutoScale solution available for NGFW does not provide a management plan to communicate with the Private IP local to the VNet and requires Public IP to exchange communication between Firepower Management Center and NGFW.
This article aims to solve this problem until the verified solution is available for Firepower Management Center and NGFW communication over private IP.
In order to create an Autoscaled NGFW solution this Configuration Guide is used:
with several modifications so that the following use cases can be addressed:
In order to create an AutoScaled NGFW solution, with the above-mentioned use cases you need to modify these in the steps mentioned in Cisco’s official Guide:
ARM Template is used for enabling Automation in Azure. Cisco has provided a verified ARM Template that can be leveraged for creating an autoscale solution. But this ARM Template available at Public Github https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/ARM%20Template creates a Functions App that can not be made to communicate to Customer’s Internal Network though they are reachable over Express Routes. Hence we need to modify this a little bit so that Function App could now use, Premium mode instead of Consumption Mode. The Required ARM Template hence is available at https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git
The Function App is a set of Azure functions. The basic functionality includes:
As mentioned in the requirement the various Function being created for On-Demand NGFW creation or deletion is done based on the NGFW’s Public IP. Hence we need to tweak C# code to get private IP instead of Public IP. After Tweaking the code the zip file to create the Function App is available at https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git
with the name ASM_Function.zip. This enables the Functions app to communicate to Internal Resources without having the Public IP.
The Auto Scale Logic App is a workflow, i.e. a collection of steps in a sequence. Azure functions are independent entities and cannot communicate with each other. This orchestrator sequences the execution of these functions and exchanges information between them.
Note: The Logic app detail available at https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git should be carefully modified and the following items must be replaced with deployment details, FUNSTIONAPP Name, RESOURCE GROUP Name, SUBSCRIPTION ID.
This image shows how Inbound and Outbound traffic flows within an Azure Environment through NGFW.
Now create various components required for an autoscaled solution.
Use the ARM Template and create VMSS, Logic APP, Function APP, App Insight, Network Security Group.
Navigate to Home > Create a Resource > Search for Template and then select Template Deployment. Now click on Create and build your own template in the editor.
Make the required changes to this template and click on Review +Create.
https://<function_app_name>.scm.azurewebsites.net/DebugConsole
Upload the file ASM_Function.zip and ftdssh.exe to site/wwwroot/ folder (It is mandatory to upload it to the specified location else Function App does not Identify various functions.)
It should be like this image:
Navigate to <prefix>-vmss> Access Control (IAM) > Add role assignement. Provide this VMSS a contributor access to <prefix>-function-app
Click Save.
https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/Logic%20App
Here the Azure Subscription, Resource Group Name, and Function App Name need to be replaced before use, else it does not allow to save successfully.
Once the Logic App is enabled then immediately it starts executing in the interval of 5 min.
If everything is configured correctly then you see trigger actions getting successful.
Also, VM is created under VMSS.
Log in to FMC and check that FMC and NGFW are connected over FTDv Private IP:
While you login to the NGFW CLI you see these :
Hence FMC communicates to NGFW over Azure Private VNet Subnet.
Sometimes Logic App fails while building up a new NGFW, to troubleshoot such condition these steps can be taken:
Click on the failed trigger.
Try to identify the failure point from the code flow. From the above snippet, it is clear that ASM logic failed as it was not able to connect to FMC. Next, you need to identify why FMC was not reachable as per flow within Azure.