Documents Product Categories Cisco Secure Firewall ASA Virtual - BYOL

Cisco Secure Firewall ASA Virtual - BYOL

Aug 06, 2024
is present. 4. Delete the tag vmware.cdrom.iso. Or Replace the tag vmware.cdrom.iso with vmware.cdrom.remotepassthrough. See the Deploying an OVF fails on vCenter Server 5.1/5.5 when VMware tools are installed (2034422) published by VMware for more information. 5. Enter the property values for UserPrivilege, OvfDeployment, and ControllerType. For example: - + - Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 17Deploy the ASA Virtual Using VMware Guidelines and Limitations + - + 6. Save the OVF file. 7. Deploy the ASA virtual using the OVF template. See, Deploy the ASA virtual Using the VMware vSphere Web Client. Failover for High Availability Guidelines For failover deployments, make sure that the standby unit has the same license entitlement; for example, both units should have the 2Gbps entitlement. Important When creating a high availability pair using ASA virtual, it is necessary to add the data interfaces to each ASA virtual in the same order. If the exact same interfaces are added to each ASA virtual, but in different order, errors may be presented at the ASA virtual console. Failover functionality may also be affected. For the ESX port group used for ASA virtual Inside interface or ASA virtual failover high availability link, configure the ESX port group failover order with two virtual NICs – one as active uplink and the other as standby uplink. This is necessary for the two VMs to ping each other or ASA virtual high availability link to be up. IPv6 Guidelines You cannot specify IPv6 addresses for the management interface when you first deploy the ASA virtual OVF file using the VMware vSphere Web Client; you can later add IPv6 addressing using ASDM or the CLI. vMotion Guidelines • VMware requires that you only use shared storage if you plan to use vMotion. During ASA virtual deployment, if you have a host cluster you can either provision storage locally (on a specific host) or on a shared host. However, if you try to vMotion the ASA virtual to another host, using local storage will produce an error. Memory and vCPU Allocation for Throughput and Licensing • The memory allocated to the ASA virtual is sized specifically for the throughput level. Do not change thememory setting or any vCPU hardware settings in the Edit Settings dialog box unless you are requesting a license for a different throughput level. Under-provisioning can affect performance. Note If you need to change the memory or vCPU hardware settings, use only the values documented in Licensing for the ASA Virtual, on page 1. Do not use the VMware-recommendedmemory configurationminimum, default, andmaximum values. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 18Deploy the ASA Virtual Using VMware VMware Feature Support for the ASA Virtual CPU Reservation • By default the CPU reservation for the ASA virtual is 1000 MHz. You can change the amount of CPU resources allocated to the ASA virtual by using the shares, reservations, and limits settings (Edit Settings > Resources > CPU). Lowering the CPU Reservation setting from 1000 Mhz can be done if the ASA virtual can perform its required purpose while under the required traffic load with the lower setting. The amount of CPU used by an ASA virtual depends on the hardware platform it is running on as well as the type and amount of work it is doing. You can view the host’s perspective of CPU usage for all of your virtual machines from the CPU Usage (MHz) chart, located in the Home view of the Virtual Machine Performance tab. Once you establish a benchmark for CPU usage when the ASA virtual is handling typical traffic volume, you can use that information as input when adjusting the CPU reservation. See the CPU Performance Enhancement Advice published by VMware for more information. • You can use the ASA virtual show vm and show cpu commands or the ASDM Home > Device Dashboard > Device Information > Virtual Resources tab or the Monitoring > Properties > System Resources Graphs > CPU pane to view the resource allocation and any resources that are over- or under-provisioned. Transparent Mode on UCS B Series Hardware Guidelines MAC flaps have been observed in some ASA virtual configurations running in transparent mode on Cisco UCS B Series hardware. When MAC addresses appear from different locations you will get dropped packets. The following guidelines help prevent MAC flaps when you deploy the ASA virtual in transparent mode in VMware environments: • VMware NIC teaming—If deploying the ASA virtual in transparent mode on UCS B Series, the Port Groups used for the Inside and Outside interfaces must have only 1 Active Uplink, and that uplink must be the same. You configure VMware NIC teaming in vCenter. See the VMware documentation for complete information on how to configure NIC teaming. • ARP inspection—Enable ARP inspection on the ASA virtual and statically configure theMAC and ARP entry on the interface you expect to receive it on. See the Cisco Secure Firewall ASA Series General Operations Configuration Guide for information about ARP inspection and how to enable it. Additional Guidelines and Limitations • The ASA Virtual boots without the two CD/DVD IDE drives if you are running ESXi 6.7, vCenter 6.7, ASA Virtual 9.12 and above. • The vSphere Web Client is not supported for ASA virtual OVF deployment; use the vSphere client instead. VMware Feature Support for the ASA Virtual The following table lists the VMware feature support for the ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 19Deploy the ASA Virtual Using VMware VMware Feature Support for the ASA Virtual Table 9: VMware Feature Support for the ASA Virtual Feature Description Support (Yes/No) Comment Cold Clone The VM is powered off Yes during cloning. ¯ DRS Used for dynamic Yes resource scheduling and distributed power See VMware guidelines. management. Hot add TheVM is running during No an addition. ¯ Hot clone TheVM is running during No cloning. ¯ Hot removal The VM is running during No removal. ¯ Snapshot The VM freezes for a few Yes Use with care. You may seconds. lose traffic. Failover may occur. Suspend and resume The VM is suspended, Yes then resumed. ¯ vCloud Director Allows automatic No deployment of VMs. ¯ VM migration The VM is powered off Yes during migration. ¯ vMotion Used for live migration of Yes Use shared storage. See VMs. vMotion Guidelines, on page 18. VMware FT Used for HA on VMs. No Use ASA virtual failover for ASA virtual machine failures. VMware HA Used for ESXi and server Yes Use ASA virtual failover failures. for ASA virtual machine failures. VMware HA with VM Used for VM failures. No Use ASA virtual failover heartbeats for ASA virtual machine failures. VMware vSphere Used to deploy VMs. Yes Standalone Windows ¯ Client Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 20Deploy the ASA Virtual Using VMware Prerequisites Feature Description Support (Yes/No) Comment VMware vSphere Web Used to deploy VMs. Yes Client ¯ Prerequisites You can deploy the ASA virtual using the VMware vSphere Web Client, vSphere standalone client, or the OVF tool. See Cisco Secure Firewall ASA Compatibility for system requirements. Security Policy for a vSphere Standard Switch For a vSphere switch, you can edit Layer 2 security policies and apply security policy exceptions for port groups used by the ASA virtual interfaces. See the following default settings: • Promiscuous Mode: Reject • MAC Address Changes: Accept • Forged Transmits: Accept You may need to modify these settings for the following ASA virtual configurations. See the vSphere documentation for more information. Table 10: Port Group Security Policy Exceptions Routed Firewall Mode Transparent Firewall Mode Security Exception No Failover Failover No Failover Failover Promiscuous Mode Accept Accept MAC Address Accept Accept Changes Forged Transmits Accept Accept Accept Unpack the ASA Virtual Software and Create a Day 0 Configuration File You can prepare a Day 0 configuration file before you launch the ASA virtual. This file is a text file that contains the ASA virtual configuration to be applied when the ASA virtual is launched. This initial configuration is placed into a text file named “day0-config” in a working directory you chose, and is manipulated into a day0.iso file that is mounted and read on first boot. At the minimum, the Day 0 configuration file must contain commands to activate the management interface and set up the SSH server for public key authentication, but it can also contain a complete ASA configuration. A default day0.iso containing an empty day0-config is provided with the release. The day0.iso file (either your custom day0.iso or the default day0.iso) must be available during first boot. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 21Deploy the ASA Virtual Using VMware Unpack the ASA Virtual Software and Create a Day 0 Configuration File Before you begin We are using Linux in this example, but there are similar utilities for Windows. • To automatically license the ASA virtual during initial deployment, place the Smart Licensing Identity (ID) Token that you downloaded from the Cisco Smart Software Manager in a text file named ‘idtoken’ in the same directory as the Day 0 configuration file. • If you want to access and configure the ASA virtual from the serial port on the hypervisor instead of the virtual VGA console, you should include the console serial setting in the Day 0 configuration file to use the serial port on first boot. • If you want to deploy the ASA virtual in transparent mode, you must use a known running ASA config file in transparent mode as the Day 0 configuration file. This does not apply to a Day 0 configuration file for a routed firewall. • See the OVF file guidelines in Guidelines and Limitations, on page 15 for additional information about how the ISO images are mounted on the ESXi hypervisor. Step 1 Download the ZIP file from Cisco.com, and save it to your local disk: https://www.cisco.com/go/asa-software Note A Cisco.com login and Cisco service contract are required. Step 2 Unzip the file into a working directory. Do not remove any files from the directory. The following files are included: • asav-vi.ovf—For vCenter deployments. • asav-esxi.ovf—For non-vCenter deployments. • boot.vmdk—Boot disk image. • disk0.vmdk—ASA virtual disk image. • day0.iso—An ISO containing a day0-config file and optionally an idtoken file. • asav-vi.mf—Manifest file for vCenter deployments. • asav-esxi.mf—Manifest file for non-vCenter deployments. Step 3 Enter the CLI configuration for the ASA virtual in a text file called “day0-config.” Add interface configurations for the three interfaces and any other configuration you want. The fist line should begin with the ASA version. The day0-config should be a valid ASA configuration. The best way to generate the day0-config is to copy the desired parts of a running config from an existing ASA or ASA virtual. The order of the lines in the day0-config is important and should match the order seen in an existing show running-config command output. We provide two examples of the day0-config file. The first example shows a day0-config when deploying an ASA virtual with Gigabit Ethernet interfaces. The second example shows a day0-config when deploying an ASA virtual with 10 Gigabit Ethernet interfaces. You would use this day0-config to deploy an ASA virtual with SR-IOV interfaces; see Guidelines and Limitations, on page 39. Example: ASA Version 9.4.1 ! Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 22Deploy the ASA Virtual Using VMware Unpack the ASA Virtual Software and Create a Day 0 Configuration File console serial interface management0/0 nameif management security-level 100 ip address 192.168.1.1 255.255.255.0 no shutdown interface gigabitethernet0/0 nameif inside security-level 100 ip address 10.1.1.2 255.255.255.0 no shutdown interface gigabitethernet0/1 nameif outside security-level 0 ip address 198.51.100.2 255.255.255.0 no shutdown http server enable http 192.168.1.0 255.255.255.0 management crypto key generate rsa modulus 1024 username AdminUser password paSSw0rd ssh 192.168.1.0 255.255.255.0 management aaa authentication ssh console LOCAL call-home http-proxy 10.1.1.1 port 443 license smart feature tier standard throughput level 2G Example: ASA Version 9.8.1 ! console serial interface management 0/0 management-only nameif management security-level 0 ip address 192.168.0.230 255.255.255.0 ! interface GigabitEthernet0/0 nameif inside security-level 100 ip address 10.10.10.10 255.255.255.0 ipv6 address 2001:10::1/64 ! interface GigabitEthernet0/1 nameif outside security-level 0 ip address 10.10.20.10 255.255.255.0 ipv6 address 2001:20::1/64 ! route management 0.0.0.0 0.0.0.0 192.168.0.254 ! username cisco password cisco123 privilege 15 ! aaa authentication ssh console LOCAL ssh 0.0.0.0 0.0.0.0 management ssh timeout 60 ssh version 2 ! http 0.0.0.0 0.0.0.0 management ! logging enable logging timestamp logging buffer-size 99999 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 23Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the VMware vSphere Web Client logging buffered debugging logging trap debugging ! dns domain-lookup management DNS server-group DefaultDNS name-server 64.102.6.247 ! license smart feature tier standard throughput level 10G ! crypto key generate rsa modulus 2048 Step 4 (Optional) Download the Smart License identity token file issued by the Cisco Smart Software Manager to your PC. Step 5 (Optional) Copy the ID token from the download file and put it in a text file named ‘idtoken’ that only contains the ID token. The Identity Token automatically registers the ASA virtual with the Smart Licensing server. Step 6 Generate the virtual CD-ROM by converting the text file to an ISO file: Example: stack@user-ubuntu:-/KvmAsa$ sudo genisoimage -r -o day0.iso day0-config idtoken I: input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 252 Total directory bytes: 0 Path table size (byptes): 10 Max brk space used 0 176 extents written (0 MB) stack@user-ubuntu:-/KvmAsa$ Step 7 Compute a new SHA1 value on Linux for the day0.iso: Example: openssl dgst -sha1 day0.iso SHA1(day0.iso)= e5bee36e1eb1a2b109311c59e2f1ec9f731ecb66 day0.iso Step 8 Include the new checksum in the asav-vi.mf file in the working directory and replace the day0.iso SHA1 value with the newly generated one. Example: SHA1(asav-vi.ovf)= de0f1878b8f1260e379ef853db4e790c8e92f2b2 SHA1(disk0.vmdk)= 898b26891cc68fa0c94ebd91532fc450da418b02 SHA1(boot.vmdk)= 6b0000ddebfc38ccc99ac2d4d5dbfb8abfb3d9c4 SHA1(day0.iso)= e5bee36e1eb1a2b109311c59e2f1ec9f731ecb66 Step 9 Copy the day0.iso file into the directory where you unzipped the ZIP file. You will overwrite the default (empty) day0.iso file. When any VM is deployed from this directory, the configuration inside the newly generated day0.iso is applied. Deploy the ASA Virtual Using the VMware vSphere Web Client This section describes how to deploy the ASA virtual using the VMware vSphereWeb Client. TheWeb Client requires vCenter. If you do not have vCenter, see Deploy the ASA Virtual Using the VMware vSphere Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 24Deploy the ASA Virtual Using VMware Access the vSphere Web Client and Install the Client Integration Plug-In Standalone Client and Day 0 Configuration, or Deploy the ASA Virtual Using the OVF Tool and Day 0 Configuration. • Access the vSphere Web Client and Install the Client Integration Plug-In, on page 25 • Deploy the ASA Virtual Using the VMware vSphere Web Client, on page 24 Access the vSphere Web Client and Install the Client Integration Plug-In This section describes how to access the vSphere Web Client. This section also describes how to install the Client Integration Plug-In, which is required for ASA virtual console access. Some Web Client features (including the plug-in) are not supported on the Macintosh. See the VMware website for complete client support information. Step 1 Launch the VMware vSphere Web Client from your browser: https://vCenter_server:port/vsphere-client/ By default, the port is 9443. Step 2 (One time only) Install the Client Integration Plug-in so that you can access the ASA virtual console. a. In the login screen, download the plug-in by clicking Download the Client Integration Plug-in. b. Close your browser and then install the plug-in using the installer. c. After the plug-in installs, reconnect to the vSphere Web Client. Step 3 Enter your username and password, and click Login, or check the Use Windows session authentication check box (Windows only). Deploy the ASA Virtual Using the VMware vSphere Web Client To deploy the ASA virtual, use the VMware vSphere Web Client (or the vSphere Client) and a template file in the open virtualization format (OVF). You use the Deploy OVF Template wizard in the vSphereWeb Client to deploy the Cisco package for the ASA virtual. The wizard parses the ASA virtual OVF file, creates the virtual machine on which you will run the ASA virtual, and installs the package. Most of the wizard steps are standard for VMware. For additional information about the Deploy OVF Template, see the VMware vSphere Web Client online help. Before you begin You must have at least one network configured in vSphere (for management) before you deploy the ASA virtual. Step 1 Download the ASA virtual ZIP file from Cisco.com, and save it to your PC: http://www.cisco.com/go/asa-software Note A Cisco.com login and Cisco service contract are required. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 25Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the VMware vSphere Web Client Step 2 In the vSphere Web Client Navigator pane, click vCenter. Step 3 Click Hosts and Clusters. Step 4 Right-click the data center, cluster, or host where you want to deploy the ASA virtual, and choose Deploy OVF Template. The Deploy OVF Template wizard appears. Step 5 Follow the wizard screens as directed. Step 6 In the Setup networks screen, map a network to each ASA virtual interface that you want to use. The networks may not be in alphabetical order. If it is too difficult to find your networks, you can change the networks later from the Edit Settings dialog box. After you deploy, right-click the ASA virtual instance, and chooseEdit Settings to access theEdit Settings dialog box. However that screen does not show the ASA virtual interface IDs (only Network Adapter IDs). See the following concordance of Network Adapter IDs and ASA virtual interface IDs: Network Adapter ID ASA virtual Interface ID Network Adapter 1 Management 0/0 Network Adapter 2 GigabitEthernet 0/0 Network Adapter 3 GigabitEthernet 0/1 Network Adapter 4 GigabitEthernet 0/2 Network Adapter 5 GigabitEthernet 0/3 Network Adapter 6 GigabitEthernet 0/4 Network Adapter 7 GigabitEthernet 0/5 Network Adapter 8 GigabitEthernet 0/6 Network Adapter 9 GigabitEthernet 0/7 Network Adapter 10 GigabitEthernet 0/8 You do not need to use all ASA virtual interfaces; however, the vSphere Web Client requires you to assign a network to all interfaces. For interfaces you do not intend to use, you can simply leave the interface disabled within the ASA virtual configuration. After you deploy the ASA virtual, you can optionally return to the vSphere Web Client to delete the extra interfaces from the Edit Settings dialog box. For more information, see the vSphere Web Client online help. Note For failover/HA deployments, GigabitEthernet 0/8 is preconfigured as the failover interface. Step 7 If your network uses an HTTP proxy for Internet access, you must configure the proxy address for smart licensing in the Smart Call Home Settings area. This proxy is also used for Smart Call Home in general. Step 8 For failover/HA deployments, in the Customize template screen, configure the following: • Specify the standby management IP address. When you configure your interfaces, you must specify an active IP address and a standby IP address on the same network. When the primary unit fails over, the secondary unit assumes the IP addresses and MAC addresses of the primary unit and begins passing traffic. The unit that is now in a standby state takes over the standby IP addresses andMAC addresses. Because network devices see no change in the MAC to IP address pairing, no ARP entries change or time out anywhere on the network. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 26Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the VMware vSphere Web Client • Configure the failover link settings in the HA Connection Settings area. The two units in a failover pair constantly communicate over a failover link to determine the operating status of each unit. GigabitEthernet 0/8 is preconfigured as the failover link. Enter the active and standby IP addresses for the link on the same network. Step 9 After you complete the wizard, the vSphereWeb Client processes the VM; you can see the “Initialize OVF deployment” status in the Global Information area Recent Tasks pane. When it is finished, you see the Deploy OVF Template completion status. The ASA virtual machine instance then appears under the specified data center in the Inventory. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 27Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the VMware vSphere Web Client Step 10 If the ASA virtual machine is not yet running, click Power On the virtual machine. Wait for the ASA virtual to boot up before you try to connect with ASDM or to the console. When the ASA virtual starts up for the first time, it reads parameters provided through the OVF file and adds them to the ASA virtual system configuration. It then automatically restarts the boot process until it is up and running. This double boot process only occurs when you first deploy the ASA virtual. To view bootup messages, access the ASA virtual console by clicking the Console tab. Step 11 For failover/HA deployments, repeat this procedure to add the secondary unit. See the following guidelines: • Set the same throughput level as the primary unit. • Enter the exact same IP address settings as for the primary unit. The bootstrap configurations on both units are identical except for the parameter identifying a unit as primary or secondary. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 28Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the VMware vSphere Standalone Client and Day 0 Configuration What to do next To successfully register the ASA virtual with the Cisco Licensing Authority, the ASA virtual requires Internet access. You might need to perform additional configuration after deployment to achieve Internet access and successful license registration. Deploy the ASA Virtual Using the VMware vSphere Standalone Client and Day 0 Configuration To deploy the ASA virtual, use the VMware vSphere Client and the open virtualization format (OVF) template file (asav-vi.ovf for a vCenter deployment or asav-esxi.ovf for a non-vCenter deployment). You use the Deploy OVF Template wizard in the vSphere Client to deploy the Cisco package for the ASA virtual. The wizard parses the ASA virtual OVF file, creates the virtual machine on which you will run the ASA virtual, and installs the package. Most of the wizard steps are standard for VMware. For additional information about the Deploy OVF Template wizard, see the VMware vSphere Client online help. Before you begin • You must have at least one network configured in vSphere (for management) before you deploy the ASA virtual. • Follow the steps in Unpack the ASA Virtual Software and Create a Day 0 Configuration File, on page 21 to create the Day 0 configuration. Step 1 Launch the VMware vSphere Client and choose File > Deploy OVF Template. The Deploy OVF Template wizard appears. Step 2 Browse to the working directory where you unzipped the asav-vi.ovf file and select it. Step 3 The OVF Template details are shown. Proceed through the following screens. You do not have to change any configuration if you choose to use a custom Day 0 configuration file. Step 4 A summary of the deployment settings is shown in the last screen. Click Finish to deploy the VM. Step 5 Power on the ASA virtual, open the VMware console, and wait for the second boot. Step 6 SSH to the ASA virtual and complete your desired configuration. If you do not have all the configuration that you wanted in the Day 0 configuration file, open a VMware console and complete the necessary configuration. The ASA virtual is now fully operational. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 29Deploy the ASA Virtual Using VMware Deploy the ASA Virtual Using the OVF Tool and Day 0 Configuration Deploy the ASA Virtual Using the OVF Tool and Day 0 Configuration This section describes how to deploy the ASA virtual using the OVF tool, which requires a day 0 configuration file. Before you begin • The day0.iso file is required when you are deploying the ASA virtual using the OVF tool. You can use the default empty day0.iso file provided in the ZIP file, or you can use a customized Day 0 configuration file that you generate. See Unpack the ASA Virtual Software and Create a Day 0 Configuration File, on page 21 for creating a Day 0 configuration file. • Make sure the OVF tool is installed on a Linux or Windows PC and that it has connectivity to your target ESXi server. Step 1 Verify the OVF tool is installed: Example: linuxprompt# which ovftool Step 2 Create a .cmd file with the desired deployment options: Example: linuxprompt# cat launch.cmd ovftool \ --name="asav-941-demo" \ --powerOn \ --deploymentOption=4Core8GB \ --diskMode=thin \ --datastore=datastore1 \ --acceptAllEulas \ --net:Management0-0="Portgroup_Mgmt" \ --net:GigabitEthernet0-1="Portgroup_Inside" \ --net:GigabitEthernet0-0="Portgroup_Outside" \ --prop:HARole=Standalone \ asav-esxi.ovf \ vi://root@10.1.2.3/ Step 3 Execute the cmd file: Example: linuxprompt# ./launch.cmd The ASA virtual is powered on; wait for the second boot. Step 4 SSH to the ASA virtual to complete configuration as needed. If more configuration is required, open the VMware console to the ASA virtual and apply the necessary configuration. The ASA virtual is now fully operational. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 30Deploy the ASA Virtual Using VMware Access the ASA Virtual Console Access the ASA Virtual Console In some cases with ASDM, you may need to use the CLI for troubleshooting. By default, you can access the built-in VMware vSphere console. Alternatively, you can configure a network serial console, which has better capabilities, including copy and paste. • Use the VMware vSphere Console • Configure a Network Serial Console Port Note If you deploy the ASA virtual using a Day 0 configuration file, you can include the console serial setting in the configuration file to use the serial port on first boot instead of the virtual VGA console; see Unpack the ASA Virtual Software and Create a Day 0 Configuration File, on page 21. Use the VMware vSphere Console For initial configuration or troubleshooting, access the CLI from the virtual console provided through the VMware vSphere Web Client. You can later configure CLI remote access for Telnet or SSH. Before you begin For the vSphere Web Client, install the Client Integration Plug-In, which is required for ASA virtual console access. Step 1 In the VMware vSphere Web Client, right-click the ASA virtual instance in the Inventory, and choose Open Console. Or you can click Launch Console on the Summary tab. Step 2 Click in the console and press Enter. Note: Press Ctrl + Alt to release the cursor. If the ASA virtual is still starting up, you see bootup messages. When the ASA virtual starts up for the first time, it reads parameters provided through the OVF file and adds them to the ASA virtual system configuration. It then automatically restarts the boot process until it is up and running. This double boot process only occurs when you first deploy the ASA virtual. Note Until you install a license, throughput is limited to 100 Kbps so that you can perform preliminary connectivity tests. A license is required for regular operation. You also see the following messages repeated on the console until you install a license: Warning: ASAv platform license state is Unlicensed. Install ASAv platform license for full functionality. You see the following prompt: ciscoasa> This prompt indicates that you are in user EXEC mode. Only basic commands are available from user EXEC mode. Step 3 Access privileged EXEC mode: Example: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 31Deploy the ASA Virtual Using VMware Configure a Network Serial Console Port ciscoasa> enable The following prompt appears: Password: Step 4 Press the Enter key to continue. By default, the password is blank. If you previously set an enable password, enter it instead of pressing Enter. The prompt changes to: ciscoasa# All nonconfiguration commands are available in privileged EXEC mode. You can also enter configuration mode from privileged EXEC mode. To exit privileged mode, enter the disable, exit, or quit command. Step 5 Access global configuration mode: ciscoasa# configure terminal The prompt changes to the following: ciscoasa(config)# You can begin to configure the ASA virtual from global configuration mode. To exit global configuration mode, enter the exit, quit, or end command. Configure a Network Serial Console Port For a better console experience, you can configure a network serial port singly or attached to a virtual serial port concentrator (vSPC) for console access. See the VMware vSphere documentation for details about each method. On the ASA virtual, you must send the console output to a serial port instead of to the virtual console. This procedure describes how to enable the serial port console. Step 1 Configure a network serial port in VMware vSphere. See the VMware vSphere documentation. Step 2 On the ASA virtual, create a file called “use_ttyS0” in the root directory of disk0. This file does not need to have any contents; it just needs to exist at this location: disk0:/use_ttyS0 • From ASDM, you can upload an empty text file by that name using the Tools > File Management dialog box. • At the vSphere console, you can copy an existing file (any file) in the file system to the new name. For example: ciscoasa(config)# cd coredumpinfo ciscoasa(config)# copy coredump.cfg disk0:/use_ttyS0 Step 3 Reload the ASA virtual. • From ASDM, choose Tools > System Reload. • At the vSphere console, enter reload. The ASA virtual stops sending to the vSphere console, and instead sends to the serial console. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 32Deploy the ASA Virtual Using VMware Upgrade the vCPU or Throughput License Step 4 Telnet to the vSphere host IP address and the port number you specified when you added the serial port; or Telnet to the vSPC IP address and port. Upgrade the vCPU or Throughput License The ASA virtual uses a throughput license, which affects the number of vCPUs you can use. If you want to increase (or decrease) the number of vCPUs for your ASA virtual, you can request a new license, apply the new license, and change the VM properties in VMware to match the new values. Note The assigned vCPUs must match the ASA virtual CPU license or Throughput license. The RAM must also be sized correctly for the vCPUs. When upgrading or downgrading, be sure to follow this procedure and reconcile the license and vCPUs immediately. The ASA virtual does not operate properly when there is a persistent mismatch. Step 1 Request a new license. Step 2 Apply the new license. For failover pairs, apply new licenses to both units. Step 3 Do one of the following, depending on whether you use failover: • Failover—In the vSphere Web Client, power off the standby ASA virtual. For example, click the ASA virtual and then click Power Off the virtual machine, or right-click the ASA virtual and choose Shut Down Guest OS. • No Failover—In the vSphere Web Client, power off the ASA virtual. For example, click the ASA virtual and then click Power Off the virtual machine, or right-click the ASA virtual and choose Shut Down Guest OS. Step 4 Click the ASA virtual and then click Edit Virtual machine settings (or right-click the ASA virtual and choose Edit Settings). The Edit Settings dialog box appears. Step 5 Refer to the CPU and memory requirements in Licensing for the ASA Virtual, on page 1 to determine the correct values for the new vCPU license. Step 6 On the Virtual Hardware tab, for the CPU, choose the new value from the drop-down list. Step 7 For the Memory, enter the new value for the RAM. Step 8 Click OK. Step 9 Power on the ASA virtual. For example, click Power On the Virtual Machine. Step 10 For failover pairs: a. Open a console to the active unit or launch ASDM on the active unit. b. After the standby unit finishes starting up, fail over to the standby unit: • ASDM: Choose Monitoring > Properties > Failover > Status, and click Make Standby. • CLI: failover active Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 33Deploy the ASA Virtual Using VMware Performance Tuning c. Repeat Steps 3 through 9 for the active unit. What to do next See Licensing for the ASA Virtual, on page 1 for more information. Performance Tuning Increasing Performance on ESXi Configurations You can increase the performance for an ASA virtual in the ESXi environment by tuning the ESXi host CPU configuration settings. The Scheduling Affinity option gives you control over how virtual machine CPUs are distributed across the host''s physical cores (and hyperthreads if hyperthreading is enabled). By using this feature, you can assign each virtual machine to processors in the specified affinity set. See the following VMware documents for more information: • The Administering CPU Resources chapter of vSphere Resource Management. • Performance Best Practices for VMware vSphere. • The vSphere Client online help. NUMA Guidelines Non-UniformMemory Access (NUMA) is a sharedmemory architecture that describes the placement of main memory modules with respect to processors in a multiprocessor system. When a processor accesses memory that does not lie within its own node (remote memory), data must be transferred over the NUMA connection at a rate that is slower than it would be when accessing local memory. The x86 server architecture consists of multiple sockets and multiple cores within a socket. Each CPU socket along with its memory and I/O is referred to as a NUMA node. To efficiently read packets from memory, guest applications and associated peripherals (such as the NIC) should reside within the same node. For optimum ASA virtual performance: • The ASA virtual machine must run on a single numa node. If a single ASA virtual is deployed so that is runs across 2 sockets, the perfomance will be significantly degraded. • An 8-core ASA virtual (Figure 1: 8-Core NUMA Architecture Example, on page 35) requires that each socket on the host CPU have a minimum of 8 cores per socket. Consideration must be given to other VMs running on the server. • A 16-core ASA virtual (Figure 2: 16-Core ASA Virtual NUMA Architecture Example, on page 36) requires that each socket on the host CPU have a minimum of 16 cores per socket. Consideration must be given to other VMs running on the server. • The NIC should be on same NUMA node as ASA virtual machine. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 34Deploy the ASA Virtual Using VMware NUMA Guidelines Note ASA virtualdoes not support multi-Non-uniformmemory access (NUMA) nodes and multiple CPU sockets for physical cores. The following figure shows a server with two CPU sockets with each CPU having 18 cores. The 8-core ASA virtual requires that each socket on the host CPU have a minimum of 8 cores. Figure 1: 8-Core NUMA Architecture Example The following figure shows a server with two CPU sockets with each CPU having 18 cores. The 16-core ASA virtual requires that each socket on the host CPU have a minimum of 16 cores. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 35Deploy the ASA Virtual Using VMware Multiple RX Queues for Receive Side Scaling (RSS) Figure 2: 16-Core ASA Virtual NUMA Architecture Example More information about using NUMA systems with ESXi can be found in the VMware document vSphere Resource Management for your VMware ESXi version. To check for more recent editions of this and other relevant documents, see http://www.vmware.com/support/pubs Multiple RX Queues for Receive Side Scaling (RSS) The ASA virtual supports Receive Side Scaling (RSS), which is a technology utilized by network adapters to distribute network receive traffic in parallel to multiple processor cores. For maximum throughput, each vCPU (core) must have its own NIC RX queue. Note that a typical RA VPN deployment might use a single inside/outside pair of interfaces. Important You need ASA virtual Version 9.13(1) or greater to use multiple RX queues. For an 8-core VM with an inside/outside pair of interfaces, each interface will have 4 RX queues, as shown in Figure 3: 8-Core ASA virtual RSS RX Queues, on page 37. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 36Deploy the ASA Virtual Using VMware Multiple RX Queues for Receive Side Scaling (RSS) Figure 3: 8-Core ASA virtual RSS RX Queues For a 16-core VM with an inside/outside pair of interfaces, each interface will have 8 RX queues, as shown in Figure 4: 16-Core ASA virtual RSS RX Queues, on page 37. Figure 4: 16-Core ASA virtual RSS RX Queues The following table presents the ASA virtual''s vNICs for VMware and the number of supported RX queues. See Recommended vNICs, on page 16 for descriptions of the supported vNICs. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 37Deploy the ASA Virtual Using VMware Multiple RX Queues for Receive Side Scaling (RSS) Table 11: VMware Recommended NICs/vNICs NIC Card vNIC Driver Driver Technology Number of RX Performance Queues x710* i40e PCI Passthrough 8 max PCI Passthrough offers the highest performance of the NICs tested. In passthrough mode the NIC is dedicated to the ASA virtual and is not an optimal choice for virtual. i40evf SR-IOV 4 SR-IOVwith the x710 NIC has lower throughput (~30%) than PCI Passthrough. i40evf on VMware has a maximum of 4 RX queues per i40evf . 8 RX queues are needed for maximum throughput on a 16 core VM. x520 ixgbe-vf SR-IOV 2 — ixgbe PCI Passthrough 6 The ixgbe driver (in PCI Passthrough mode) has 6 RX queues. Performance is on par with i40evf (SR-IOV). N/A vmxnet3 Para-virtualized 8 max Not recommended for ASAv100. N/A e1000 Not recommended by VMware. *The ASA virtual is not compatible with the 1.9.5 i40en host driver for the x710 NIC. Older or newer driver versions will work. See Identify NICDrivers and Firmware Versions, on page 38 for information on ESXCLI commands to identify or verify NIC driver and firmware versions. Identify NIC Drivers and Firmware Versions If you need to identify or verify your specific firmware and driver version information, it is possible to find that data using ESXCLI commands. • To get a list of the installed NICs, SSH to the pertinent host and run the esxcli network nic list command. This command should provide you with a record of devices and general information. • After you have a list of the installed NICs, you can pull detailed configuration information. Run the esxcli network nic get command specifying the name of the NIC necessary: esxcli network nic get –n . Note General network adapter information can also be viewed from the VMware vSphere Client. The adapter and driver are found under Physical Adapters within the Configure tab. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 38Deploy the ASA Virtual Using VMware SR-IOV Interface Provisioning SR-IOV Interface Provisioning SR-IOV allows multiple VMs to share a single PCIe network adapter inside a host. SR-IOV defines these functions: • Physical function (PF)—PFs are full PCIe functions that include the SR-IOV capabilities. These appear as regular static NICs on the host server. • Virtual function (VF)—VFs are lightweight PCIe functions that help in data transfer. A VF is derived from, and managed through, a PF. VFs are capable of providing up to 10 Gbps connectivity to ASA virtual machine within a virtualized operating system framework. This section explains how to configure VFs in a KVM environment. SR-IOV support on the ASA virtual is explained in ASA Virtual and SR-IOV Interface Provisioning, on page 11. Guidelines and Limitations Guidelines for SR-IOV Interfaces VMware vSphere 5.1 and later releases support SR-IOV in an environment with specific configurations only. Some features of vSphere are not functional when SR-IOV is enabled. In addition to the system requirements for the ASA virtual and SR-IOV as described in Guidelines and Limitations for SR-IOV Interfaces, on page 12, you should review the Supported Configurations for Using SR-IOV in the VMware documentation for more information about requirements, supported NICs, availability of features, and upgrade requirements for VMware and SR-IOV. This section shows various setup and configuration steps for provisioning SR-IOV interfaces on a VMware system. The information in this section was created from devices in a specific lab environment, using VMware ESXi 6.0 and vSphere Web Client, a Cisco UCS C Series server, and an Intel Ethernet Server Adapter X520 - DA2. Limitations for SR-IOV Interfaces When the ASA virtual is booted, be aware that SR-IOV interfaces can show up in reverse order when compared to the order presented in ESXi. This could cause interface configuration errors that result in a lack of network connectivity for a particular ASA virtual machine. Caution It is important that you verify the interface mapping before you begin configuring the SR-IOV network interfaces on the ASA virtual. This ensures that the network interface configuration will apply to the correct physical MAC address interface on the VM host. After the ASA virtual boots, you can confirm which MAC address maps to which interface. Use the show interface command to see detailed interface information, including theMAC address for an interface. Compare the MAC address to the results of the show kernel ifconfig command to confirm the correct interface assignment. Check the ESXi Host BIOS To deploy the ASA virtual with SR-IOV interfaces on VMware, virtualization needs to be supported and enabled. VMware provides several methods of verifying virtualization support, including their online Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 39Deploy the ASA Virtual Using VMware Enable SR-IOV on the Host Physical Adapter Compatibility Guide for SR-IOV support as well as a downloadable CPU identification utility that detects whether virtualization is enabled or disabled. You can also determine if virtualization is enabled in the BIOS by logging into the ESXi host. Step 1 Log in to the ESXi Shell using one of the following methods: • If you have direct access to the host, press Alt+F2 to open the login page on the machine''s physical console. • If you are connecting to the host remotely, use SSH or another remote console connection to start a session on the host. Step 2 Enter a user name and password recognized by the host. Step 3 Run the following command: Example: esxcfg-info|grep "\----\HV Support" The output of the HV Support command indicates the type of hypervisor support available. These are the descriptions for the possible values: 0 - VT/AMD-V indicates that support is not available for this hardware. 1 - VT/AMD-V indicates that VT or AMD-V might be available but it is not supported for this hardware. 2 - VT/AMD-V indicates that VT or AMD-V is available but is currently not enabled in the BIOS. 3 - VT/AMD-V indicates that VT or AMD-V is enabled in the BIOS and can be used. Example: ~ # esxcfg-info|grep "\----\HV Support" |----HV Support...........................3 The value 3 indicates the virtualization is supported and enabled. What to do next • Enable SR-IOV on the host physical adapter. Enable SR-IOV on the Host Physical Adapter Use the vSphere Web Client to enable SR-IOV and set the number of virtual functions on your host. You cannot connect virtual machines to virtual functions until you do so. Before you begin • Make sure you have an SR-IOV-compatible network interface card (NIC) installed; see Supported NICs for SR-IOV, on page 13. Step 1 In the vSphere Web Client, navigate to the ESXi host where you want to enable SR-IOV. Step 2 On the Manage tab, click Networking and choose Physical adapters. You can look at the SR-IOV property to see whether a physical adapter supports SR-IOV. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 40Deploy the ASA Virtual Using VMware Create a vSphere Switch Step 3 Select the physical adapter and click Edit adapter settings. Step 4 Under SR-IOV, select Enabled from the Status drop-down menu. Step 5 In the Number of virtual functions text box, type the number of virtual functions that you want to configure for the adapter. Note For ASAv50, we recommend that you DO NOT use more than 1 VF per interface. Performance degradation is likely to occur if you share the physical interface with multiple virtual functions. Step 6 Click OK. Step 7 Restart the ESXi host. The virtual functions become active on the NIC port represented by the physical adapter entry. They appear in the PCI Devices list in the Settings tab for the host. What to do next • Create a standard vSwitch to manage the SR-IOV functions and configurations. Create a vSphere Switch Create a vSphere switch to manage the SR-IOV interfaces. Step 1 In the vSphere Web Client, navigate to the ESXi host. Step 2 Under Manage select Networking, and then select Virtual switches. Step 3 Click the Add host networking icon, which is the green globe icon with the plus (+) sign. Step 4 Select a Virtual Machine Port Group for a Standard Switch connection type and click Next. Step 5 Choose New standard switch and click Next. Step 6 Add physical network adapters to the new standard switch. a) Under Assigned adapters, click the green plus (+) sign to Add adapters. b) Select the corresponding network interface for SR-IOV from the list. For example, Intel(R) 82599 10 Gigabit Dual Port Network Connection. c) From the Failover order group drop-down menu, select from the Active adapters. d) Click OK. Step 7 Enter a Network label for the SR-IOV vSwitch and click Next. Step 8 Review your selections on the Ready to complete page, then click Finish. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 41Deploy the ASA Virtual Using VMware Upgrade the Compatibility Level for Virtual Machines Figure 5: New vSwitch with an SR-IOV Interface attached What to do next • Review the compatibility level of your virtual machine. Upgrade the Compatibility Level for Virtual Machines The compatibility level determines the virtual hardware available to the virtual machine, which corresponds to the physical hardware available on the host machine. The ASA virtual machine needs to be at Hardware Level 10 or higher. This will expose the SR-IOV passthough feature to the ASA virtual. This procedure upgrades the ASA virtual to the latest supported virtual hardware version immediately. For information about virtual machine hardware versions and compatibility, see the vSphere Virtual Machine Administration documentation. Step 1 Log in to the vCenter Server from the vSphere Web Client. Step 2 Locate the ASA virtual machine you wish to modify. a) Select a datacenter, folder, cluster, resource pool, or host and click the Related Objects tab. b) Click Virtual Machines and select the ASA virtual machine from the list. Step 3 Power off the selected virtual machine. Step 4 Right-click on the ASA virtual and selectActions >All vCenter Actions >Compatibility >Upgrade VM Compatibility. Step 5 Click Yes to confirm the upgrade. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 42Deploy the ASA Virtual Using VMware Assign the SR-IOV NIC to the ASA Virtual Step 6 Choose the ESXi 5.5 and later option for the virtual machines compatiblity. Step 7 (Optional) Select Only upgrade after normal guest OS shutdown. The selected virtual machine is upgraded to the corresponding hardware version for the Compatibility setting that you chose, and the new hardware version is updated in the Summary tab of the virtual machine. What to do next • Associate the ASA virtual with a virtual function through an SR-IOV passthrough network adapter. Assign the SR-IOV NIC to the ASA Virtual To ensure that the ASA virtual machine and the physical NIC can exchange data, you must associate the ASA virtual with one or more virtual functions as SR-IOV passthrough network adapters. The following procedure explains how to assign the SR-IOV NIC to the ASA virtual machine using the vSphere Web Client. Step 1 Log in to the vCenter Server from the vSphere Web Client. Step 2 Locate the ASA virtual machine you wish to modify. a) Select a datacenter, folder, cluster, resource pool, or host and click the Related Objects tab. b) Click Virtual Machines and select the ASA virtual machine from the list. Step 3 On the Manage tab of the virtual machine, select Settings > VM Hardware. Step 4 Click Edit and choose the Virtual Hardware tab. Step 5 From the New device drop-down menu, select Network and click Add. A New Network interface appears. Step 6 Expand the New Network section and select an available SRIOV option. Step 7 From the Adapter Type drop-down menu, select SR-IOV passthrough. Step 8 From the Physical function drop-down menu, select the physical adapter that corresponds to the passthrough virtual machine adapter. Step 9 Power on the virtual machine. When you power on the virtual machine, the ESXi host selects a free virtual function from the physical adapter and maps it to the SR-IOV passthrough adapter. The host validates all properties of the virtual machine adapter and the underlying virtual function. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 43Deploy the ASA Virtual Using VMware Assign the SR-IOV NIC to the ASA Virtual Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 44C H A P T E R 3 Deploy the ASA Virtual Using KVM You can deploy the ASA virtual on any server class x86 CPU device that is capable of running the Kernel-based Virtual Machine (KVM). Important The minimum memory requirement for the ASA virtual is 2GB. If your current ASA virtual runs with less than 2GB of memory, you cannot upgrade to 9.13(1)+ from an earlier version without increasing the memory of your ASA virtual machine. You can also redeploy a new ASA virtual machine with the latest version. • Guidelines and Limitations, on page 45 • Overview, on page 48 • Prerequisites, on page 48 • Prepare the Day 0 Configuration File, on page 49 • Prepare the Virtual Bridge XML Files, on page 51 • Deploy the ASA Virtual, on page 53 • Hotplug Interface Provisioning, on page 53 • Performance Tuning, on page 55 • CPU Usage and Reporting, on page 66 Guidelines and Limitations The specific hardware used for ASA virtual deployments can vary, depending on the number of instances deployed and usage requirements. Each virtual appliance you create requires a minimum resource allocation—memory, number of CPUs, and disk space—on the host machine. Important The ASA virtual deploys with a disk storage size of 8GB. It is not possible to change the resource allocation of the disk space. Review the following guidelines and limitations before you deploy the ASA virtual. ASA Virtual on KVM System Requirements Make sure to conform to the specifications below to ensure optimal performance. The ASA virtual has the following requirements: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 45Deploy the ASA Virtual Using KVM Guidelines and Limitations • The host CPU must be a server class x86-based Intel or AMD CPU with virtualization extension. For example, ASA virtual performance test labs use as minimum the following: Cisco Unified Computing System™ (Cisco UCS®) C series M4 server with the Intel® Xeon® CPU E5-2690v4 processors running at 2.6GHz. Recommended vNICs The following vNICs are recommended in order of optimum performance. • i40e in PCI passthrough—Dedicates the server''s physical NIC to the VM and transfers packet data between the NIC and the VM via DMA (DirectMemory Access). No CPU cycles are required for moving packets. • i40evf/ixgbe-vf—Effectively the same as above (DMAs packets between the NIC and the VM) but allows the NIC to be shared across multiple VMs. SR-IOV is generally preferred because it has more deployment flexibility. See • virtio—This is a para-virtualized network driver that supports 10Gbps operation but also requires CPU cycles. Note ASA virtual instance running on KVM system might encounter data connectivity issues with the SR-IOV interface using the vNIC driver i40e version 2.11.25. We recommend you upgrade this vNIC version to other versions as a workaround to fix this issue. Performance Optimizations To achieve the best performance out of the ASA virtual, you can make adjustments to the both the VM and the host. See Performance Tuning, on page 55 for more information. • NUMA—You can improve performance of the ASA virtual by isolating the CPU resources of the guest VM to a single non-uniform memory access (NUMA) node. See NUMA Guidelines, on page 56 for more information. • Receive Side Scaling—The ASA virtual supports Receive Side Scaling (RSS), which is a technology utilized by network adapters to distribute network receive traffic to multiple processor cores. SeeMultiple RX Queues for Receive Side Scaling (RSS), on page 59 for more information. • VPN Optimization—See VPN Optimization, on page 61 for additional considerations for optimizing VPN performance with the ASA virtual. Clustering Starting from version 9.17, clustering is supported on ASA virtual instances deployed on KVM. See ASA Cluster for the ASAv for more information. CPU Pinning CPU pinning is required for the ASA virtual to function in a KVM environment; see Enable CPU Pinning, on page 55. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 46Deploy the ASA Virtual Using KVM Guidelines and Limitations Failover for High Availability Guidelines For failover deployments, make sure that the standby unit has the same license entitlement; for example, both units should have the 2Gbps entitlement. Important When creating a high availability pair using ASA virtual, it is necessary to add the data interfaces to each ASA virtual in the same order. If the exact same interfaces are added to each ASA virtual, but in different order, errors may be presented at the ASA virtual console. Failover functionality may also be affected. ASA Virtual on Proxmox VE Proxmox Virtual Environment (VE) is an open-source server virtualization platform that can manage KVM virtual machines. Proxmox VE also provides a web-based management interface. When you deploy the ASA virtual on Proxmox VE, you need to configure the VM to have an emulated serial port. Without the serial port, the ASA virtual will go into a loop during the bootup process. All management tasks can be done using the Proxmox VE web-based management interface. Note For advanced users who are used to the comfort of the Unix shell or Windows Powershell, Proxmox VE provides a command line interface to manage all the components of your virtual environment. This command line interface has intelligent tab completion and full documentation in the form of UNIX man pages. To have the ASA virtual boot properly the VM needs to have a serial device configured: 1. In the main management center, select the ASA virtual machine in the left navigation tree. 2. Power off the virtual machine. 3. Choose Hardware > Add > Network Device and add a serial port. 4. Power on the virtual machine. 5. Access the ASA virtual machine using Xterm.js. See the Proxmox Serial Terminal page for information on how to setup and activate the terminal on the guest/server. IPv6 Support For creating vNICs with IPv6 support configuration on KVM, you must create an XML file for each interface that consists of IPv6 configuration parameters. You can install vNICs with the IPV6 network protocol configurations by running these XML files using the command virsh net-create <>. For each interface, you can create the following XML file: • Management interface - mgmt-vnic.xml • Diagnostic interface - diag-vnic.xml • Inside interface - inside-vnic.xml • Outside interface - outside-vnic.xml Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 47Deploy the ASA Virtual Using KVM Overview Example: To create an XML file for Management interface with IPv6 configuration. mgmt-vnic Similarly, you must create XML file for other interfaces. You can verify the virtual network adapters installed on KVM by running the following command. virsh net-list brctl show Overview The following figure shows a sample network topology with ASA virtual and KVM. The procedures described in this chapter are based on the sample topology. The ASA virtual acts as the firewall between the inside and outside networks. A separate management network is also configured. Figure 6: Sample ASA Virtual Deployment Using KVM Prerequisites • Download the ASA virtual qcow2 file from Cisco.com and put it on your Linux host: http://www.cisco.com/go/asa-software Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 48Deploy the ASA Virtual Using KVM Prepare the Day 0 Configuration File Note A Cisco.com login and Cisco service contract are required. • For the purpose of the sample deployment in this document, we are assuming you are using Ubuntu 18.04 LTS. Install the following packages on top of the Ubuntu 18.04 LTS host: • qemu-kvm • libvirt-bin • bridge-utils • virt-manager • virtinst • virsh tools • genisoimage • Performance is affected by the host and its configuration. You can maximize the throughput of the ASA virtual onKVMby tuning your host. For generic host-tuning concepts, see NFVDelivers Packet Processing Performance with Intel. • Useful optimizations for Ubuntu 18.04 include the following: • macvtap—High performance Linux bridge; you can use macvtap instead of a Linux bridge. Note that you must configure specific settings to use macvtap instead of the Linux bridge. • Transparent Huge Pages—Increases memory page size and is on by default in Ubuntu 18.04. Hyperthread disabled—Reduces two vCPUs to one single core. • txqueuelength—Increases the default txqueuelength to 4000 packets and reduces drop rate. • pinning—Pins qemu and vhost processes to specific CPU cores; under certain conditions, pinning is a significant boost to performance. • For information on optimizing a RHEL-based distribution, see Red Hat Enterprise Linux 7 Virtualization Tuning and Optimization Guide. • For ASA software and ASA virtual hypervisor compatibility, see Cisco Secure Firewall ASA Compatibility. Prepare the Day 0 Configuration File You can prepare a Day 0 configuration file before you launch the ASA virtual. This file is a text file that contains the ASA virtual configuration applied when the ASA virtual is launched. This initial configuration is placed into a text file named “day0-config” in a working directory you chose, and is manipulated into a day0.iso file that is mounted and read on first boot. At the minimum, the Day 0 configuration file must contain commands to activate the management interface and set up the SSH server for public key authentication, but it can also contain a complete ASA configuration. The day0.iso file (either your custom day0.iso or the default day0.iso) must be available during first boot: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 49Deploy the ASA Virtual Using KVM Prepare the Day 0 Configuration File • To automatically license the ASA virtual during initial deployment, place the Smart Licensing Identity (ID) Token that you downloaded from the Cisco Smart Software Manager in a text file named ‘idtoken’ in the same directory as the Day 0 configuration file. • If you want to access and configure the ASA virtual from the serial port on the hypervisor instead of the virtual VGA console, you should include the console serial setting in the Day 0 configuration file to use the serial port on first boot. • If you want to deploy the ASA virtual in transparent mode, you must use a known running ASA config file in transparent mode as the Day 0 configuration file. This does not apply to a Day 0 configuration file for a routed firewall. Note We are using Linux in this example, but there are similar utilities for Windows. Step 1 Enter the CLI configuration for the ASA virtual in a text file called “day0-config.” Add interface configurations for the three interfaces and any other configuration you want. The fist line should begin with the ASA version. The day0-config should be a valid ASA configuration. The best way to generate the day0-config is to copy the relevant parts of a running config from an existing ASA or ASA virtual. The order of the lines in the day0-config is important and should match the order seen in an existing show running-config command output. Example: ASA Version ! interface management0/0 ipv6 enable ipv6 address 2001:db8::a111:b220:0:abcd/96 nameif management security-level 100 no shut interface gigabitethernet0/0 ipv6 enable ipv6 address 2001:db8::a111:b221:0:abcd/96 nameif inside security-level 100 no shut interface gigabitethernet1/0 ipv6 enable ipv6 address 2001:db8::a111:b222:0:abcd/96 nameif outside security-level 100 no shut crypto key generate rsa general-keys modulus 4096 ssh ::/0 inside ssh timeout 60 ssh version 2 aaa authentication ssh console LOCAL dns domain-lookup management dns server-group DefaultDNS Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 50Deploy the ASA Virtual Using KVM Prepare the Virtual Bridge XML Files name-server 2001:4860:4860::8888 Step 2 (Optional) For automated licensing during initial ASA virtual deployment, make sure the following information is in the day0-config file: • Management interface IP address • (Optional) HTTP proxy to use for Smart Licensing • A route command that enables connectivity to the HTTP proxy (if specified) or to tools.cisco.com • A DNS server that resolves tools.cisco.com to an IP address • Smart Licensing configuration specifying the ASA virtual license you are requesting • (Optional) A unique host name to make the ASA virtual easier to find in CSSM Step 3 (Optional) Download the Smart License identity token file issued by the Cisco Smart SoftwareManager to your computer, copy the ID token from the download file, and put it a text file named ‘idtoken’ that only contains the ID token. Step 4 Generate the virtual CD-ROM by converting the text file to an ISO file: Example: stack@user-ubuntu:-/KvmAsa$ sudo genisoimage -r -o day0.iso day0-config idtoken I: input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 252 Total directory bytes: 0 Path table size (byptes): 10 Max brk space used 0 176 extents written (0 MB) stack@user-ubuntu:-/KvmAsa$ The Identity Token automatically registers the ASA virtual with the Smart Licensing server. Step 5 Repeat Steps 1 through 5 to create separate default configuration files with the appropriate IP addresses for each ASA virtual you want to deploy. Prepare the Virtual Bridge XML Files You need to set up virtual networks that connect the ASA virtual guests to the KVM host and that connect the guests to each other. Note This procedure does not establish connectivity to the external world outside the KVM host. Prepare the virtual bridge XML files on the KVM host. For the sample virtual network topology described in Prepare the Day 0 Configuration File, on page 49, you need the following three virtual bridge files: virbr1.xml, virbr2.xml, and virbr3.xml (you must use these three filenames; for example, virbr0 is not allowed because it already exists). Each file has the information needed to set up the virtual bridges. You must give the virtual bridge a name and a unique MAC address. Providing an IP address is optional. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 51Deploy the ASA Virtual Using KVM Prepare the Virtual Bridge XML Files Step 1 Create three virtual network bridge XML files. For example, virbr1.xml, virbr2.xml, and virbr3.xml: Example: virbr1 Example: virbr2 Example: virbr3 Step 2 Create a script that contains the following (in our example, we name the script virt_network_setup.sh): virsh net-create virbr1.xml virsh net-create virbr2.xml virsh net-create virbr3.xml Step 3 Run this script to set up the virtual network. The script brings up the virtual networks. The networks stay up as long as the KVM host is running. stack@user-ubuntu:-/KvmAsa$ virt_network_setup.sh Note If you reload the Linux host, you must rerun the virt_network_setup.sh script. It does not persist over reboots. Step 4 Verify that the virtual networks were created: stack@user-ubuntu:-/KvmAsa$ brctl show bridge name bridge id STP enabled Interfaces virbr0 8000.0000000000000 yes virbr1 8000.5254000056eed yes virb1-nic virbr2 8000.5254000056eee yes virb2-nic virbr3 8000.5254000056eec yes virb3-nic stack@user-ubuntu:-/KvmAsa$ Step 5 Display the IP address assigned to the virbr1 bridge. This is the IP address that you assigned in the XML file. stack@user-ubuntu:-/KvmAsa$ ip address show virbr1 S: virbr1: mtu 1500 qdisc noqueue state DOWN link/ether 52:54:00:05:6e:00 brd ff:ff:ff:ff:ff:ff Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 52Deploy the ASA Virtual Using KVM Deploy the ASA Virtual inet 192.168.1.10/24 brd 192.168.1.255 scope global virbr1 valid_lft forever preferred_lft forever Deploy the ASA Virtual Use a virt-install based deployment script to launch the ASA virtual. Step 1 Create a virt-install script called “virt_install_asav.sh.” The name of the ASA virtual machine must be unique across all other VMs on this KVM host. The ASA virtual supports up to 10 networks. This example uses three networks. The order of the network bridge clauses is important. The first one listed is always the management interface of the ASA virtual (Management 0/0), the second one listed is GigabitEthernet 0/0 of the ASA virtual, and the third one listed is GigabitEthernet 0/1 of the ASA virtual, and so on up through GigabitEthernet 0/8. The virtual NIC must be Virtio. Example: virt-install \ --connect=qemu:///system \ --network network=default,model=virtio \ --network network=default,model=virtio \ --network network=default,model=virtio \ --name=asav \ --cpu host \ --arch=x86_64 \ --machine=pc-1.0 \ --vcpus=1 \ --ram=2048 \ --os-type=linux \ --virt-type=kvm \ --import \ --disk path=/home/kvmperf/Images/desmo.qcow2,format=qcow2,device=disk,bus=virtio,cache=none \ --disk path=/home/kvmperf/asav_day0.iso,format=iso,device=cdrom \ --console pty,target_type=virtio \ --serial tcp,host=127.0.0.1:4554,mode=bind,protocol=telnet Step 2 Run the virt_install script: Example: stack@user-ubuntu:-/KvmAsa$ ./virt_install_asav.sh Starting install... Creating domain... A window appears displaying the console of the VM. You can see that the VM is booting. It takes a few minutes for the VM to boot. Once the VM stops booting you can issue CLI commands from the console screen. Hotplug Interface Provisioning You can add and remove interfaces dynamically without the need to stop and restart the ASA virtual. When you add a new interface to the ASA virtual machine, the ASA virtual should be able to detect and provision Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 53Deploy the ASA Virtual Using KVM Guidelines and Limitations it as a regular interface. Similarly, when you remove an existing interface via hotplug provisioning, the ASA virtual should remove the interface and release any resource associated with it. Guidelines and Limitations Interface Mapping and Numbering • When you add a hotplug interface, its interface number is the number of the current last interface plus one. • When you remove a hotplug interface, a gap in the interface numbering is created, unless the interface you removed is the last one. • When a gap exists in the interface numbering, the next hotplug-provisioned interface will fill that gap. Failover • When you use a hotplug interface as a failover link, the link must be provisioned on both units designated as the failover ASA virtual pair. • You first add a hotplug interface to the active ASA virtual in the hypervisor, then add a hotplug interface to the standby ASA virtual in the hypervisor. • You configure the newly added failover interface in the active ASA virtual; the configuration will be synchronized to the standby unit. • You enable failover on the primary unit. • When you remove a failover link, you first remove the failover configuration on the active ASA virtual. • You remove the failover interface from the active ASA virtual in the hypervisor. • Next, you immediately remove the corresponding interface from the standby ASA virtual in the hypervisor. Limitations and Restrictions • Hotplug interface provisioning is limited to Virtio virtual NICs. • The maximum number of interfaces supported is 10. You will receive an error message if you attempt to add more than 10 interfaces. • You cannot open the interface card (media_ethernet/port/id/10). • Hotplug interface provisioning requires ACPI. Do not include the --noacpi flag in your virt-install script. Hotplug a Network Interface You can use the virsh command line to add and remove interfaces in the KVM hypervisor. Step 1 Open a virsh command line session: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 54Deploy the ASA Virtual Using KVM Performance Tuning Example: [root@asav-kvmterm ~]# virsh Welcome to virsh, the virtualization interactive terminal. Type: ‘help’ for help with commands ‘quit’ to quit Step 2 Use the attach-interface command to add an interface. attach-interface {--domain domain --type type --source source --model model --mac mac --live} The --domain can be specified as a short integer, a name, or a full UUID. The --type parameter can be either network to indicate a physical network device or bridge to indicate a bridge to a device. The --source parameter indicates the type of connection. The --model parameter indicates the virtial NIC type. The --mac parameter specifies the MAC address of the network interface. The --live parameter indicates that the command affects the running domain. Note See the official virsh documentation for the complete description of available options. Example: virsh # attach-interface --domain asav-network --type bridge --source br_hpi --model virtio --mac 52:55:04:4b:59:2f --live Note Use the interface configuration mode on the ASA virtual to configure and enable the interface for transmitting and receiving traffic; see the Basic Interface Configuration chapter of the Cisco ASA Series General Operations CLI Configuration Guide for more information. Step 3 Use the detach-interface command to remove an interface. detach-interface {--domain domain --type type --mac mac --live} Note See the official virsh documentation for the complete description of available options. Example: virsh # detach-interface --domain asav-network --type bridge --mac 52:55:04:4b:59:2f --live Performance Tuning Increasing Performance on KVM Configurations You can increase the performance for an ASA virtual in the KVM environment by changing settings on the KVM host. These settings are independent of the configuration settings on the host server. This option is available in Red Hat Enterprise Linux 7.0 KVM. You can improve performance on KVM configurations by enabling CPU pinning. Enable CPU Pinning ASA virtual requires that you use the KVM CPU affinity option to increase the performance of the ASA virtual in KVM environments. Processor affinity, or CPU pinning, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 55Deploy the ASA Virtual Using KVM NUMA Guidelines Configure host aggregates to deploy instances that use CPU pinning on different hosts from instances that do not, to avoid unpinned instances using the resourcing requirements of pinned instances. Attention Do not deploy instances with NUMA topology on the same hosts as instances that do not have NUMA topology. To use this option, configure CPU pinning on the KVM host. Step 1 In the KVM host environment, verify the host topology to find out how many vCPUs are available for pinning: Example: virsh nodeinfo Step 2 Verify the available vCPU numbers: Example: virsh capabilities Step 3 Pin the vCPUs to sets of processor cores: Example: virsh vcpupin The virsh vcpupin command must be executed for each vCPU on your ASA virtual. The following example shows the KVM commands needed if you have an ASA virtual configuration with four vCPUs and the host has eight cores: virsh vcpupin asav 0 2 virsh vcpupin asav 1 3 virsh vcpupin asav 2 4 virsh vcpupin asav 3 5 The host core number can be any number from 0 to 7. For more information, see the KVM documentation. Note When configuring CPU pinning, carefully consider the CPU topology of the host server. If using a server configured with multiple cores, do not configure CPU pinning across multiple sockets. The downside of improving performance on KVM configuration is that it requires dedicated system resources. NUMA Guidelines Non-UniformMemory Access (NUMA) is a sharedmemory architecture that describes the placement of main memory modules with respect to processors in a multiprocessor system. When a processor accesses memory that does not lie within its own node (remote memory), data must be transferred over the NUMA connection at a rate that is slower than it would be when accessing local memory. The x86 server architecture consists of multiple sockets and multiple cores within a socket. Each CPU socket along with its memory and I/O is referred to as a NUMA node. To efficiently read packets from memory, guest applications and associated peripherals (such as the NIC) should reside within the same node. For optimum ASA virtual performance: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 56Deploy the ASA Virtual Using KVM NUMA Guidelines • The ASA virtual machine must run on a single numa node. If a single ASA virtual is deployed so that is runs across 2 sockets, the perfomance will be significantly degraded. • An 8-core ASA virtual (Figure 7: 8-Core ASA Virtual NUMA Architecture Example, on page 57) requires that each socket on the host CPU have a minimum of 8 cores per socket. Consideration must be given to other VMs running on the server. • A 16-core ASA virtual (Figure 8: 16-Core ASA Virtual NUMA Architecture Example, on page 58) requires that each socket on the host CPU have a minimum of 16 cores per socket. Consideration must be given to other VMs running on the server. • The NIC should be on same NUMA node as ASA virtual machine. The following figure shows a server with two CPU sockets with each CPU having 18 cores. The 8-core ASA virtual requires that each socket on the host CPU have a minimum of 8 cores. Figure 7: 8-Core ASA Virtual NUMA Architecture Example The following figure shows a server with two CPU sockets with each CPU having 18 cores. The 16-core ASA virtual requires that each socket on the host CPU have a minimum of 16 cores. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 57Deploy the ASA Virtual Using KVM NUMA Guidelines Figure 8: 16-Core ASA Virtual NUMA Architecture Example NUMA Optimization Optimally, the ASA virtual machine should run on the same numa node that the NICs are running on. To do this: 1. Determine which node the NICs are on by using "lstopo" to show a diagram of the nodes. Locate the NICs and take note to which node they are attached. 2. At the KVM Host, use virsh list to find the ASA virtual. 3. Edit the VM by: virsh edit . 4. Align ASA virtual on the chosen node. The following examples assume 18-core nodes. Align onto Node 0: 16 Align onto Node 1: 16 5. Save the .xml change and power cycle the ASA virtual machine. 6. To ensure your VM is running on the desired node, perform a ps aux | grep to get the process ID. 7. Run sudo numastat -c to see if the ASA virtual machine is properly aligned. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 58Deploy the ASA Virtual Using KVM Multiple RX Queues for Receive Side Scaling (RSS) More information about using NUMA tuning with KVM can be found in the RedHat document 9.3. libvirt NUMA Tuning. Multiple RX Queues for Receive Side Scaling (RSS) The ASA virtual supports Receive Side Scaling (RSS), which is a technology utilized by network adapters to distribute network receive traffic in parallel to multiple processor cores. For maximum throughput, each vCPU (core) must have its own NIC RX queue. Note that a typical RA VPN deployment might use a single inside/outside pair of interfaces. Important You need ASA virtual Version 9.13(1) or greater to use multiple RX queues. For KVM, the libvirt version needs to be a minimum of 1.0.6. For an 8-core VM with an inside/outside pair of interfaces, each interface will have 4 RX queues, as shown in Figure 9: 8-Core ASA Virtual RSS RX Queues, on page 59. Figure 9: 8-Core ASA Virtual RSS RX Queues For a 16-core VM with an inside/outside pair of interfaces, each interface will have 8 RX queues, as shown in Figure 10: 16-Core ASA Virtual RSS RX Queues, on page 60. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 59Deploy the ASA Virtual Using KVM Multiple RX Queues for Receive Side Scaling (RSS) Figure 10: 16-Core ASA Virtual RSS RX Queues The following table presents the ASA virtual''s vNICs for KVM and the number of supported RX queues. See Recommended vNICs, on page 46 for descriptions of the supported vNICs. Table 12: KVM Recommended NICs/vNICs NIC Card vNIC Driver Driver Technology Number of RX Performance Queues x710 i40e PCI Passthrough 8 maximum PCI Passthrough and SR-IOV modes for the x710 offer the best i40evf SR-IOV 8 performance. SR-IOV is typically preferred for virtual deployments because the NIC can be shared across multiple VMs. x520 ixgbe PCI Passthrough 6 The x520 NIC performs 10 to 30% lower than the x710. PCI Passthrough ixgbe-vf SR-IOV 2 and SR-IOVmodes for the x520 offer similar performance. SR-IOV is typically preferred for virtual deployments because the NIC can be shared across multiple VMs. N/A virtio Para-virtualized 8 maximum Not recommended for ASAv100. For other deployments, see Enable Multiqueue Support for Virtio on KVM, on page 60. Enable Multiqueue Support for Virtio on KVM The following example shows to configure the number of Virtio NIC RX queues to 4 using virsh to edit the libvirt xml: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 60Deploy the ASA Virtual Using KVM VPN Optimization
Important The libvirt version needs to be a minimum of 1.0.6 to support multiple RX queues. VPN Optimization These are some additional considerations for optimizing VPN performance with the ASA virtual. • IPSec has higher throughput than DTLS. • Cipher - GCM has about 2x the throughput of CBC. SR-IOV Interface Provisioning SR-IOV allows multiple VMs to share a single PCIe network adapter inside a host. SR-IOV defines these functions: • Physical function (PF)—PFs are full PCIe functions that include the SR-IOV capabilities. These appear as regular static NICs on the host server. • Virtual function (VF)—VFs are lightweight PCIe functions that help in data transfer. A VF is derived from, and managed through, a PF. VFs are capable of providing up to 10 Gbps connectivity to ASA virtual machine within a virtualized operating system framework. This section explains how to configure VFs in a KVM environment. SR-IOV support on the ASA virtual is explained in ASA Virtual and SR-IOV Interface Provisioning, on page 11. Requirements for SR-IOV Interface Provisioning If you have a physical NIC that supports SR-IOV, you can attach SR-IOV-enabled VFs, or Virtual NICs (vNICs), to the ASA virtual instance. SR-IOV also requires support in the BIOS as well as in the operating system instance or hypervisor that is running on the hardware. The following is a list of general guidelines for SR-IOV interface provisioning for the ASA virtual running in a KVM environment: • You need an SR-IOV-capable physical NIC in the host server; see Guidelines and Limitations for SR-IOV Interfaces, on page 12. • You need virtualization enabled in the BIOS on your host server. See your vendor documentation for details. • You need IOMMUglobal support for SR-IOV enabled in the BIOS on your host server. See your hardware vendor documentation for details. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 61Deploy the ASA Virtual Using KVM Modify the KVM Host BIOS and Host OS Modify the KVM Host BIOS and Host OS This section shows various setup and configuration steps for provisioning SR-IOV interfaces on a KVM system. The information in this section was created from devices in a specific lab environment, using Ubuntu 14.04 on a Cisco UCS C Series server with an Intel Ethernet Server Adapter X520 - DA2. Before you begin • Make sure you have an SR-IOV-compatible network interface card (NIC) installed. • Make sure that the Intel Virtualization Technology (VT-x) and VT-d features are enabled. Note Some system manufacturers disable these extensions by default. We recommend that you verify the process with the vendor documentation because different systems have different methods to access and change BIOS settings. • Make sure all Linux KVM modules, libraries, user tools, and utilities have been installed during the operation system installation; see Prerequisites, on page 48. • Make sure that the physical interface is in the UP state. Verify with ifconfig . Step 1 Log in to your system using the “root” user account and password. Step 2 Verify that Intel VT-d is enabled. Example: kvmuser@kvm-host:/$ dmesg | grep -e DMAR -e IOMMU [ 0.000000] ACPI: DMAR 0x000000006F9A4C68 000140 (v01 Cisco0 CiscoUCS 00000001 INTL 20091013) [ 0.000000] DMAR: IOMMU enabled The last line indicates that VT-d is enabled. Step 3 Activate Intel VT-d in the kernel by appending the intel_iommu=on parameter to the GRUB_CMDLINE_LINUX entry in the /etc/default/grub configuration file. Example: # vi /etc/default/grub ... GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 ... intel_iommu=on" ... Note If you are using an AMD processor, append amd_iommu=on to the boot parameters instead. Step 4 Reboot the server for the iommu change to take effect. Example: > shutdown -r now Step 5 Create VFs by writing an appropriate value to the sriov_numvfs parameter via the sysfs interface using the following format: #echo n > /sys/class/net/device name/device/sriov_numvfs Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 62Deploy the ASA Virtual Using KVM Assign PCI Devices to the ASA Virtual To ensure that the desired number of VFs are created each time the server is power-cycled, you append the above command to the rc.local file, which is located in the /etc/rc.d/ directory. The Linux OS executes the rc.local script at the end of the boot process. For example, the following shows the creation of one VF per port. The interfaces for your particular setup will vary. Example: echo ''1'' > /sys/class/net/eth4/device/sriov_numvfs echo ''1'' > /sys/class/net/eth5/device/sriov_numvfs echo ''1'' > /sys/class/net/eth6/device/sriov_numvfs echo ''1'' > /sys/class/net/eth7/device/sriov_numvfs Step 6 Reboot the server. Example: > shutdown -r now Step 7 Verify that the VFs have been created using lspci. Example: > lspci | grep -i "Virtual Function" kvmuser@kvm-racetrack:~$ lspci | grep -i "Virtual Function" 0a:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 0a:10.1 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 0a:10.2 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 0a:10.3 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) Note You will see additional interfaces using the ifconfig command. Assign PCI Devices to the ASA Virtual Once you create VFs, you can add them to the ASA virtual just as you would add any PCI device. The following example explains how to add an Ethernet VF controller to an ASA virtual using the graphical virt-manager tool. Step 1 Open the ASA virtual click the Add Hardware button to add a new device to the virtual machine. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 63Deploy the ASA Virtual Using KVM Assign PCI Devices to the ASA Virtual Figure 11: Add Hardware Step 2 Click PCI Host Device from the Hardware list in the left pane. The list of PCI devices, including VFs, appears in the center pane. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 64Deploy the ASA Virtual Using KVM Assign PCI Devices to the ASA Virtual Figure 12: List of Virtual Functions Step 3 Select one of the available Virtual Functions and click Finish. The PCI Device shows up in the Hardware List; note the description of the device as Ethernet Controller Virtual Function. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 65Deploy the ASA Virtual Using KVM CPU Usage and Reporting Figure 13: Virtual Function added What to do next • Use the show interface command from the ASA virtual command line to verify newly configured interfaces. • Use the interface configuration mode on the ASA virtual to configure and enable the interface for transmitting and receiving traffic; see the Basic Interface Configuration chapter of the Cisco Secure Firewall ASA Series General Operations CLI Configuration Guide for more information. CPU Usage and Reporting The CPU Utilization report summarizes the percentage of the CPU used within the time specified. Typically, the Core operates on approximately 30 to 40 percent of total CPU capacity during nonpeak hours and approximately 60 to 70 percent capacity during peak hours. Important Beginningwith 9.13(1), anyASAVirtual license now can be used on any supportedASAVirtual vCPU/memory configuration. This allows ASA Virtual customers to run on a wide variety of VM resource footprints. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 66Deploy the ASA Virtual Using KVM vCPU Usage in the ASA Virtual vCPU Usage in the ASA Virtual The ASA virtual vCPU usage shows the amount of vCPUs used for the data path, control point, and external processes. The vSphere reported vCPU usage includes the ASA virtual usage as described plus: • ASA virtual idle time • %SYS overhead used for the ASA virtual machine • Overhead of moving packets between vSwitches, vNICs, and pNICs. This overhead can be quite significant. CPU Usage Example The show cpu usage command can be used to display CPU utilization statistics. Example Ciscoasa#show cpu usage CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1% The following is an example in which the reported vCPU usage is substantially different: • ASA Virtual reports: 40% • DP: 35% • External Processes: 5% • ASA (as ASA Virtual reports): 40% • ASA idle polling: 10% • Overhead: 45% The overhead is used to perform hypervisor functions and to move packets between NICs and vNICs using the vSwitch. KVM CPU Usage Reporting The virsh cpu-stats domain --total start count command provides the CPU statistical information on the specified guest virtual machine. By default, it shows the statistics for all CPUs, as well as a total. The --total option will only display the total statistics. The --count option will only display statistics for count CPUs. Tools like OProfile, top etc. give the total CPU usage of a particular KVMVMwhich includes the CPU usage of both the hypervisor as well as VM. Similarly, tools like XenMon which are specific to Xen VMM gives total CPU usage of Xen hypervisor i.e Dom 0 but don’t separate it into hypervisor usage per VM. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 67Deploy the ASA Virtual Using KVM ASA Virtual and KVM Graphs Apart from this, certain tools exist in cloud computing frameworks like OpenNebula which only provides coarse grained information of percentage of Virtual CPU used by a VM. ASA Virtual and KVM Graphs There are differences in the CPU % numbers between the ASA Virtual and KVM: • The KVM graph numbers are always higher than the ASA Virtual numbers. • KVM calls it %CPU usage; the ASA Virtual calls it %CPU utilization. The terms “%CPU utilization” and “%CPU usage” mean different things: • CPU utilization provides statistics for physical CPUs. • CPU usage provides statistics for logical CPUs, which is based on CPU hyperthreading. But because only one vCPU is used, hyperthreading is not turned on. KVM calculates the CPU % usage as follows: Amount of actively used virtual CPUs, specified as a percentage of the total available CPUs This calculation is the host view of the CPU usage, not the guest operating system view, and is the average CPU utilization over all available virtual CPUs in the virtual machine. For example, if a virtual machine with one virtual CPU is running on a host that has four physical CPUs and the CPU usage is 100%, the virtual machine is using one physical CPU completely. The virtual CPU usage calculation is Usage in MHz / number of virtual CPUs x core frequency Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 68C H A P T E R 4 Deploy the ASA Virtual On the AWS Cloud You can deploy the ASA virtual on the Amazon Web Services (AWS) cloud. Important Beginningwith 9.13(1), any ASA virtual license now can be used on any supported ASA virtual vCPU/memory configuration. This allows the ASA virtual customers to run on a wide variety of VM resource footprints. This also increases the number of supported AWS instances types. • Overview, on page 69 • Prerequisites, on page 72 • Guidelines and Limitations, on page 72 • Configuration Migration and SSH Authentication, on page 74 • Sample Network Topology, on page 74 • Instance Metadata Data Service (IMDS) for ASA Virtual in AWS, on page 75 • Deploy the ASA Virtual, on page 76 • Integrating Amazon GuardDuty Service and Threat Defense Virtual, on page 80 • About Secure Firewall ASA Virtual and GuardDuty Integration, on page 80 • Supported Software Platforms, on page 83 • Guidelines and Limitations for Amazon GuardDuty and Secure Firewall ASA Virtual Integration, on page 83 • Integrate Amazon GuardDuty with ASA virtual, on page 84 • Update Existing Solution Deployment Configuration, on page 94 • Performance Tuning, on page 96 Overview The ASA virtual runs the same software as physical ASAs to deliver proven security functionality in a virtual form factor. The ASA virtual can be deployed in the public AWS cloud. It can then be configured to protect virtual and physical data center workloads that expand, contract, or shift their location over time. The ASA virtual support the following AWS instance types. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 69Deploy the ASA Virtual On the AWS Cloud Overview Table 13: AWS Supported Instance Types Instance Attributes Maximum Number of Interfaces vCPUs Memory (GB) c3.large 2 3.75 3 c3.xlarge 4 7.5 4 c3.2xlarge 8 15 4 c4.large 2 3.75 3 c4.xlarge 4 7.5 4 c4.2xlarge 8 15 4 c5.large 2 4 3 c5.xlarge 4 8 4 c5.2xlarge 8 16 4 c5.4xlarge 16 32 8 c5a.large 2 4 3 c5a.xlarge 4 8 4 c5a.2xlarge 8 16 4 c5a.4xlarge 16 32 8 c5ad.large 2 4 3 c5ad.xlarge 4 8 4 c5ad.2xlarge 8 16 4 c5ad.4xlarge 16 32 8 c5d.large 2 4 3 c5d.xlarge 4 8 4 c5d.2xlarge 8 16 4 c5d.4xlarge 16 32 8 c5n.large 2 5.3 3 c5n.xlarge 4 10.5 4 c5n.2xlarge 8 21 4 c5n.4xlarge 16 42 8 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 70Deploy the ASA Virtual On the AWS Cloud Overview Instance Attributes Maximum Number of Interfaces vCPUs Memory (GB) m4.large 2 8 2 m4.xlarge 4 16 4 m4.2xlarge 8 32 4 m5n.large 2 8 3 m5n.xlarge 4 16 4 m5n.2xlarge 8 32 4 m5n.4xlarge 16 64 8 m5zn.large 2 8 3 m5zn.xlarge 4 16 4 m5zn.2xlarge 8 32 4 Tip If you are using M4 or C4 instance type, then we recommend that you migrate to M5 or C5 instance type that uses Nitro hypervisor and Elastic Network Adapter (ENA) interface drivers for improved performance. Table 14: ASA virtual Licensed Feature Limits Based on Entitlement Performance Tier Instance Type (Core/RAM) Rate Limit RA VPN Session Limit ASAv5 c5.large 100 Mbps 50 2 core/4 GB ASAv10 c5.large 1 Gbps 250 2 core/4 GB ASAv30 c5.xlarge 2 Gbps 750 4 core/8 GB ASAv50 c5.2xlarge 10 Gbps 10,000 8 core/16 GB ASAv100 c5n.4xlarge 16 Gbps 20,000 16 core/42 GB You create an account on AWS, set up the ASA virtual using the AWSWizard, and chose an AmazonMachine Image (AMI). The AMI is a template that contains the software configuration needed to launch your instance. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 71Deploy the ASA Virtual On the AWS Cloud Prerequisites Important The AMI images are not available for download outside of the AWS environment. Prerequisites • Create an account on aws.amazon.com. • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Licensing for the ASA Virtual, on page 1. Note All the default License entitlements offered by Cisco, previously for ASAVirtual, will have the IPv6 configuration support. • Interface requirements: • Management interface • Inside and outside interfaces • (Optional) Additional subnet (DMZ) • Communications paths: • Management interface—Used to connect the ASA virtual to the ASDM; can’t be used for through traffic. • Inside interface (required)—Used to connect the ASA virtual to inside hosts. • Outside interface (required)—Used to connect the ASA virtual to the public network. • DMZ interface (optional)—Used to connect the ASA virtual to the DMZ network when using the c3.xlarge interface. • For ASA virtual system requirements, see Cisco Secure Firewall ASA Compatibility. Guidelines and Limitations Supported Features The ASA virtual on AWS supports the following features: • Support for Amazon EC2 C5 instances, the next generation of the Amazon EC2 Compute Optimized instance family. • Deployment in the Virtual Private Cloud (VPC) • Enhanced networking (SR-IOV) where available • Deployment from Amazon Marketplace Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 72Deploy the ASA Virtual On the AWS Cloud Guidelines and Limitations • User deployment of L3 networks • Routed mode (default) • IPv6 • Amazon CloudWatch • Clustering Unsupported Features The ASA virtual on AWS does not support the following: • Console access (management is performed using SSH or ASDM over network interfaces) • VLAN • Promiscuous mode (no sniffing or transparent mode firewall support) • Multiple context mode • ASA virtual native HA • EtherChannel is only supported on direct physical interfaces • VM import/export • Hypervisor agnostic packaging • VMware ESXi • Broadcast/multicast messages These messages are not propagated within AWS so routing protocols that require broadcast/multicast do not function as expected in AWS. VXLAN can operate only with static peers. • Gratuitous/unsolicited ARPs These ARPS are not accepted within AWS so NAT configurations that require gratuitous ARPs or unsolicited ARPs do not function as expected. ASA Virtual Limitations for Instance Metadata Data Service (IMDS) Service • IMDS mode for instance can be changed at any point in time. • Before switching to IMDSv2 Required mode, ensure that the product version supports it otherwise some services, which depend on IMDS, might fail. • For older versions(without IMDSv2 support), deployment will be possible only with IMDSv2 Optional mode. • For newer versions(with IMDSv2 support), deployment is possible in both IMDSv2Optional and IMDSv2 Required mode. But IMDSv2 Required mode is recommended. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 73Deploy the ASA Virtual On the AWS Cloud Configuration Migration and SSH Authentication Configuration Migration and SSH Authentication Upgrade impact when using SSH public key authentication—Due to updates to SSH authentication, additional configuration is required to enable SSH public key authentication; as a result, existing SSH configurations using public key authentication no longer work after upgrading. Public key authentication is the default for the ASA virtual on Amazon Web Services (AWS), so AWS users will see this issue. To avoid loss of SSH connectivity, you can update your configuration before you upgrade. Or you can use ASDM after you upgrade (if you enabled ASDM access) to fix the configuration. The following is a sample original configuration for a username "admin": username admin nopassword privilege 15 username admin attributes ssh authentication publickey 55:06:47:eb:13:75:fc:5c:a8:c1:2c:bb: 07:80:3a:fc:d9:08:a9:1f:34:76:31:ed:ab:bd:3a:9e:03:14:1e:1b hashed To use the ssh authentication command, before you upgrade, enter the following commands: aaa authentication ssh console LOCAL username admin password privilege 15 We recommend setting a password for the username as opposed to keeping the nopassword keyword, if present. The nopassword keyword means that any password can be entered, not that no password can be entered. Prior to 9.6(2), the aaa command was not required for SSH public key authentication, so the nopassword keyword was not triggered. Now that the aaa command is required, it automatically also allows regular password authentication for a username if the password (or nopassword) keyword is present. After you upgrade, the username command no longer requires the password or nopassword keyword; you can require that a user cannot enter a password. Therefore, to force public key authentication only, re-enter the username command: username admin privilege 15 Sample Network Topology The following figure shows the recommended topology for the ASA virtual in Routed Firewall Mode with four subnets configured in AWS for the ASA virtual (management, inside, outside, and DMZ). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 74Deploy the ASA Virtual On the AWS Cloud Instance Metadata Data Service (IMDS) for ASA Virtual in AWS Figure 14: Sample ASA Virtual on AWS Deployment IPv6 Topology Instance Metadata Data Service (IMDS) for ASA Virtual in AWS Instance Metadata Data Service (IMDS) provides information about the ASA Virtual instances data, which are deployed on AWS. The information includes details about the virtual instance’s network, storage and other data. This metadata can be used to automate configuration decisions (Day0 config) and display instance information such as instance type, region and so on. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 75Deploy the ASA Virtual On the AWS Cloud Deploy the ASA Virtual IMDS APIs collect metadata of the ASAVirtual instance from AWS during device bootup and later configure the instance. Currently, ASA Virtual instances use the IMDSv1 API to fetch and validate the instance’s metadata. The IMDSv2 APIs, which are more secure and robust are supported from ASA Virtualversion 9.20.3 and later. Configure IMDS in AWS for ASA Virtual instance AWS supports the following two IMDSv2 modes for ASA Virtual instance: • IMDSv2 Optional: You can deploy a ASA Virtual instance enabling either IMDSv1 or IMDSv2 or a combination of both IMDSv1 and IMDSv2 API. • IMDSv2 only (token required): You must specifically configure this mode when you want to enable the IMDSv2 API during ASA Virtual instance deployment. Note IMDSv2 only (token required) Required is the recommended mode, where only IMDSv2 API calls are supported. You can configure IMDS in AWS for the instances in the following deployments scenarios: New Deployments: You can configure IMDSv2 Required mode when you are newly deploying ASA Virtual instances. For new deployment, you can use one of the following methods to enable the IMDSv2. • AWS EC2 console – You can enable theV2 only (token required) for a standalone instance deployment in the Advance Details section of the AWS EC2 console. • CloudFormation template – You can use HttpEndpoint: enabled and HttpTokens: required properties under MetadataOptions in the template to enableV2 only (token required) - IMDSv2 Required mode. This is applicable for Autoscale and Clustering deployment. Existing Deployment: You can configure the IMDSv2 Optional mode to IMDSv2 Required mode on your existing ASA Virtual instances on AWS after upgrading the instances to an IMDSv2 API supported version. Deploy the ASA Virtual The following procedure is a top-level list of steps to set up AWS on the ASA virtual. For detailed steps for setup, see Getting Started with AWS. Step 1 Log into aws.amazon.com and choose your region. Note AWS is divided into multiple regions that are isolated from each other. The region is displayed in the upper right corner of your screen. Resources in one region do not appear in another region. Check periodically to make sure you are in the intended region. Step 2 Click My Account > AWS Management Console, and under Networking, click VPC > Start VPC Wizard, and create your VPC by choosing a single public subnet, and set up the following (you can use the default settings unless otherwise noted): • Inside and outside subnet—Enter a name for the VPC and the subnets. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 76Deploy the ASA Virtual On the AWS Cloud Deploy the ASA Virtual • Internet Gateway—Enables direct connectivity over the Internet (enter the name of the Internet gateway). • Outside table—Add entry to enable outbound traffic to the Internet (add 0.0.0.0/0 to Internet Gateway). Note Virtual Networks, Subnets, Interface, etc., cannot be created by using IPv6 alone. The IPv4 is used by default, and IPv6 can be enabled along with it. For more information on IPv6, see AWS IPv6 Overview and AWS VPC Migration. Step 3 Click My Account > AWS Management Console > EC2, and then click Create an Instance. • Select your AMI (for example Ubuntu Server 14.04 LTS). Use the AMI identified in the your image delivery notification. • Choose the instance type supported by the ASA virtual (for example, c3.large). • Configure the instance (CPUs and memory are fixed). • Expand the Advanced Details section and in the User data field you can optionally enter a Day 0 configuration, which is text input that contains the ASA virtual configuration applied when the ASA virtual is launched. For more information on how to configure the Day 0 configuration with more information, such as Smart Licensing, see Prepare the Day 0 Configuration File. • Management interface - If you choose to provide a Day 0 configuration, you must provide management interface details, which should be configured to use DHCP. • Data interfaces - IP addresses for the data interfaces will be assigned and configured only if you provide that information as part of the Day 0 configuration. Data interfaces can be configured to use DHCP or, if the network interfaces to be attached are already created and the IP addresses are known, you can provide the IP details in the Day 0 configuration. • Without Day 0 Configuration - If you deploy the ASA virtual without providing the Day 0 configuration, the ASA virtual applies the default ASA virtual configuration where it fetches the IPs of the attached interfaces from the AWS metadata server and allocates the IP addresses (the data interfaces will get the IPs assigned but the ENIs will be down). Management0/0 interface will be up and gets the IP configured with DHCP address. See IP Addressing in your VPC for information about Amazon EC2 and Amazon VPC IP addressing. • Sample Day 0 Configuration - ! ASA Version 9.x.1.200 ! interface management0/0 management-only nameif management security-level 100 ip address dhcp setroute ipv6 enable ipv6 address dhcp default no shutdown ! crypto key generate rsa modulus 2048 ssh 0 0 management ssh ::/0 management ssh timeout 60 ssh version 2 username admin password Q1w2e3r4 privilege 15 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 77Deploy the ASA Virtual On the AWS Cloud Deploy the ASA Virtual username admin attributes service-type admin aaa authentication ssh console LOCAL ! same-security-traffic permit inter-interface same-security-traffic permit intra-interface access-list allow-all extended permit ip any any access-list allow-all extended permit ip any6 any6 access-group allow-all global ! interface G0/0 nameif outside ip address dhcp setroute ipv6 enable ipv6 address dhcp default no shutdown ! interface G0/1 nameif inside ip address dhcp ipv6 enable ipv6 address dhcp default no shutdown ! • Storage (accept the defaults). • Tag Instance—You can create a lot of tags to classify your devices. Give it a name you can use to find it easily. • Security Group—Create a security group and name it. The security group is a virtual firewall for an instance to control inbound and outbound traffic. By default the Security Group is open to all addresses. Change the rules to only allow SSH in from addresses used to access your ASA virtual. For information on how the security group controls the traffic, refer to AWS documentation - Control traffic to your AWS resources using security groups. • Expand the Advanced Details section and in the User data field you can optionally enter a Day 0 configuration, which is text input that contains the ASA virtual configuration applied when the ASA virtual is launched. For more information on how to configure the Day 0 configuration with more information, such as Smart Licensing, see Prepare the Day 0 Configuration File. • Management interface - If you choose to provide a Day 0 configuration, you must provide management interface details, which should be configured to use DHCP. • Data interfaces - IP addresses for the data interfaces will be assigned and configured only if you provide that information as part of the Day 0 configuration. Data interfaces can be configured to use DHCP or, if the network interfaces to be attached are already created and the IP addresses are known, you can provide the IP details in the Day 0 configuration. • Without Day 0 Configuration - If you deploy the ASA virtual without providing the Day 0 configuration, the ASA virtual applies the default ASA virtual configuration where it fetches the IPs of the attached interfaces from the AWS metadata server and allocates the IP addresses (the data interfaces will get the IPs assigned but the ENIs will be down). Management0/0 interface will be up and gets the IP configured with DHCP address. See IP Addressing in your VPC for information about Amazon EC2 and Amazon VPC IP addressing. • Under Advanced Details, add the default login information. Modify the example below to match your requirements for device name and password. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 78Deploy the ASA Virtual On the AWS Cloud Configure IMDSv2 Required Mode for Existing ASA Virtual Instances • Under Advanced Details, enable the IMDSv2 metadata: a. Choose Enabled from the Metadata accessible drop-down list. b. Choose V2 only (token required) from the Metadata version drop-down list. You can also enable the IMDSv2 from the AWS CLI by perform the following: • Open the AWS CLI console and add the following arguments to enable IMDSv2 Required mode --metadata-options "HttpEndpoint=enabled,HttpTokens=required” Sample IMDSv2 configuration: aws ec2 run-instances \, --image-id ami-0abcdef1234567890 \ --instance-type c5x.large \ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required" • Review your configuration and then click Launch. Step 4 Create a Key Pair. Caution Give the key pair a name you will recognize and download the key to a safe place; the key can never be downloaded again. If you lose the key pair, you must destroy your instances and redeploy them again. Step 5 Click Launch Instance to deploy your ASA virtual. Step 6 Click My Account > AWS Management Console > EC2 > Launch an Instance > My AMIs. Step 7 Make sure that the Source/Destination Check is disabled per interface for the ASA virtual. AWS default settings only allow an instance to receive traffic for its IP address (IPv4 and IPv6) and only allow an instance to send traffic from its own IP address (IPv4 and IPv6) . To enable the ASA virtual to act as a routed hop, you must disable the Source/Destination Check on each of the ASA virtual''s traffic interfaces (inside, outside, and DMZ). Configure IMDSv2 Required Mode for Existing ASA Virtual Instances You can configure the IMDSv2 Required mode for the ASA Virtual instances that are already deployed on the AWS. Before you begin IMDSv2 Required mode is only supported by ASA Virtual version 9.20.3 and later. You must ensure that your existing instance ASA Virtual version supports (9.20.3 and later) IMDSv2 APIs before configuring the IMDSv2 Required mode for your deployments or instances. Step 1 Log into http://aws.amazon.com/ and choose your region. Step 2 Click EC2 > Instances. Step 3 Right-click the instance, then select Instance Settings > Modify instance metadata options. The Modify instance metadata options dialog box is displayed. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 79Deploy the ASA Virtual On the AWS Cloud Integrating Amazon GuardDuty Service and Threat Defense Virtual Step 4 Under Instance metadata service section, click Enable. Step 5 Under IMDSv2 options, click Required. This enables the IMDSv2 Required mode for the selected instance. Step 6 Click Save. Integrating Amazon GuardDuty Service and Threat Defense Virtual Amazon GuardDuty is a monitoring service that processes data from various sources such as VPC logs, CloudTrail management event logs, CloudTrail S3 data event logs, DNS logs, and so on to identify potentially unauthorized and malicious activity in the AWS environment. About Secure Firewall ASA Virtual and GuardDuty Integration Cisco offers a solution to integrate the Amazon GuardDuty service with Secure Firewall ASA Virtual using CLI over SSH. This solution use the threat analysis data or results from the Amazon GuardDuty (malicious IPs generating threats, attacks and so on) and feeds that information (malicious IP) to the Secure Firewall ASA Virtual to protect the underlying network and applications against future threats originating from these sources (malicious IP). End-to-End Procedure The following integration solutions with workflow illustrations help you understand the integration of Amazon GuardDuty with Secure Firewall Threat Defense Virtual. The following workflow diagram shows the Amazon GuardDuty integration solution with ASA virtual. Integration with Secure Firewall device manager using Network Object Group The following workflow diagram shows the Amazon GuardDuty integration solution with Secure Firewall device manager using the network object group. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 80Deploy the ASA Virtual On the AWS Cloud Key Components of This Integration The GuardDuty service sends threat findings to CloudWatch when it detects a malicious activity. The CloudWatch event activates the AWS Lambda function. The Lambda function updates the malicious host in the report file in the S3 bucket and sends a notification via SNS. The Lambda function configures or updates the network object group with the malicious host IP address in Secure Firewall device manager. The Secure Firewall device manager access control policy directs the managed device to handle the traffic based on the configured actions, for example, block traffic from the malicious hosts reported by GuardDuty. This access control policy uses the network object group with the malicious IP address provided by the Lambda function. Key Components of This Integration Component Description Amazon GuardDuty An Amazon service responsible for generating threat findings for the various AWS resources in a specific region, such as EC2, S3, IAM, and so on. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 81Deploy the ASA Virtual On the AWS Cloud Key Components of This Integration Amazon Simple An Amazon service used for storing various artifacts associated with the solution: Storage Service (S3) • Lambda function zip file • Lambda layer zip file • ASA virtual configuration input file(.ini) • Output report file (.txt) containing a list of malicious IP addresses reported by the Lambda function Amazon CloudWatch An Amazon service used for: • Monitoring the GuardDuty service for any reported findings and triggering the Lambda function to process the finding. • Logging the Lambda function-related activities in the CloudWatch log group. Amazon Simple An Amazon service used to push email notifications. These email notifications Notification Service contain: (SNS) • The details of the GuardDuty finding that was successfully processed by the Lambda function. • The details of the updates performed on the Secure Firewall managers by the Lambda function. • Any significant errors encountered by the Lambda function. AWS Lambda An AWS serverless compute service that runs your code in response to events and Function automatically manages the underlying compute resources for you. The Lambda function is triggered by the CloudWatch event rule based on GuardDuty findings. In this integration, the Lambda function is responsible for: • Processing the GuardDuty findings to verify that all the required criteria are met, such as severity, connection direction, presence of malicious IP address, and so on. • (Depending on the configuration) Updating the network object group on the Secure Firewall managers with the malicious IP address. • Updating the malicious IP address in the report file on the S3 bucket. • Notifying the Secure Firewall administrator about various manager updates and any errors. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 82Deploy the ASA Virtual On the AWS Cloud Supported Software Platforms CloudFormation Used to deploy various resources required for the integration in AWS. Template The CloudFormation template contains the following resources: • AWS::SNS::Topic: The SNS Topic for pushing email notifications. • AWS::Lambda::Function, AWS::Lambda::LayerVersion : The Lambda function and layer files • AWS::Events::Rule: The CloudWatch event rule to trigger the Lambda function based on the GuardDuty findings event. • AWS::Lambda::Permission: Permission for the CloudWatch event rule to trigger the Lambda function. • AWS::IAM::Role, AWS::IAM::Policy: The IAM role and policy resources to allow various access permissions to the Lambda function for various AWS resources. This template accepts user input parameters to customize the deployment. Supported Software Platforms • The GuardDuty integration solution is applicable to Secure Firewall ASA Virtual managed using CLI over SSH. • The Lambda function can update the network object groups in the Secure Firewall ASA Virtual. Ensure that the Lambda function can connect to Secure Firewall ASA Virtual using public IP addresses. Guidelines and Limitations for Amazon GuardDuty and Secure Firewall ASA Virtual Integration • The Lambda function is responsible only for updating the network objects groups with the malicious IP addresses. Depending on your requirement, create access rules and access policies to block any traffic that is not required. • The AWS services used in this integration are region-specific. If you want to use GuardDuty findings from different regions, you must deploy region-specific instances. • You can configure ASAVirtual updates using CLI over SSH. ASDM, CSM, and CDO, are not supported. • You can use only password-based login. No other authentication methods are supported. • If you are using encrypted passwords in the input file, keep in mind that: • Only encryption using the symmetric KMS keys is supported. • All the passwords must be encrypted using a single KMS key accessible to the Lambda function. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 83Deploy the ASA Virtual On the AWS Cloud Integrate Amazon GuardDuty with ASA virtual Integrate Amazon GuardDuty with ASA virtual Perform the following tasks to integrate Amazon GuardDuty with ASA virtual Workspace Steps AWS Management Console Enable Amazon GuardDuty Service on AWS, on page 84 Local Machine Download the Secure Firewall ASA Virtual and Amazon GuardDuty Solution Template, on page 85 Secure Firewall ASA virtual Configure your Managed Devices to Work with Amazon GuardDuty, on page 85 Local Machine Prepare Amazon GuardDuty Resource Files for Deployment, on page 87 AWS Management Console Upload Files to Amazon Simple Storage Service, on page 90 Local Machine Collect Input Parameters for CloudFormation Template, on page 91 AWS Management Console Deploy the Stack, on page 92 Enable Amazon GuardDuty Service on AWS This section describes how to enable Amazon GuardDuty service on AWS. Before you begin Ensure that all the AWS resources are in the same region. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 84Deploy the ASA Virtual On the AWS Cloud Download the Secure Firewall ASA Virtual and Amazon GuardDuty Solution Template Step 1 Go to https://aws.amazon.com/marketplace (Amazon Marketplace) and sign in. Step 2 Choose Services > GuardDuty. Step 3 Click Get Started in the GuardDuty page. Step 4 Click Enable GuardDuty to enable the Amazon GuardDuty service. For more information on enabling GuardDuty, see Getting started with GuardDuty in AWS Documentation. What to do next Download the Amazon GuardDuty solution files (templates and scripts) from the Cisco GitHub repository. See Download the Secure Firewall ASA Virtual and Amazon GuardDuty Solution Template, on page 85. Download the Secure Firewall ASA Virtual and Amazon GuardDuty Solution Template Download the files required for the Amazon GuardDuty solution. The deployment scripts and templates for your Secure Firewall ASA Virtual version are available from the Cisco GitHub repository at: https://github.com/CiscoDevNet/cisco-asav The following is a list of resources in the Cisco GitHub repository: Files Description READ.MD ReadMe file configuration/ Secure Firewall ASA Virtual Configuration file template. images/ It contains the Secure Firewall ASAVirtual and Amazon GuardDuty integration solution illustrations. lambda/ Lambda function Python files. templates/ CloudFormation template for deployment. Configure your Managed Devices to Work with Amazon GuardDuty The Lambda function processes the Amazon GuardDuty findings and identifies the malicious IP address that triggered the CloudWatch Event. Then, the Lambda function updates the network object group in the ASAv with the malicious IP address. You can then configure an access control policy that uses this network object group to handle the traffic. Create Network Object Group In the ASA virtual, you must configure or create a network object group for the Lambda function to update the malicious IP address detected by the Amazon GuardDuty. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 85Deploy the ASA Virtual On the AWS Cloud Create Network Object Group in Secure Firewall ASA Virtual If you do not configure a network object group with the Lambda function, then a network object group with the default name aws-gd-suspicious-hosts is created by the Lambda function to update the malicious IP address. Create Network Object Group in Secure Firewall ASA Virtual In Secure Firewall ASA Virtual, you must create a network object group for the Lambda function to update the malicious IP address detected by the Amazon GuardDuty. If you do not configure a network object group with the Lambda function, then a network object group with the default name aws-gd-suspicious-hosts is created by the Lambda function to update the malicious IP address. Initially, to use the network object group in an ACL rule, you may have to create the object group with a dummy IP address. You can create multiple network object groups on a single ASAv. For more information about network object group and access policy, see Cisco ASA Series Firewall CLI Configuration Guide. To create the network object group, perform the following steps: Step 1 Log in to Secure Firewall ASA Virtual. Step 2 Create a network object group with a description. In this example, a dummy host IP address 12.12.12.12 is added to the network object group created. Example: hostname(config)# object-group network aws-gd-suspicious-hosts hostname(config)# description Malicious Hosts reported by AWS GuardDuty hostname(config)# network-object host 12.12.12.12 Step 3 Create or update the Access Policy or Access Control Rule to handle the traffic using the network object group. \ Tip You can also create or update the Access Control Policy or Access Control Rule after verifying that the Lambda function is updating the network object group with the malicious IP address. Example: hostname(config)# access-list out-iface-access line 1 extended deny ip object-group aws-gd-suspicious-hosts any Creating User Accounts in ASAv for Lambda Function access The Lambda function requires a dedicated user on ASAv to handle configuration updates. A privilege level of 15 ensures that the user has all privileges. For more information about creating user, see Cisco ASA Series Firewall CLI Configuration Guide. Step 1 Create a user. username name [password password] privilege level Example: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 86Deploy the ASA Virtual On the AWS Cloud (Optional) Encrypt Passwords hostname(config)# username aws-gd password MyPassword@2021 privilege 15 Step 2 Configure username attributes. username username attributes Example: hostname(config)# username aws-gd attributes Step 3 Provide the user with admin level access to all services. service-type admin Example: hostname(config)# service-type admin (Optional) Encrypt Passwords If required, you can provide encrypted passwords in the input configuration file. You can also provide passwords in plain text format. Encrypt all the passwords using a single KMS key that is accessible to the Lambda function. Use the aws kms encrypt --key-id --plaintext command to generate the encrypted password. You have to install and configure AWS CLI to run this command. Note Ensure that passwords are encrypted using symmetric KMS keys. For more information on AWS CLI, see AWS Command Line Interface. For more information on master keys and encryption, see the AWS document Creating keys and the AWS CLI Command Reference about password encryption and KMS. Example: $ aws kms encrypt --key-id --plaintext { "KeyId": "KMS-ARN", "CiphertextBlob": "AQICAHgcQFAGtz/hvaxMtJvY/x/rfHnKI3clFPpSXUU7HQRnCAFwfXhXHJAHL8tcVmDqurALAAAAajBoBgkqhki G9w0BBwagWzBZAgEAMFQGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM45AIkTqjSekX2mniAgEQgCcOav6Hhol +wxpWKtXY4y1Z1d0z1P4fx0jTdosfCbPnUExmNJ4zdx8=" } $ The value of CiphertextBlob key should be used as a password. Prepare Amazon GuardDuty Resource Files for Deployment The Amazon GuardDuty solution deployment resource files are available on the Cisco GitHub repository. Before deploying the Amazon GuardDuty solution on AWS, you must prepare the following files: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 87Deploy the ASA Virtual On the AWS Cloud Prepare Configuration Input file • Secure Firewall ASA virtual manager configuration input file • Lambda function zip file • Lambda layer zip file Prepare Configuration Input file In the configuration template, you must define the details of the ASAv you are integrating with the Amazon GuardDuty solution. Before you begin • Ensure to authenticate and verify the user account of the device manager before you provide the user account details in the configuration file. • Ensure that you configure only one ASAv in the configuration file. If you configure multiple ASAvs, then the Lambda function may simultaneously update all the ASAvs configured in the file resulting in race conditions and non deterministic behavior. • You must have noted the IP address and name of the ASAv. • You must have created a user account having admin privileges for the Lambda function to access and update these network object groups in the ASAv. Step 1 Log in to the local machine where you have downloaded the Amazon GuardDuty resource files. Step 2 Browse to the asav-template > configuration folder. Step 3 Open the asav-manager-config-input.ini file in a text editor tool. In this file, you must enter the details of the ASAv on which you plan to integrate and deploy the Amazon GuardDuty solution. Step 4 Enter the following ASAv parameters: Parameters Description [asav-1] Section name: Unique ASAv identifier within the file public-ip Public IP address of the ASAv user name User name to log in to ASAv. password Password to log in to ASAv. The password can be in plain text format or an encrypted string that has been encrypted using KMS. enable-password Enable password of the ASAv. The password can be in plain text format or an encrypted string that has been encrypted using KMS. object-group-name Name of the network object groups name that is updated with malicious host IP by the Lambda function. If you are entering multiple network object groups name, ensure that they are comma separated values. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 88Deploy the ASA Virtual On the AWS Cloud Preparing Lambda Function Archive File Step 5 Save and close the asav-manager-config-input.inifile. What to do next Create the Lambda Function archive file. Preparing Lambda Function Archive File This section describes how to archive the Lambda function files in a Linux environment. Note The archiving process may differ depending on the operating system of the local machine where you are archiving the files. Before you begin Ensure that your Linux host is running Ubuntu version 18.04 with Python version 3.6 or later. Step 1 Open the CLI console on the local machine on which you have downloaded the Amazon GuardDuty resources. Step 2 Navigate to the /lambda folder and archive the files. The following is a sample transcript from a Linux host. $ cd lambda $ zip asav-gd-lambda.zip *.py adding: aws.py (deflated 71%) adding: asav.py (deflated 79%) adding: main.py (deflated 73%) adding: utils.py (deflated 65%) $ The zip file asav-gd-lambda.zip is created. Step 3 Exit and close the CLI console. What to do next Create the Lambda layer zip file using the zip file asav-gd-lambda.zip file. Prepare Lambda Layer File This section describes how to archive the Lambda layer file in a Linux environment. Note The archiving process may differ depending on the operating system of the local machine where you are archiving the file. Step 1 Open the CLI console on the local machine where you have downloaded the Amazon GuardDuty resources. Step 2 Perform the following actions in your CLI console. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 89Deploy the ASA Virtual On the AWS Cloud Upload Files to Amazon Simple Storage Service The following is a sample transcript from a Linux host such as Ubuntu 22.04 with Python 3.9 installed. $ mkdir -p layer $ virtualenv -p /usr/bin/python3.9 ./layer/ $ source ./layer/bin/activate $ pip3.9 install cffi==1.15.0 $ pip3.9 install cryptography==37.0.2 $ pip3.9 install paramiko==2.7.1 $ mkdir -p ./python/.libs_cffi_backend/ $ cp -r ./layer/lib/python3.9/site-packages/* ./python/ $ zip -r asav-gd-lambda-layer.zip ./python The zip file asav-gd-lambda-layer.zip is created. Note that you must install Python 3.9 and its dependencies for creating the Lambda layer. The following is the sample transcript for installing Python 3.9 on a Linux host such as Ubuntu 22.04. $ sudo apt update $ sudo apt install software-properties-common $ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt install python3.9 $ sudo apt install python3-virtualenv $ sudo apt install zip $ sudo apt-get install python3.9-distutils $ sudo apt-get install python3.9-dev $ sudo apt-get install libffi-dev Step 3 Exit and close the CLI console. What to do next In Amazon S3 bucket, you must upload the Secure Firewall ASA virtual configuration file, the Lambda function zip file, and the Lambda layer zip file. See Upload Files to Amazon Simple Storage Service, on page 90 Upload Files to Amazon Simple Storage Service After you prepare all the Amazon GuardDuty solution artifacts, you must upload the files to an Amazon Simple Storage Service (S3) bucket folder in the AWS portal. Step 1 Go to https://aws.amazon.com/marketplace (Amazon Marketplace) and sign in. Step 2 Open the Amazon S3 console. Step 3 Create an Amazon S3 Bucket for uploading the Amazon GuardDuty artifacts. See Creating Amazon S3. Step 4 Upload the following Amazon GuardDuty artifacts to the Amazon S3 bucket. • Secure Firewall ASA virtual configuration file: asav-config-input.ini Note This file is not required to be uploaded when you are using Security Intelligence Network Feed method for deploying the Amazon GuardDuty solution in management centers. • Lambda layer zip file: asav-gd-lambda-layer.zip Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 90Deploy the ASA Virtual On the AWS Cloud Collect Input Parameters for CloudFormation Template • Lambda function zip file: asav-gd-lambda.zip What to do next Prepare the CloudFormation template that is used for deploying Amazon GuardDuty resources. See Collect Input Parameters for CloudFormation Template, on page 91. Collect Input Parameters for CloudFormation Template Cisco provides the CloudFormation template that is used to deploy resources required by Amazon GuardDuty solution in AWS. Collect values for the following template parameters before deployment. Template Parameters Parameter Description Example Deployment name* The name you enter in this parameter cisco-asav-gd is used as prefix for all the resources created by the Cloud Formation template. Minimum severity level of GD finding* Minimum severity level Amazon 4.0 GuardDuty findings to be considered for processing must be in the range between 1.0 to 8.9. Any finding reported with a lesser severity than the minimum range is ignored. Severity classification is as follows: • Low: 1.0 to 3.9 Medium: 4.0 to 6.9 High: 7.0 to 8.9. Administrator email ID* Administrator email address to receive abc@xyz.com notifications on Secure Firewall ASA virtual about the updates done by Lambda function in the Secure Firewall ASA virtual. S3 Bucket name* Name of the Amazon S3 bucket For example: asav-gd-bucket containing Amazon GuardDuty artifacts files (Lambda function zip, Lambda layer zip, and Secure Firewall ASA virtual configuration manager files). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 91Deploy the ASA Virtual On the AWS Cloud Deploy the Stack Parameter Description Example S3 Bucket folder/path prefix Amazon S3 bucket path or folder name For example: "" or "cisco/asav-gd/" where the configuration files are stored. If there is no folder, leave this field empty. Lambda layer zip file name* Lambda layer zip file name. For example: asav-gd-lambda-layer.zip Lambda function zip file name* Lambda function zip file name. For example:asav-gd-lambda.zip Secure Firewall ASA virtual manager The *.ini file containing the manager For example: configuration file name configuration details of the Secure asav-config-input.ini Firewall ASA virtual. (Public IP, username, password, device-type, network object group names and so on.) ARN of KMS key used for password ARN of an existing KMS (AWS KMS For encryption key used for password encryption). You example:arn:aws:kms:::key/ can leave this parameter empty in case plain text passwords are provided in the Secure Firewall ASA virtual configuration input file. If you specify, all the passwords mentioned in the Secure Firewall ASA virtual configuration input file must be encrypted. The passwords must be encrypted using only the specified ARN.Generating encrypted passwords: aws kms encrypt --key-id --plaintext Enable/Disable debug logs* Enable or Disable the Lambda function For example: enable or disable debug logs in the CloudWatch. *: Mandatory field What to do next Deploy the stack using the CloudFormation template. See Deploy the Stack, on page 92 Deploy the Stack After all the pre-requisite processes for Amazon GuardDuty solution deployment are completed, create the AWS CloudFormation stack. Use the template file in the target directory: templates/cisco-asav-gd-integration.yaml, and provide the parameters collected in Collect Input Parameters for CloudFormation Template. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 92Deploy the ASA Virtual On the AWS Cloud Subscribe to the Email Notifications Step 1 Log in to AWS console. Step 2 Go to Services > CloudFormation > Stacks > Create stack (with new resources) > Prepare template (The template is provided in the folder) > Specify template > Template source (Upload the template file from the target directory: templates/cisco-asav-gd-integration.yaml) > Create Stack For more information on deploying a stack on AWS, see AWS Documentation. What to do next Validate your deployment. See Validate Your Deployment, on page 93. Also, subscribe to receive an email notifications on threat detection updates reported by Amazon GuardDuty. See Subscribe to the Email Notifications, on page 93. Subscribe to the Email Notifications In the CloudFormation template, an email ID is configured to receive notification about GuardDuty finding updates done by the Lambda function. After deploying the CloudFormation template on AWS, an email notification is sent to this email ID via Amazon Simple Notification Service (SNS) service requesting you to subcribe for notification updates. Step 1 Open the email notification. Step 2 Click the Subscription link available in the email notification. What to do next Validate your deployment. See Validate Your Deployment, on page 93. Validate Your Deployment In AWS, you have options to verify the Amazon GuardDuty solution as described in this section. You can follow these deployment validation instructions after the CloudFormation deployment is complete. Before you begin Ensure that you have installed and configured AWS Command Line Interface (CLI) to run commands for validating the deployment. For information on AWS CLI documentation, see AWS Command Line Interface. Step 1 Log in to AWS Management console. Step 2 Go to Services > GuardDuty > Settings > About GuardDuty > Detector ID to note the detector ID. This detector ID is required for generating sample Amazon GuardDuty findings. Step 3 Open the AWS CLI console to generate the sample Amazon GuardDuty finding by running the following commands: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 93Deploy the ASA Virtual On the AWS Cloud Update Existing Solution Deployment Configuration aws guardduty create-sample-findings --detector-id --finding-types UnauthorizedAccess:EC2/MaliciousIPCaller.Custom aws guardduty create-sample-findings --detector-id --finding-types UnauthorizedAccess:EC2/MaliciousIPCaller.Custom Step 4 Check for the sample finding in the findings list on Amazon GuardDuty console. The sample findings contains the prefix [sample]. You can check the sample finding details viewing the attributes such as connection direction, remote IP address and so on. Step 5 Wait for the Lambda function to run. After the Lambda function is triggered, verify the following: • An email notification with the details regarding Amazon GuardDuty finding received and Secure Firewall ASA virtual updates done by the Lambda function. • Verify whether the report file is generated in the Amazon S3 bucket. It contains the malicious IP address reported by the sample Amazon GuardDuty finding. You can identify the report file name in the format: -report.txt. • Verify that the network object groups are updated on the configured managers (Secure Firewall ASA virtual) with the malicious IP address updated from the sample finding. Step 6 Go to AWS Console > Services > CloudWatch > Logs > Log groups > select the log group to verify the Lambda logs in the CloudWatch console. You can identify the CloudWatch log group name in the format: -lambda. Step 7 After validating the deployment, we recommend that you can clean the data generated by the sample finding as follows: a) Go to AWS Console > Services > GuardDuty > Findings > Select the finding > Actions > Archive to view the sample finding data. b) Delete the malicious IP addresses added in the network object group to clear cached data from the Secure Firewall ASA virtual. c) Clean up the report file in Amazon S3 bucket. You may update the file by removing the malicious IP addresses reported by the sample finding. Update Existing Solution Deployment Configuration We recommend that you do not update the S3 bucket or the S3 bucket folder and path prefix values after deployment. However, if there is a requirement to update the configuration for a solution that has been deployed, use the Update Stack option on the CloudFormation page in the AWS console. You can update any of the parameters given below. Parameter Description Secure Firewall ASA virtual manager configuration Add or update the configuration file in Amazon S3 file name bucket. You are allowed to update the file with same name as previous one. If the configuration file name is modified, then you can update this parameter by using Update stack option in the AWS console. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 94Deploy the ASA Virtual On the AWS Cloud Update Existing Solution Deployment Configuration Parameter Description Minimum severity level of GD finding* Use the Update stack option in AWS console to update the parameter value. Administrator email ID* Update the email ID parameter value using theUpdate Stack option in AWS console. You can also add or update email subscriptions via SNS service console. S3 Bucket name* Update the zip file in the Amazon S3 bucket with a new name and then update the parameter by using the Update Stack option in AWS console. Lambda layer zip file name* Update the Lambda layer zip file name in the Amazon S3 bucket with a new name and then update this parameter value by using the Update stack option in AWS console. Lambda function zip file name* Update the Lambda function zip file in the Amazon S3 bucket with a new name and then update this parameter value by using the Update stack option in AWS console. ARN of KMS key used for password encryption Use the Update stack option in AWS console to update the parameter value. Enable/Disable debug logs* Use the Update stack option in AWS console to update the parameter value. Step 1 Go to the AWS management console. Step 2 If required, create the new bucket and folder. Step 3 Ensure that the artifacts given below are copied from the old bucket to the new bucket. • Secure Firewall ASA virtual configuration file: asav-config-input.ini • Lambda layer zip file: asav-gd-lambda-layer.zip • Lambda function zip file: asav-gd-lambda.zip • Output report file: -report.txt Step 4 To update the parameter values, go to Services > CloudFormation > Stacks > > Update (Update Stack) > Prepare template > Use current template > Next > > Update Stack. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 95Deploy the ASA Virtual On the AWS Cloud Performance Tuning Performance Tuning VPN Optimization TheAWS c5 instances offer much higher performance than the older c3, c4, andm4 instances. The approximate RA VPN throughput (DTLS using 450B TCP traffic with AES-CBC encryption) on the c5 instance family should be: • 0.5Gbps on c5.large • 1Gbps on c5.xlarge • 2Gbps on c5.2xlarge Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 96C H A P T E R 5 Deploy the ASA Virtual Auto Scale Solution on AWS • Auto Scale Solution for the Threat Defense Virtual ASA Virtual on AWS , on page 97 • Prerequisites, on page 100 • Deploy the Auto Scale Solution, on page 104 • Maintenance Tasks, on page 111 • Troubleshooting and Debugging , on page 114 Auto Scale Solution for the Threat Defense Virtual ASA Virtual on AWS The following sections describe how the components of the auto scale solution work for the ASA virtual on AWS. Overview Cisco provides CloudFormation Templates and scripts for deploying an auto-scaling group of ASA virtual firewalls using several AWS services, including Lambda, auto scaling groups, Elastic Load Balancing (ELB), Amazon S3 Buckets, SNS, and CloudWatch. The ASA virtual auto scale in AWS is a complete serverless implementation (i.e. no helper VMs involved in the automation of this feature) that adds horizontal auto scaling capability to ASA virtual instances in the AWS environment. Starting from version 6.4, the auto scale solution is supported onmanaged bymanagement center. The ASA virtual auto scale solution is a CloudFormation template-based deployment that provides: • Completely automated configuration automatically applied to scaled-out ASA virtual instances. • Support for Load Balancers and multi-availability zones. • Support for enabling and disabling the auto scale feature. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 97Deploy the ASA Virtual Auto Scale Solution on AWS Auto Scale using Sandwich Topology Use Case Auto Scale using Sandwich Topology Use Case The Use Case for this ASA virtual AWS auto scale Solution is shown in the use case diagram. Because the AWS Load Balancer allows only Inbound-initiated connections, only externally generated traffic is allowed to pass inside via the ASA virtual firewall. Note Secured ports need an SSL/TLS certificate, as described SSL Server Certificate, on page 103 in the Prerequisites. The Internet-facing load balancer can be a Network Load Balancer or an Application Load Balancer. All of the AWS requirements and conditions hold true for either case. As indicated in the Use Case diagram, the right side of the dotted line is deployed via the ASA virtual templates. The left side is completely user-defined. Note Application-initiated outbound traffic will not go through the ASA virtual. Figure 15: ASA Virtual Auto Scale using Sandwich Topology Use Case Diagram Port-based bifurcation for traffic is possible. This can be achieved via NAT rules. For example, traffic on Internet-facing LBDNS, Port: 80 can be routed to Application-1; Port: 88 traffic can be routed to Application-2. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 98Deploy the ASA Virtual Auto Scale Solution on AWS Auto Scale Using AWS Gateway Load Balancer Use Case Auto Scale Using AWS Gateway Load Balancer Use Case The use case for the ASA virtual AWS Gateway Load Balancer (GWLB) Auto Scale Solution is shown in the use case diagram. The AWSGWLB allows both Inbound and Outbound connections, hence both internally and externally generated traffic is allowed to pass inside via the Cisco ASA virtual firewall. The Internet-facing load balancer can be a AWS Gateway Load Balancer Endpoint (GWLBe). The GWLBe sends traffic to the GWLB and then to ASA virtual for inspection. All the AWS requirements and conditions hold true for either case. As indicated in the Use Case diagram, the right side of the dotted line is ASA virtual GWLB Autoscale solution deployed via the ASA virtual templates. The left side is completely user-defined. Note Application-initiated outbound traffic will not go through the ASA virtual. Figure 16: ASA Virtual AWS GWLB Auto Scale Use Case Diagram How the Auto Scale Solution Works To scale the ASA virtual instances in and out, an external entity called the Auto Scale Manager monitors metrics, commands an auto scale group to add or delete the ASA virtual instances, and configures the ASA virtual instances. The Auto Scale Manager is implemented using AWS Serverless architecture and communicates with AWS resources and the ASA virtual. We provide CloudFormation templates to automate the deployment of Auto ScaleManager components. The template also deploys other resources required for complete solution to work. Note Serverless auto scale scripts are only invoked by CloudWatch events, hence they only run when an instance is launched. Auto Scale Solution Components The following components make up the auto scale solution. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 99Deploy the ASA Virtual Auto Scale Solution on AWS Prerequisites CloudFormation Template The CloudFormation template is used to deploy resources required by auto scale solution in AWS. The template consists of: • Auto Scale Group, Load Balancer, Security Groups, and other miscellaneous components. • The template takes user input to customize the deployment. Note The template has limitations in validating user input, hence it is the user’s responsibility to validate input during deployment. Lambda Functions The auto scale solution is a set of Lambda functions developed in Python, which gets triggered from Lifecycle hooks, SNS, CloudWatch event/alarm events. The basic functionality includes: • Add/Remove Gig0/0, and Gig 0/1 interfaces to instance. • Register Gig0/1 interface to Load Balancer’s Target Groups. • Configure and deploy a new ASA virtual with the ASA configuration file. Lambda Functions are delivered to customer in the form of a Python package. Lifecycle Hooks • Lifecycle hooks are used to get lifecycle change notification about an instance. • In the case of instance launch, a Lifecycle hook is used to trigger a Lambda function which can add interfaces to an ASA virtual instance, and register outside interface IPs to target groups. • In the case of instance termination, a Lifecycle hook is used to trigger a Lambda function to deregister an ASA virtual instance from the target group. Simple Notification Service (SNS) • Simple Notification Service (SNS) from AWS is used to generate events. • Due to the limitation that there is no suitable orchestrator for Serverless Lambda functions in AWS, the solution uses SNS as a kind of function chaining to orchestrate Lambda functions based on events. Prerequisites Download Deployment Files Download the files required to launch the ASA virtual auto scale for AWS solution. Deployment scripts and templates for your ASA version are available in the GitHub repository. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 100Deploy the ASA Virtual Auto Scale Solution on AWS Infrastructure Configuration Attention Note that Cisco-provided deployment scripts and templates for auto scale are provided as open source examples, and are not covered within the regular Cisco TAC support scope. Check GitHub regularly for updates and ReadMe instructions. Infrastructure Configuration In a cloned/downloaded GitHub repository, the infrastructure.yaml file can be found in the template folder. This CFT can be used to deploy VPCs, subnets, routes, ACLs, security groups, VPC end-points, and S3 buckets with bucket policies. This CFT can be modified to fit your requirements. The following sections provide more information about these resources and their use in auto scale. You can manually deploy these resources and also use them in auto scale. Note The infrastructure.yaml template deploys VPCs, subnets, ACLs, security groups, S3 buckets, and VPC end-points only. It does not create the SSL certificate, Lambda layer, or KMS key resources. VPC You should create the VPC as required for your application requirements. It is expected that the VPC have an Internet gateway with at least one subnet attached with a route to the Internet. Refer to the appropriate sections for the requirements for Security Groups, Subnets, etc. Subnets Subnets can be created as needed for the requirements of the application. The ASA virtual machine requires 3 subnets for operation as shown in the Use Case. Note If multiple availability zone support is needed, then subnets are needed for each zone as subnets are zonal properties within the AWS Cloud Outside Subnet The Outside subnet should have a default route with ''0.0.0.0/0'' to the Internet gateway. This will contain the Outside interface of the ASA virtual, and also the Internet-facing NLB will be in this subnet. Inside Subnet This can be similar to the Application subnets, with or without NAT/Internet gateway. Please note that for the ASA virtual health probes, it should be possible to reach the AWS Metadata Server (169.254.169.254) via port 80. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 101Deploy the ASA Virtual Auto Scale Solution on AWS Security Groups Note In this AutoScale solution, Load Balancer health probes are redirected to the AWS Metadata Server via inside/Gig0/0 interface. However, you can change this with your own application serving the health probe connections sent to the ASA virtual from the Load Balancer. In that case, you need to replace the AWS Metadata Server object to the respective application IP address to provide the health probes response. Management Subnet This subnet includes the ASA virtual Management interface. It’s optional for you to have a default route. Lambda Subnets The AWS Lambda function requires two subnets having the NAT gateway as the default gateway. This makes the Lambda function private to the VPC. Lambda subnets do not need to be as wide as other subnets. Please refer to AWS documentation for best practices on Lambda subnets. Application Subnets There is no restriction imposed on this subnet from the auto scale solution, but in case the application needs Outbound connections outside the VPC, there should be respective routes configured on the subnet. This is because outbound-initiated traffic does not pass through Load Balancers. See the AWS Elastic Load Balancing User Guide. Security Groups All connections are allowed in the provided Auto Scale Group template. You need only the following connections for the auto scale Solution to work. Table 15: Required Ports Port Usage Subnet Health Probe port Internet-facing Load Balancer health Outside, Inside Subnets (default: 8080) probes Application ports Application data traffic Outside, Inside Subnets Amazon S3 Bucket Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. You can place all the required files for both the firewall template and the application template in the S3 bucket. When templates are deployed, Lambda functions get created referencing Zip files in the S3 bucket. Hence the S3 bucket should be accessible to the user account. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 102Deploy the ASA Virtual Auto Scale Solution on AWS SSL Server Certificate SSL Server Certificate If the Internet-facing Load Balancer has to support TLS/SSL, a Certificate ARN is required. Refer to the following links for more information: • Working with Server Certificates • Create a Private Key and Self-Signed Certificate for Testing • Create AWS ELB with Self-Signed SSL Cert (Third-party link) Example of ARN: arn:aws:iam::[AWS Account]:server-certificate/[Certificate Name] Lambda Layer The autoscale_layer.zip can be created in a Linux environment, such as Ubuntu 18.04 with Python 3.9 installed. #!/bin/bash mkdir -p layer virtualenv -p /usr/bin/python3.9 ./layer/ source ./layer/bin/activate pip3 install cffi==1.15.1 pip3 install cryptography==2.9.1 pip3 install paramiko==2.7.1 pip3 install requests==2.23.0 pip3 install scp==0.13.2 pip3 install jsonschema==3.2.0 pip3 install pycryptodome==3.15.0 echo "Copy from ./layer directory to ./python\n" cp -r ./layer/lib/python3.9/site-packages/* ./python/ zip -r autoscale_layer.zip ./python The resultant autoscale_layer.zip file should be copied to the lambda-python-files folder. KMS Master Key This is required if the ASA virtual passwords are in encrypted format. Otherwise this component is not required. Passwords should be encrypted using only the KMS provided here. If KMS ARN is entered on CFT, then passwords have to be encrypted. Otherwise passwords should be plain text. For more information about master keys and encryption, see the AWS document Creating keys and the AWS CLI Command Reference about password encryption and KMS. Example: $ aws kms encrypt --key-id --plaintext ''MyC0mplIc@tedProtect1oN'' { "KeyId": "KMS-ARN", "CiphertextBlob": "AQICAHgcQFAGtz/hvaxMtJvY/x/rfHnKI3clFPpSXUU7HQRnCAFwfXhXHJAHL8tcVmDqurALAAAAajBoBgkqhki G9w0BBwagWzBZAgEAMFQGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM45AIkTqjSekX2mniAgEQgCcOav6Hhol +wxpWKtXY4y1Z1d0z1P4fx0jTdosfCbPnUExmNJ4zdx8=" } $ Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 103Deploy the ASA Virtual Auto Scale Solution on AWS Python 3 Environment The value of CiphertextBlob key should be used as a password. Python 3 Environment A make.py file can be found in the cloned repository top directory. This will Zip the python files into a Zip file and copy to a target folder. In order to do these tasks, the Python 3 environment should be available. Deploy the Auto Scale Solution Preparation It is expected that the Application is either deployed or its deployment plan is available. Input Parameters The following input parameters should be collected prior to deployment. Note For AWSGateway Load Balancer (GWLB), theLoadBalancerType,LoadBalancerSG,LoadBalancerPort, and SSLcertificate parameters are not applicable. Table 16: Auto Scale Input Parameters Parameter Allowed Description Values/Type PodNumber String This is the pod number. This will be suffixed to the Auto Allowed Pattern: Scale Group name (ASA virtual-Group-Name). For ''^\d{1,3}$'' example, if this value is ''1'', then the group name will be ASA virtual-Group-Name-1. It should be at least 1 numerical digit but not more than 3 digits. Default: 1 AutoscaleGrpNamePrefix String This is the Auto Scale GroupName Prefix. The pod number will be added as a suffix. Maximum: 18 characters Example: Cisco-ASA virtual-1 NotifyEmailID String Auto Scale events will be sent to this email address. You need to accept a subscription email request. Example: admin@company.com Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 104Deploy the ASA Virtual Auto Scale Solution on AWS Input Parameters Parameter Allowed Description Values/Type VpcId String The VPC ID in which the device needs to be deployed. This should be configured as per AWS requirements. Type: AWS::EC2::VPC::Id If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. LambdaSubnets List The subnets where Lambda functions will be deployed. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. LambdaSG List The Security Groups for Lambda functions. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. S3BktName String The S3 bucket name for files. This should be configured in your account as per AWS requirements. If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. LoadBalancerType String The type of Internet-facing Load Balancer, either “application” or “network”. Example: application LoadBalancerSG String The Security Groups for the Load Balancer. In the case of a network load balancer, it won''t be used. But you should provide a Security Group ID. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. LoadBalancerPort Integer The Load Balancer port. This port will be opened on LB with either HTTP/HTTPS or TCP/TLS as the protocol, based on the chosen Load Balancer type. Make sure the port is a valid TCP port, it will be used to create the Load Balancer listener. Default: 80 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 105Deploy the ASA Virtual Auto Scale Solution on AWS Input Parameters Parameter Allowed Description Values/Type SSLcertificate String The ARN for the SSL certificate for secured port connections. If not specified, a port opened on the Load Balancer will be TCP/HTTP. If specified, a port opened on the Load Balancer will be TLS/HTTPS. TgHealthPort Integer This port is used by the Target group for health probes. Health probes arriving at this port on the ASA virtual will be routed to the AWS Metadata server and should not be used for traffic. It should be a valid TCP port. If you want your application itself to reply to health probes, then accordingly NAT rules can be changed for the ASA virtual. In such a case, if the application does not respond, the ASA virtual will be marked as unhealthy and deleted due to the Unhealthy instance threshold alarm. Example: 8080 AssignPublicIP Boolean If selected as "true" then a public IP will be assigned. In case of a BYOL-type ASA virtual, this is required to connect to https://tools.cisco.com. Example: TRUE ASAvInstanceType String The Amazon Machine Image (AMI) supports different instance types, which determine the size of the instance and the required amount of memory. Only AMI instance types that support the ASA virtual should be used. Example: c4.2xlarge ASAvLicenseType String The ASA virtual license type, either BYOL or PAYG. Make sure the related AMI ID is of the same licensing type. Example: BYOL ASAvAmiId String The ASA virtual AMI ID (a valid Cisco ASA virtual AMI ID). Type: AWS::EC2::Image::Id Please choose the correct AMI ID as per the region and desired version of the image. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 106Deploy the ASA Virtual Auto Scale Solution on AWS Input Parameters Parameter Allowed Description Values/Type ConfigFileURL String The HTTP URL for the ASA virtual configuration files. Configuration files for each AZs should be available in the URL. The Lambda function will take care of choosing the correct file. You can deploy an HTTP server to host configuration files, or you can use the AWS S3 static web-hosting facility. Note The last "/" is also needed as configuration file names will be appeneded to the URL at the time of import. If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. Example: https://myserver/asavconfig/asaconfig .txt/ NoOfAZs Integer The number of availability zones that the ASA virtual should span across, between 1 and 3. In the case of an ALB deployment, the minimum value is 2, as required by AWS. Example: 2 ListOfAzs Comma separated A comma-separated list of zones in order. string Note The order in which these are listed matters. Subnet lists should be given in the same order. If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. Example: us-east-1a, us-east-1b, us-east-1c ASAvMgmtSubnetId Comma separated A comma-separated list of management subnet-ids. The list list should be in the same order as the corresponding availability zones. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. ASAvInsideSubnetId Comma separated A comma-separated list of inside/Gig0/0 subnet-ids. The list list should be in the same order as the corresponding availability zones. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 107Deploy the ASA Virtual Auto Scale Solution on AWS Input Parameters Parameter Allowed Description Values/Type ASAvOutsideSubnetId Comma separated A comma-separated list of outside/Gig0/1 subnet-ids. The list list should be in the same order as the corresponding availability zones. Type: List If the "infrastructure.yaml" file is used to deploy the infrastructure, the output section of the stack will have this value. Please use that value. KmsArn String The ARN of an existing KMS (AWS KMS key to encrypt at rest). If specified, the ASA virtual passwords should be encrypted. The password encryption should be done using only the specified ARN. Generating Encrypted Password Example: " aws kms encrypt --key-id --plaintext ". Please used such generated passwords as shown. Example: arn:aws:kms:us-east-1:[AWS Account]:key/7d586a25-5875-43b1-bb68-a452e2f6468e CpuThresholds Comma separated The lower CPU threshold and the upper CPU threshold. integers The minimum value is 0 and maximum value is 99. Defaults: 10, 70 Please note that the lower threshold should be less than the upper threshold. Example: 30,70 Instance Metadata Service Boolean The Instance Metadata Data Service (IMDS) version you Version want enable for ASA Virtual instances. • V1 andV2 (token optional): To enable either IMDSv1 or IMDSv2 or a combination of both IMDSv1 and IMDSv2 API calls. • V2 only (token required): To enable only IMDSv2 mode. Note ASAVirtual version 9.20.3 and later supports only IMDSv2 APIs. If you are using ASA Virtual version earlier than version 9.20.3, then you must select the combination of both IMDSv1 and IMDSv2 V1 and V2 (token optional) parameter. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 108Deploy the ASA Virtual Auto Scale Solution on AWS Update the ASA Configuration Files Update the ASA Configuration Files You prepare ASA configuration files and store them in a http/https server accessible by an ASA virtual instance. This is a standard ASA configuration file format. A scaled-out ASA virtual will download a configuration file and update its configuration. The following sections provide examples on how the ASA configuration file could be modified for the Auto Scale solution. Objects, Device Groups, NAT Rules, and Access Policies See the following for an example of objects, route, and NAT rules for the Load Balancer health probes for the ASA virtual configuration. ! Load Balancer Health probe Configuration object network aws-metadata-server host 169.254.169.254 object service aws-health-port service tcp destination eq 7777 object service aws-metadata-http-port service tcp destination eq 80 route inside 169.254.169.254 255.255.255.255 10.0.100.1 1 nat (outside,inside) source static any interface destination static interface aws-metadata-server service aws-health-port aws-metadata-http-port ! Note The health probe connections above should be allowed on your access policy. See the following for an example of the data-plane configuration for an ASA virtual configuration. ! Data Plane Configuration route inside 10.0.0.0 255.255.0.0 10.0.100.1 1 object network http-server-80 host 10.0.50.40 object network file-server-8000 host 10.0.51.27 object service http-server-80-port service tcp destination eq 80 nat (outside,inside) source static any interface destination static interface http-server-80 service http-server-80-port http-server-80-port object service file-server-8000-port service tcp destination eq 8000 nat (outside,inside) source static any interface destination static interface file-server-8000 service file-server-8000-port file-server-8000-port object service https-server-443-port service tcp destination eq 443 nat (outside,inside) source static any interface destination static interface http-server-80 service https-server-443-port http-server-80-port ! Configuration File Updates The ASA virtual configuration should be updated in the az1-connfiguration.txt, az2-configuration.txt, and az3-configuration.txt files. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 109Deploy the ASA Virtual Auto Scale Solution on AWS Upload Files to Amazon Simple Storage Service (S3) Note Having three configuration files allows you to modify the configuration based on the Availability Zone (AZ). For example, the static route to the aws-metadata-server will have a different gateway in each AZ. Template Updates The deploy_autoscale.yaml template should be modified carefully. You should modify the UserData field of theLaunchTemplate. TheUserData can be updated as needed. The name-server should be updated accordingly; for example, it can be the VPCDNS IP.Where your licensing is BYOL, the licensing idtoken should be shared here. ! dns domain-lookup management DNS server-group DefaultDNS name-server ! ! License configuration call-home profile License destination transport-method http destination address http license smart feature tier standard throughput level license smart register idtoken Upload Files to Amazon Simple Storage Service (S3) All the files in the target directory should be uploaded to the Amazon S3 bucket. Optionally, you can use the CLI to upload all of the files in the target directory to the Amazon S3 bucket. $ cd ./target $ aws s3 cp . s3:// --recursive Deploy Stack After all of the prerequisites are completed for deployment, you can create the AWS CloudFormation stack. Use the deploy_autoscale.yaml file in the target directory. Use the deploy_ngfw_autoscale_with_gwlb.yaml file in the target directory for Geneve Autoscale. Note Before you deploy deploy_ngfw_autoscale_with_gwlb.yaml file, you must deploy infrastructure_gwlb.yaml file for AWS GWLB auto scale solution. You must create the Gateway Loadbalancer Endpoint (GWLB-E) by choosing the GWLB that is created during deploy_autoscale_with_gwlb.yaml template deployment. After creating the GWLBe, you must update the default route to use GWLBe for Application Subnet and default Route table. For more information, see https://docs.amazonaws.cn/en_us/vpc/latest/privatelink/ create-endpoint-service-gwlbe.html. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 110Deploy the ASA Virtual Auto Scale Solution on AWS Validate Deployments Provide the parameters as collected in Input Parameters, on page 104. Validate Deployments Once the template deployment is successful, you should validate that the Lambda functions and the CloudWatch events are created. By default, the Auto Scale Group has the minimum and maximum number of instances as zero. You should edit the Auto Scale group in the AWS EC2 console with how many instances you want. This will trigger the new ASA virtual instances. We recommend that you launch only one instance and check its workflow and validate its behavior as to whether it is working as expected. Post that actual requirements of the ASA virtual can be deployed, they can also be verified for the behavior. The minimum number of ASA virtual instances can be marked as Scale-In protected to avoid their removal by AWS Scaling policies. Maintenance Tasks Scaling Processes This topic explains how to suspend and then resume one or more of the scaling processes for your Auto Scale group. Start and Stop Scale Actions To start and stop scale out/in actions, follow these steps. • For AWS Dynamic Scaling—Refer to the following link for information to enable or disable scale out actions: Suspending and Resuming Scaling Processes Health Monitor Every 60 minutes, a CloudWatch Cron job triggers the Auto Scale Manager Lambda for the Health Doctor module: • If there are unhealthy IPs which belong to a valid ASA virtual VM, that instance gets deleted if the ASA virtual is more than an hour old. • If those IPs are not from a valid ASA virtual machine, then only IPs are removed from the Target Group. Disable Health Monitor To disable a health monitor, in constant.py make the constant as “True”. Enable Health Monitor To enable a health monitor, in constant.py make the constant as “False”. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 111Deploy the ASA Virtual Auto Scale Solution on AWS Disable Lifecycle Hooks Disable Lifecycle Hooks In the unlikely event that Lifecycle hook needs to be disabled, if disabled it won’t add additional interfaces to Instances. It can also cause a series of failed deployment of the ASA virtual instances. Disable Auto Scale Manager To disable Auto Scale Manager, respective CloudWatch Events “notify-instance-launch” and “notify-instance-terminate” should be disabled. Disabling this won’t trigger Lambda for any new events. But already executing Lambda actions will continue. There is no abrupt stop of Auto ScaleManager. Trying abrupt stopping by stack deletion or deleting resources can cause an indefinite state. Load Balancer Targets Because the AWS Load Balancer does not allow instance-type targets for instances having more than one network interface, the Gigabit0/1 interface IP is configured as a target on Target Groups. As of now however, the AWS Auto Scale health checks work only for instance-type targets, not IPs. Also, these IPs are not automatically added or removed from target groups. Hence our Auto Scale solution programmatically handles both of these tasks. But in the case of maintenance or troubleshooting, there could be a situation demanding manual effort to do so. Register a Target to a Target Group To register the ASA virtual instance to the Load Balancer, its Gigabit0/1 instance IP (outside subnet) should be added as a target in Target Group(s). See Register or Deregister Targets by IP Address. Deregister a Target from a Target Group To deregister the ASA virtual instance to the Load Balancer, its Gigabit0/1 instance IP (outside subnet) should be deleted as a target in Target Group(s). See Register or Deregister Targets by IP Address. Instance Stand-by AWS does not allow instance reboot in the Auto Scale group, but it does allow a user to put an instance in Stand-by and perform such actions. However, this works best when the Load Balancer targets are instance-type. However, the ASA virtual machines cannot be configured as instance-type targets, because of multiple network interfaces. Put an Instance in Stand-by If an instance is put into stand-by, its IP in Target Groups will still continue to be in the same state until the health probes fail. Because of this, it is recommended to deregister respective IPs from the Target Group before putting the instance into stand-by state; see Deregister a Target from a Target Group, on page 112 for more information. Once the IPs are removed, see Temporarily Removing Instances from Your Auto Scaling Group. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 112Deploy the ASA Virtual Auto Scale Solution on AWS Terminate an Instance Remove an Instance from Stand-by Similarly you can move an instance from stand-by to running state. After removal from stand-by state, the instance''s IP should be registered to Target Group targets. See Register a Target to a Target Group, on page 112. For more information about how to put instances into stand-by state for troubleshooting or maintenance, see the AWS News Blog. Remove/Detach Instance from Auto Scale Group To remove an instance from the Auto Scale group, first it should be moved to stand-by state. See "Put Instances on Stand-by". Once the instance is in the stand-by state it can be removed or detached. See Detach EC2 Instances from Your Auto Scaling Group. Terminate an Instance To terminate an instance it should be put into stand-by state; see Instance Stand-by, on page 112. Once the instance is in stand-by, you can proceed to terminate. Instance Scale-In Protection To avoid an accidental removal of any particular instance from the Auto Scale group, it can be made as Scale-In protected. If an instance is Scale-In protected, it won’t be terminated due to a Scale-In event. Please refer to the following link to put an instance into Scale-In protected state. https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html Important It is recommended to make the minimum number of instances which are healthy (the target IP should be healthy, not just the EC2 instance) as Scale-In protected. Changes to Configuration Any changes in configuration won’t be automatically reflected on already running instances. Changes will be reflected on upcoming devices only. Any such changes should be manually pushed to already existing devices. If you are facing issues while manually updating the configuration on existing instances, we recommend removing these instances from the Scaling Group and replacing them with new instances. Change the ASA Virtual Admin Password A change to the ASA virtual password requires the user to change it on each device manually for running instances. For new ASA virtual devices to be onboarded, the ASA virtual password will be taken from the Lambda environment variables. See Using AWS Lambda Environment Variables. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 113Deploy the ASA Virtual Auto Scale Solution on AWS Changes to AWS Resources Changes to AWS Resources You can change many things in AWS post deployment, such as the Auto Scale Group, Launch Configuration, CloudWatch events, Scaling Policies etc. You can import your resources into a CloudFormation stack or create a new stack from your existing resources. See Bringing Existing Resources Into CloudFormation Management for more information about how to manage changes performed on AWS resources. Collect and Analyze CloudWatch Logs In order to export CloudWatch logs please refer to Export Log Data to Amazon S3 Using the AWS CLI. Configure IMDSv2 Required Mode for Existing Autoscale Group Instances You can configure the IMDSv2 Required mode for the ASAVirtual autoscale group instances that are already deployed on the AWS. Before you begin IMDSv2 Required mode is only supported by ASA Virtual version 9.20.3 and later. You must ensure that your existing instance ASA Virtual version supports (9.20.3 and later) IMDSv2 APIs before configuring the IMDSv2 Required mode for your deployments or instances. Step 1 Log into http://aws.amazon.com/. Step 2 Click EC2 > Auto Scaling > Auto Scaling Groups. Step 3 Select the auto scaling group from the list to configure IMDSv2 Required mode for its associated instances. Step 4 Click Launch Template. Step 5 On the Launch templates page, click Modify template (Create new version) from the Actions drop-down list. Step 6 Update the AMI ID with IMDSv2 supported image. Step 7 Under Advanced Details, enable the IMDSv2 metadata: a) Choose Enabled from the Metadata accessible drop-down list. b) Choose V2 only (token required) from the Metadata version drop-down list. Step 8 Use this version of Launch template in the Auto scaling group to deploy with IMDSv2 Required mode on your auto scaling group instances. Troubleshooting and Debugging AWS CloudFormation Console You can verify the input parameters to your CloudFormation stack in the AWS CloudFormation Console, which allows you to create, monitor, update and delete stacks directly from your web browser. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 114Deploy the ASA Virtual Auto Scale Solution on AWS Troubleshooting and Debugging Navigate to the required stack and check the parameter tab. You can also check inputs to Lambda Functions on the Lambda Functions environment variables tab. To learn more about the AWS CloudFormation console, see the AWS CloudFormation User Guide. Amazon CloudWatch Logs You can view logs of individual Lambda functions. AWS Lambda automatically monitors Lambda functions on your behalf, reportingmetrics through Amazon CloudWatch. To help you troubleshoot failures in a function, Lambda logs all requests handled by your function and also automatically stores logs generated by your code through Amazon CloudWatch Logs. You can view logs for Lambda by using the Lambda console, the CloudWatch console, the AWS CLI, or the CloudWatch API. To learn more about log groups and accessing them through the CloudWatch console, see the Monitoring system, application, and custom log files in the Amazon CloudWatch User Guide. Load Balancer Health Check Failure The load balancer health check contains information such as the protocol, ping port, ping path, response timeout, and health check interval. An instance is considered healthy if it returns a 200 response code within the health check interval. If the current state of some or all your instances is OutOfService and the description field displays the message that the Instance has failed at least the Unhealthy Threshold number of health checks consecutively, the instances have failed the load balancer health check. You should check the health probe NAT rule in the ASA configuration. For more information, see Troubleshoot a Classic Load Balancer: Health checks. Traffic Issues To troubleshoot traffic issues with your ASA virtual instances, you should check the Load Balancer rules, the NAT rules, and the static routes configured in the ASA virtual instances. You should also check the AWS virtual network/subnets/gateway details provided in the deployment template, including security group rules, etc. You can also refer to AWS documentation, for example, Troubleshooting EC2 instances. ASA Virtual Failed to Configure If the ASA virtual fails to configure, you should check the connectivity to the Amazon S3 static HTTP webserver hosting configuration. See Hosting a static website on Amazon S3 for more information. ASA Virtual Failed to License If the ASA virtual fails to license, you should check the connectivity to the CSSM server, check the ASA virtual Security Group configuration, and check the Access Control Lists. Unable to SSH into the ASA Virtual If you are unable to SSH into the ASA virtual, check to see if the complex password was passed to the ASA virtual via the template. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 115Deploy the ASA Virtual Auto Scale Solution on AWS Troubleshooting and Debugging Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 116C H A P T E R 6 Deploy the ASA Virtual On the Microsoft Azure Cloud You can deploy the ASA virtual on the Microsoft Azure cloud. Important Beginningwith 9.13(1), any ASA virtual license now can be used on any supported ASA virtual vCPU/memory configuration. This allows the ASA virtual customers to run on a wide variety of VM resource footprints. This also increases the number of supported Azure instances types. • Overview, on page 117 • Prerequisites, on page 119 • Guidelines and Limitations, on page 120 • Resources Created During Deployment, on page 122 • Azure Routing, on page 123 • Routing Configuration for VMs in the Virtual Network, on page 124 • IP Addresses, on page 124 • DNS, on page 125 • Accelerated Networking (AN), on page 125 • Deploy the ASA Virtual, on page 126 • Appendix — Azure Resource Template Example, on page 144 Overview Select the Azure virtual machine tier and size to meet your ASA virtual needs. Any ASA virtual license can be used on any supported ASA virtual vCPU/memory configuration. This allows you to run the ASA virtual on a wide variety Azure instances types. Table 17: Azure Supported Instance Types Instance Attributes Interfaces vCPUs Memory (GB) D3, D3_v2, DS3, DS3_v2 4 14 4 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 117Deploy the ASA Virtual On the Microsoft Azure Cloud Overview Instance Attributes Interfaces vCPUs Memory (GB) D4, D4_v2, DS4, DS4_v2 8 28 8 D5, D5_v2, DS5, DS5_v2 16 56 8 D8_v3 8 32 4 D16_v3 16 64 4 D8s_v3 8 32 4 D16s_v3 16 64 8 F4, F4s 4 8 4 F8, F8s 8 16 8 F16, F16s 16 32 8 F8s_v2 8 16 4 F16s_v2 16 32 8 Table 18: ASA virtual Licensed Feature Limits Based on Entitlement Performance Tier Instance Type (Core/RAM) Rate Limit RA VPN Session Limit ASAv5 D3_v2 100 Mbps 50 4 core/14 GB ASAv10 D3_v2 1 Gbps 250 4 core/14 GB ASAv30 D3_v2 2 Gbps 750 4 core/14 GB ASAv50 D4_v2 5.5 Gbps 10,000 8 core/28 GB ASAv100 D5_v2 11 Gbps 20,000 16 core/56 GB You can deploy the ASA virtual on Microsoft Azure: • As a stand-alone firewall using the Azure Resource Manager on the standard Azure public cloud and the Azure Government environments • As an integrated partner solution using the Azure Security Center Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 118Deploy the ASA Virtual On the Microsoft Azure Cloud Prerequisites • As a high availability (HA) pair using the Azure Resource Manager on the standard Azure public cloud and the Azure Government environments See Deploy the ASA Virtual from Azure Resource Manager, on page 126. Note that you can deploy the ASA virtual HA configuration on the standard Azure public cloud and the Azure Government environments. Prerequisites • Create an account on Azure.com. After you create an account on Microsoft Azure, you can log in, choose the ASA virtual in the Microsoft Azure Marketplace, and deploy the ASA virtual. • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Smart Software Licensing for the ASA virtual. Note The ASA virtual defaults to the 2Gbps entitlement when deployed on Azure. The use of the 100Mbps and 1Gbps entitlement is allowed. However, the throughput level must be explicitly configured to use the 100Mbps or 1Gbps entitlement. • Interface requirements: You must deploy the ASA virtual with four interfaces on four networks. You can assign a public IP address to any interface; see Public IP addresses for Azure''s guidelines regarding public IPs, including how to create, change, or delete a public IP address. • Management interface: In Azure, the first defined interface is always the Management interface. Note For IPv6 deployment, configure the IPv6 in the Vnet and subnet creation. • Communications paths: • Management interface—Used for SSH access and to connect the ASA virtual to the ASDM. Note Azure accelerated networking is not supported on the Management interface. • Inside interface (required)—Used to connect the ASA virtual to inside hosts. • Outside interface (required)—Used to connect the ASA virtual to the public network. • DMZ interface (optional)—Used to connect the ASA virtual to the DMZ network when using the Standard_D3 interface. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 119Deploy the ASA Virtual On the Microsoft Azure Cloud Guidelines and Limitations • For ASA virtual hypervisor and virtual platform support information, see Cisco Secure Firewall ASA Compatibility. Guidelines and Limitations Supported Features • Deployment from Microsoft Azure Cloud • Azure Accelerated Networking (AN) • Maximum of 16 vCPUs, based on the selected instance type Note Azure does not provide configurable L2 vSwitch capability. • Public IP address on any interface You can assign a public IP address to any interface; see Public IP addresses for Azure''s guidelines regarding public IPs, including how to create, change, or delete a public IP address. • Routed firewall mode (default) Note In routed firewall mode the ASA virtual is a traditional Layer 3 boundary in the network. This mode requires an IP address for each interface. Because Azure does not support VLAN tagged interfaces, the IP addresses must be configured on non-tagged, non-trunk interfaces. • IPv6 Azure DDoS Protection Feature Azure DDoS Protection in Microsoft Azure is an additional feature implemented at the forefront of ASA virtual. In a virtual network, when this feature is enabled it helps to defend applications against common network layer attacks depending on the packet per second of a network’s expected traffic. You can customize this feature based on the network traffic pattern. For more information about the Azure DDoS Protection feature, see Azure DDoS Protection Standard overview. Password Setup Ensure that the password you set complies with the guidelines given below. The password must: • Be an alphanumeric string with a minimum of 12 characters and a maximum of 72 characters • Comprise of lowercase and uppercase characters, numbers, and special characters that are not ''\'' or ''-'' • Have no more than 2 repeating or sequential ASCII characters • Not be a word that can be found in the dictionary Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 120Deploy the ASA Virtual On the Microsoft Azure Cloud Guidelines and Limitations If you see an error such as the one given below or any other password-related errors in the boot logs, check if the password that has been set up satisfies the password complexity guidelines. OS Provisioning failed for VM ''TEST-FW-NCSA-QC'' due to an internal error. (Code: OSProvisioningInternal Error) Known Issues Idle Timeout The ASA virtual on Azure has a configurable idle timeout on the VM. The minimum setting is 4 minutes and the maximum setting is 30 minutes. However, for SSH sessions the minimum setting is 5 minutes and the maximum setting is 60 minutes. Note Be aware that the ASA virtual''s idle timeout always overrides the SSH timeout and disconnects the session. You can choose to match the VM''s idle timeout to the SSH timeout so that the session does not timeout from either side. Failover from Primary ASA Virtual to Standby ASA Virtual When an Azure upgrade occurs on an ASA virtual HA in Azure deployment, a failover may occur from the primary ASA virtual to the standby ASA virtual. An Azure upgrade causes the primary ASA virtual to enter a pause state. The standby ASA virtual does not receive any hello packets when the primary ASA virtual is paused. If the standby ASA virtual does not receive any hello packets beyond the failover hold time, a failover to the standby ASA virtual occurs. There is also the possibility of a failover occurring even if the failover hold time has not been exceeded. Consider a scenario in which the primary ASA virtual resumes 19 seconds after entering the pause state. The failover hold time is 30 seconds. But, the standby ASA virtual does not receive hello packets with the right timestamp because the clock is synchronized every ~2 minutes. This causes a failover from the primary ASA virtual to the standby ASA virtual. Note This feature supports IPv4 only, ASA Virtual HA is not supported for IPv6 configuration. Unsupported Features • Console access (management is performed using SSH or ASDM over network interfaces) • VLAN tagging on user instance interfaces • Jumbo frames • Proxy ARP for an IP address that the device does not own from an Azure perspective • Promiscuous mode (no sniffing or transparent mode firewall support) Note Azure policy prevents the ASA virtual from operating in transparent firewall mode because it doesn''t allow interfaces to operate in promiscuous mode. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 121Deploy the ASA Virtual On the Microsoft Azure Cloud Resources Created During Deployment • Multi-context mode • Clustering • ASA virtual native HA. Note You can deploy ASA virtual on Azure in a stateless Active/Backup high availability (HA) configuration. • VM import/export • By default, FIPS mode is not enabled on the ASA virtual running in the Azure cloud. Note If you enable FIPS mode, you must change the Diffie-Helman key exchange group to a stronger key by using the ssh key-exchange group dh-group14-sha1 command. If you don’t change the Diffie-Helman group, you will no longer be able to SSH to the ASA virtual, and that is the only way to initially manage the ASA virtual. • Gen 2 VM generation on Azure • Re-sizing the VM after deployment • Migration or update of the Azure Storage SKU for the OS Disk of the VM from premium to standard SKU and vice versa Resources Created During Deployment When you deploy the ASA virtual in Azure the following resources are created: • The ASA virtual machine • A resource group (unless you chose an existing resource group) The ASA virtual resource group must be the same resource group used by the Virtual Network and the Storage Account. • Four NICS named vm name-Nic0, vm name-Nic1, vm name-Nic2, vm name-Nic3 These NICs map to the ASA virtual interfaces Management 0/0, GigabitEthernet 0/0, GigabitEthernet 0/1, and GigabitEthernet 0/2 respectively. Note Based on the requirement, you can create Vnet with IPv4 only or Dual Stack (IPv4 and IPv6 enabled). • A security group named vm name-SSH-SecurityGroup The security group will be attached to the VM’s Nic0, which maps to ASA virtual Management 0/0. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 122Deploy the ASA Virtual On the Microsoft Azure Cloud Azure Routing The security group includes rules to allow SSH and UDP ports 500 and UDP 4500 for VPN purposes. You can modify these values after deployment. • Public IP addresses (named according to the value you chose during deployment) You can assign a public IP address (IPv4 only or Dual Stack (Ipv4 and IPv6)). to any interface; see Public IP addresses for Azure''s guidelines regarding public IPs, including how to create, change, or delete a public IP address. • A Virtual Network with four subnets (unless you chose an existing network) • A Routing Table for each subnet (updated if it already exists) The tables are named subnet name-ASAv-RouteTable. Each routing table includes routes to the other three subnets with the ASA virtual IP address as the next hop. You may chose to add a default route if traffic needs to reach other subnets or the Internet. • A boot diagnostics file in the selected storage account The boot diagnostics file will be in Blobs (binary large objects). • Two files in the selected storage account under Blobs and container VHDs named vm name-disk.vhd and vm name-.status • A Storage account (unless you chose an existing storage account) Note When you delete a VM, you must delete each of these resources individually, except for any resources you want to keep. Azure Routing Routing in an Azure Virtual Network is determined by the Virtual Network’s Effective Routing Table. The Effective Routing Table is a combination of an existing System Routing Table and the User Defined Routing Table. Note The ASA virtual cannot use dynamic interior routing protocols like EIGRP and OSPF due to the nature of Azure cloud routing. The Effective Routing Table determines the next hop, regardless of whether a virtual client has any static/dynamic route configured. Currently you cannot view either the Effective Routing Table or the System Routing Table. You can view and edit the User Defined Routing table. When the System table and the User Defined tables are combined to form the Effective Routing Table, the most specific route wins and ties go to the User Defined Routing table. The System Routing Table includes a default route (0.0.0.0/0) pointing to Azure’s Virtual Network Internet Gateway. The SystemRouting Table also includes specific routes to the other defined subnets with the next-hop pointing to Azure’s Virtual Network infrastructure gateway. To route traffic through the ASA virtual, the ASA virtual deployment process adds routes on each subnet to the other three subnets using the ASA virtual as the next hop. You may also want to add a default route Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 123Deploy the ASA Virtual On the Microsoft Azure Cloud Routing Configuration for VMs in the Virtual Network (0.0.0.0/0) that points to the ASA virtual interface on the subnet. This will send all traffic from the subnet through the ASA virtual, which may require that ASA virtual policies be configured in advance to handle that traffic (perhaps using NAT/PAT). Because of the existing specific routes in the System Routing Table, you must add specific routes to the User Defined Routing table to point to the ASA virtual as the next-hop. Otherwise, a default route in the User Defined table would lose to the more specific route in the System Routing Table and traffic would bypass the ASA virtual. Routing Configuration for VMs in the Virtual Network Routing in the Azure Virtual Network depends on the Effective Routing Table and not the particular gateway settings on the clients. Clients running in a Virtual Network may be given routes by DHCP that are the .1 address on their respective subnets. This is a place holder and serves only to get the packet to the Virtual Network’s infrastructure virtual gateway. Once a packet leaves the VM it is routed according to the Effective Routing Table (as modified by the User Defined Table). The Effective Routing Table determines the next hop regardless of whether a client has a gateway configured as .1 or as the ASA virtual address. Azure VM ARP tables will show the same MAC address (1234.5678.9abc) for all known hosts. This ensures that all packets leaving an Azure VM will reach the Azure gateway where the Effective Routing Table will be used to determine the path of the packet. Note The ASA virtual cannot use dynamic interior routing protocols like EIGRP and OSPF due to the nature of Azure cloud routing. The Effective Routing Table determines the next hop, regardless of whether a virtual client has any static/dynamic route configured. Note Virtual Networks, Subnets, Interface, etc., cannot be created by using IPv6 alone. The IPv4 is used by default, and IPv6 can be enabled along with it. IP Addresses The following information applies to IP addresses in Azure: • You should use DHCP to set the IP addresses of ASA virtual interfaces. Furthermore, Management 0/0 (which maps to the first NIC on the ASA virtual) is required to use DHCP to obtain its IPv6 address. The Azure infrastructure ensures that the ASA virtual interfaces are assigned the IP addresses set in Azure. • Management 0/0 is given a private IP address in the subnet to which it is attached. A public IP address may be associated with this private IP address and the Azure Internet gateway will handle the NAT translations. • You can assign a public IP address to any interface. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 124Deploy the ASA Virtual On the Microsoft Azure Cloud DNS • You can enable IP Forwarding in the network interface attached to an ASA virtual appliance in a Virtual Machine Scale Set (VMSS). If network traffic is not destined to any of the configured IP addresses in the network interface, then enabling this option forwards such network traffic to other IP addresses other than the IP addresses configured in the virtual machine. See Azure documentation on how to enable IP Forwarding in the network interface - Enable or disable IP forwarding. • Public IP addresses that are dynamic may change during an Azure stop/start cycle. However, they are persistent during Azure restart and during ASA virtual reload. • Public IP addresses that are static won''t change until you change them in Azure. DNS All Azure virtual networks have access to a built-in DNS server at 168.63.129.16 that you can use as follows: configure terminal dns domain-lookup management dns server-group DefaultDNS name-server 168.63.129.16 end You can use this configuration when you configure Smart Licensing and you don’t have your ownDNS Server set up. Accelerated Networking (AN) Azure''s Accelerated Networking (AN) feature enables single root I/O virtualization (SR-IOV) to a VM, which accelerates networking by allowing VM NICs to bypass the hypervisor and go directly to the PCIe card underneath. AN significantly enhances the throughput performance of the VM and also scales with additional cores (i.e. larger VMs). AN is disabled by default. Azure supports enabling AN on pre-provisioned virtual machines. You simply have to stop VM in Azure and update the network card property to set the enableAcceleratedNetworking parameter to true. See the Microsoft documentation Enable accelerated networking on existing VMs. Then restart the VM. Support for Mellanox Hardware Microsoft Azure cloud has two types of hardware that support the AN functionality: Mellanox 4 (MLX4) and Mellanox 5 (MLX5). ASA virtual supports AN for Mellanox hardware for the following instances from Release 9.15: • D3, D3_v2, DS3, DS3_v2 • D4, D4_v2, DS4, DS4_v2 • D5, D5_v2, DS5, DS5_v2 • D8_v3, D8s_v3 • D16_v3, D16s_v3 • F4, F4s Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 125Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual • F8, F8s, F8s_v2 • F16, F16s, F16s_v2 Note MLX4 (Mellanox 4) is also referred to as connectx3 = cx3, and MLX5 (Mellanox 5) is also referred as connectx4 = cx4. You cannot specify which NIC Azure uses MLX4 or MLX5 for your VM deployment. Cisco recommends that you upgrade to ASA virtual 9.15 version or later to use the accelerated networking functionality. Deploy the ASA Virtual You can deploy the ASA virtual on Microsoft Azure. • Deploy the ASA virtual as a stand-alone firewall using the Azure Resource Manager on the standard Azure public cloud and the Azure Government environments. See Deploy the ASA Virtual from Azure Resource Manager. • Deploy the ASA virtual as an integrated partner solution within Azure using the Azure Security Center. Security-conscious customers are offered the ASA virtual as a firewall option to protect Azure workloads. Security and health events are monitored from a single integrated dashboard. See Deploy the ASAVirtual from Azure Security Center. • Deploy an ASA virtual High Availablity pair using the Azure Resource Manager. To ensure redundancy, you can deploy the ASA virtual in an Active/Backup high availability (HA) configuration. HA in the public cloud implements a stateless Active/Backup solution that allows for a failure of the active ASA virtual to trigger an automatic failover of the system to the backup ASA virtual. See Deploy the ASA Virtual for High Availability from Azure Resource Manager, on page 129. • Deploy the ASA virtual or an ASA virtual High Availablity pair with a custom template using aManaged Image from a VHD (available from cisco.com). Cisco provides a compressed virtual hard disk (VHD) that you can upload to Azure to simplify the process of deploying the ASA virtual. Using a Managed Image and two JSON files (a Template file and a Parameter File), you can deploy and provision all the resources for the ASA virtual in a single, coordinated operation. To use the custom template, see Deploy the ASA Virtual from Azure Using a VHD and Resource Template, on page 131. Deploy the ASA Virtual from Azure Resource Manager The following procedure is a top-level list of steps to set up Microsoft Azure on the ASA virtual. For detailed steps for Azure setup, see Getting Started with Azure. When you deploy the ASA virtual in Azure it automatically generates various configurations, such as resources, public IP addresses, and route tables. You can further manage these configurations after deployment. For example, you may want to change the Idle Timeout value from the default, which is a low timeout. Step 1 Log into the Azure Resource Manager (ARM) portal. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 126Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual from Azure Resource Manager The Azure portal shows virtual elements associated with the current account and subscription regardless of data center location. Step 2 Search Marketplace for Cisco ASAv, and then click on the ASA virtual you would like to deploy. Step 3 Configure the basic settings. a) Enter a name for the virtual machine. This name should be unique within your Azure subscription. Important If your name is not unique and you reuse an existing name, the deployment will fail. b) Enter your username. c) Choose an authentication type, either Password or SSH public key. If you choose Password, enter a password and confirm. See Password Setup for guidelines on password complexity. d) If you are using the ASAv you are deploying as a cluster, then create and enter the basic day0 configuration details in the ASAv Day0 configuration (user-data) field. For information on creating day0 configuration for ASAv in Azure, see Configure the ASA Virtual Clustering Using a Day0 Configuration in the Deploy a Cluster for the ASA Virtual for the Private Cloud guide. e) Choose your subscription type. f) Choose a Resource group. The resource group should be the same as the virtual network’s resource group. g) Choose your location. The location should be the same as for your network and resource group. h) Click OK. Step 4 Configure the ASA virtual settings. a) Choose the virtual machine size. b) Choose a storage account. You can use an existing storage account or create a new one. The location of the storage account should be the same as for the network and virtual machine. c) Request a public IP address by entering a label for the IP address in the Name field, and then click OK. Azure creates a dynamic public IP by default, which may change when the VM is stopped and restarted. If you prefer a fixed IP address, you can open the public-ip in the portal and change it from a dynamic to a static address. d) Add a DNS label if desired. The fully qualified domain name will be your DNS label plus the Azure URL: ..cloupapp.azure.com e) Choose an existing virtual network or create a new one. f) Configure the four subnets that the ASA virtual will deploy to, and then click OK. Important Each interface must be attached to a unique subnet. g) Click OK. Step 5 View the configuration summary, and then click OK. Step 6 View the terms of use and then click Create. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 127Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual from Azure Security Center What to do next • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. Deploy the ASA Virtual from Azure Security Center TheMicrosoft Azure Security Center is a security solution for Azure that enables customers to protect, detect, and mitigate security risks for their cloud deployments. From the Security Center dashboard, customers can set security policies, monitor security configurations, and view security alerts. Security Center analyzes the security state of Azure resources to identify potential security vulnerabilities. A list of recommendations guides customers through the process of configuring needed controls, which can include deployment of the ASA virtual as a firewall solution to Azure customers. As an integrated solution in Security Center, you can rapidly deploy the ASA virtual in just a few clicks and then monitor security and health events from a single dashboard. The following procedure is a top-level list of steps to deploy the ASA virtual from Security Center. For more detailed information, see Azure Security Center. Step 1 Log into the Azure portal. The Azure portal shows virtual elements associated with the current account and subscription regardless of data center location. Step 2 From the Microsoft Azure menu, choose Security Center. If you are accessing Security Center for the first time, theWelcome blade opens. ChooseYes! I want to Launch Azure Security Center to open the Security Center blade and to enable data collection. Step 3 On the Security Center blade, choose the Policy tile. Step 4 On the Security policy blade, choose Prevention policy. Step 5 On the Prevention policy blade, turn on the recommendations that you want to see as part of your security policy. a) Set Next generation firewall to On. This ensures that the ASA virtual is a recommended solution in Security Center. b) Set any other recommendations as needed. Step 6 Return to the Security Center blade and the Recommendations tile. Security Center periodically analyzes the security state of your Azure resources. When Security Center identifies potential security vulnerabilities, it shows recommendations on the Recommendations blade. Step 7 Select theAdd a Next Generation Firewall recommendation on theRecommendations blade to viewmore information and/or to take action to resolve the issue. Step 8 Choose Create New or Use existing solution, and then click on the ASA virtual you would like to deploy. Step 9 Configure the basic settings. a) Enter a name for the virtual machine. This name should be unique within your Azure subscription. Important If your name is not unique and you reuse an existing name, the deployment will fail. b) Enter your username. c) Choose an authorization type, either password or SSH key. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 128Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual for High Availability from Azure Resource Manager If you choose password, enter a password and confirm. See Password Setup for guidelines on password complexity. d) Choose your subscription type. e) Choose a resource group. The resource group should be the same as the virtual network’s resource group. f) Choose your location. The location should be the same as for your network and resource group. g) Click OK. Step 10 Configure the ASA virtual settings. a) Choose the virtual machine size. The ASA virtual supports Standard D3 and Standard D3_v2. b) Choose a storage account. You can use an existing storage account or create a new one. The location of the storage account should be the same as for the network and virtual machine. c) Request a public IP address by entering a label for the IP address in the Name field, and then click OK. Azure creates a dynamic public IP by default, which may change when the VM is stopped and restarted. If you prefer a fixed IP address, you can open the public-ip in the portal and change it from a dynamic to a static address. d) Add a DNS label if desired. The fully qualified domain name will be your DNS label plus the Azure URL: ..cloupapp.azure.com e) Choose an existing virtual network or create a new one. f) Configure the four subnets that the ASA virtual will deploy to, and then click OK. Important Each interface must be attached to a unique subnet. g) Click OK. Step 11 View the configuration summary, and then click OK. Step 12 View the terms of use and then click Create. What to do next • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. • If you need more information on how the recommendations in Security Center help you protect your Azure resources, see the documentation available from Security Center. Deploy the ASA Virtual for High Availability from Azure Resource Manager The following procedure is a top-level list of steps to set up a High Availability (HA) ASA virtual pair on Microsoft Azure. For detailed steps for Azure setup, see Getting Started with Azure. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 129Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual for High Availability from Azure Resource Manager ASA virtual HA in Azure deploys two ASA virtuals into an Availability Set, and automatically generates various configurations, such as resources, public IP addresses, and route tables. You can further manage these configurations after deployment. Step 1 Log into the Azure portal. The Azure portal shows virtual elements associated with the current account and subscription regardless of data center location. Step 2 SearchMarketplace forCisco ASAv, and then click on theASAv 4 NIC HA to deploy a failover ASA virtual configuration. Step 3 Configure the Basics settings. a) Enter a prefix for the ASA virtual machine names. The ASA virtual names will be ‘prefix’-A and ‘prefix’-B. Important Make sure you do not use an existing prefix or the deployment will fail. b) Enter a Username. This will be the administrative username for both Virtual Machines. Important The username admin is not allowed in Azure. c) Choose an authentication type for both Virtual Machines, either Password or SSH public key. If you choose Password, enter a password and confirm. See Password Setup for guidelines on password complexity. d) Choose your subscription type. e) Choose a Resource group. Choose Create new to create a new resource group, or Use existing to select an existing resource group. If you use an existing resource group, it must be empty. Otherwise you should create a new resource group. f) Choose your Location. The location should be the same as for your network and resource group. g) Click OK. Step 4 Configure the Cisco ASAv settings. a) Choose the Virtual Machine size. b) Choose Managed or Unmanaged OS disk storage. Important ASA HA mode always uses Managed. Step 5 Configure the ASAv-A settings. a) (Optional) Choose Create new to request a public IP address by entering a label for the IP address in the Name field, and then click OK. Choose None if you do not want a public IP address. Note Azure creates a dynamic public IP by default, which may change when the VM is stopped and restarted. If you prefer a fixed IP address, you can open the public-ip in the portal and change it from a dynamic to a static address. b) Add a DNS label if desired. The fully qualified domain name will be your DNS label plus the Azure URL: ..cloupapp.azure.com c) Configure the required settings for the storage account for the ASAv-A boot diagnostics. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 130Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual from Azure Using a VHD and Resource Template Step 6 Repeat the previous steps for the ASAv-B settings. Step 7 Choose an existing virtual network or create a new one. a) Configure the four subnets that the ASA virtual will deploy to, and then click OK. Important Each interface must be attached to a unique subnet. b) Click OK. Step 8 View the Summary configuration, and then click OK. Step 9 View the terms of use and then click Create. What to do next • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. • See the ''Failover for High Availability in the Public Cloud'' chapter in the ASA Series General Operations Configuration Guide for more information about ASA virtual HA configuration in Azure. Deploy the ASA Virtual from Azure Using a VHD and Resource Template You can create your own custom ASA virtual images using a compressed VHD image available from Cisco. To deploy using a VHD image, you must upload the VHD image to your Azure storage account. Then, you can create a managed image using the uploaded disk image and an Azure Resource Manager template. Azure templates are JSON files that contain resource descriptions and parameter definitions. Before you begin • You need the JSON template and corresponding JSON parameter file for your ASA virtual template deployment. You can download template files from the GitHub repository at: https://github.com/CiscoDevNet/cisco-asav/tree/master/deployment-templates/azure • For instructions on how to build a template and a parameter file, see Appendix — Azure Resource Template Example, on page 144. • This procedure requires an existing Linux VM in Azure. We recommended you use a temporary Linux VM (such as Ubuntu 16.04) to upload the compressed VHD image to Azure. This image will require about 50G of storage when unzipped. Also, your upload times to Azure storage will be faster from a Linux VM in Azure. If you need to create a VM, use one of the following methods: • Create a Linux virtual machine with the Azure CLI • Create a Linux virtual machine in the Azure portal • In your Azure subscription, you should have a storage account available in the Location in which you want to deploy the ASA virtual. Step 1 Download the ASA virtual compressed VHD image from the https://software.cisco.com/download/home page: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 131Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual from Azure Using a VHD and Resource Template a) Navigate to Products > Security > Firewalls > Adaptive Security Appliances (ASA) > Adaptive Security Appliance (ASA) Software. b) Click Adaptive Security Virtual Appliance (ASAv). Follow the instructions for downloading the image. For example, asav9-14-1.vhd.bz2 Step 2 Copy the compressed VHD image to your Linux VM in Azure. There are many options that you can use to move files up to Azure and down from Azure. This example shows SCP or secure copy: # scp /username@remotehost.com/dir/asav9-14-1.vhd.bz2 Step 3 Log in to the Linux VM in Azure and navigate to the directory where you copied the compressed VHD image. Step 4 Unzip the ASA virtual VHD image. There are many options that you can use to unzip or decompress files. This example shows the Bzip2 utility, but there are also Windows-based utilities that would work. # bunzip2 asav9-14-1.vhd.bz2 Step 5 Upload the VHD to a container in your Azure storage account. You can use an existing storage account or create a new one. The storage account name can only contain lowercase letters and numbers. There are many options that you can use to upload a VHD to your storage account, including AzCopy, Azure Storage Copy Blob API, Azure Storage Explorer, Azure CLI, or the Azure Portal. We do not recommend using the Azure Portal for a file as large as the ASA virtual. The following example shows the syntax using Azure CLI: azure storage blob upload \ --file \ --account-name \ --account-key yX7txxxxxxxx1dnQ== \ --container \ --blob \ --blobtype page Step 6 Create a Managed Image from the VHD: a) In the Azure Portal, select Images. b) Click Add to create a new image. c) Provide the following information: • Subscription—Choose a subscription from the drop-down list. • Resource group—Choose an existing resource group or create a new one. • Name—Enter a user-defined name for the managed image. • Region—Choose the region in which the VM Is deployed. • OS type—Choose Linux as the OS type. • VM generation—Choose Gen 1. Note Gen 2 is not supported. • Storage blob—Browse to the storage account to select the uploaded VHD. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 132Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the ASA Virtual from Azure Using a VHD and Resource Template • Account type—As per your requirement, choose Standard HDD, Standard SSD, or Premium SSD, from the drop-down list. When you select the VM size planned for deployment of this image, ensure that the VM size supports the selected account type. • Host caching—Choose Read/write from the drop-down list. • Data disks—Leave at default; don''t add a data disk. d) Click Create. Wait for the Successfully created image message under the Notifications tab. Note Once the Managed Image has been created, the uploaded VHD and upload Storage Account can be removed. Step 7 Acquire the Resource ID of the newly created Managed Image. Internally, Azure associates every resource with a Resource ID. You’ll need the Resource ID when you deploy new ASA virtual firewalls from this managed image. a) In the Azure Portal, select Images. b) Select the managed image created in the previous step. c) Click Overview to view the image properties. d) Copy the Resource ID to the clipboard. The Resource ID takes the form of: /subscriptions//resourceGroups/ /providers/Microsoft.Compute// Step 8 Build an ASA virtual firewall using the managed image and a resource template: a) Select New, and search for Template Deployment until you can select it from the options. b) Select Create. c) Select Build your own template in the editor. You have a blank template that is available for customizing. See Create a Resource Template, on page 145 for an example of how to create a template d) Paste your customized JSON template code into the window, and then click Save. e) Choose a Subscription from the drop-down list. f) Choose an existing Resource group or create a new one. g) Choose a Location from the drop-down list. h) Paste the Managed Image Resource ID from the previous step into the Vm Managed Image Id field. Step 9 Click Edit parameters at the top of the Custom deployment page. You have a parameters template that is available for customizing. a) Click Load file and browse to the customized ASA virtual parameter file. See Create a Parameter File, on page 154 for an example of how to create a parameter template. b) Paste your customized JSON parameters code into the window, and then click Save. Step 10 Review the Custom deployment details. Make sure that the information in Basics and Settings matches your expected deployment configuration, including the Resource ID. Step 11 Review the Terms and Conditions, and check the I agree to the terms and conditions stated above check box. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 133Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy the IPv6 Supported ASA virtual on Azure Step 12 Click Purchase to deploy an ASA virtual firewall using the managed image and a custom template. If there are no conflicts in your template and parameter files, you should have a successful deployment. The Managed Image is available for multiple deployments within the same subscription and region. What to do next • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. Deploy the IPv6 Supported ASA virtual on Azure This chapter explains how to deploy the IPv6 Supported ASA virtual from the Azure portal. About IPv6 Supported Deployment on Azure ASA virtual offerings support both IPV4 and IPv6 from 9.19 and later. In Azure, you can deploy ASA virtual directly from the Marketplace offering, which creates or uses a virtual network, but currently, a limitation in Azure restricts the Marketplace application offer to use or create only IPv4-based VNet/subnets. Although, you can manually configure the IPv6 addresses to the existing VNet, a new ASA virtual instance cannot be added to the VNet configured with the IPv6 subnets. Azure imposes certain restrictions to deploy any third-party resources using an alternative approach other than deploying resources through Marketplace. Cisco is currently offering two methods to deploy ASA virtual to support IPv6 addressing. The following two distinct custom IPv6 templates are offered, where: • Custom IPv6 template (ARM template) — It is offered to deploy ASA virtual with IPv6 configuration using an Azure Resource Manager (ARM) template that internally refers to a marketplace image on Azure. This template contains JSON files with resources and parameter definitions that you can configure to deploy IPv6-supported ASA virtual. To use this template, see Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference, on page 135. Programmatic deployment is a process of granting access to the VM images on Azure Marketplace to deploy custom templates through PowerShell, Azure CLI, ARM template, or API. You are restricted to deploy these custom templates on VM without providing access to VMs. If you attempt to deploy such custom templates on VM, then the following error message is displayed: Legal terms have not been accepted for this item on this subscription. To accept legal terms ….and configure programmatic deployment for the Marketplace item ….. You can use one of the following methods to enable Programmatic deployment in Azure to deploy the custom IPv6 (ARM) template refering to the marketplace image: • Azure Portal – Enable programmatic deployment option corresponding to the ASA virtual offering available on Azure Marketplace for deploying the custom IPv6 template (ARM template). • Azure CLI – Run the CLI command to enable programmatic deployment for deploying the custom IPv6 (ARM template). • Custom VHD image and IPv6 template (ARM template) —Create a managed image using the VHD image and ARM template on Azure. This process is similar to deploying ASA virtual by using a VHD Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 134Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference and resource template. This template refers to a managed image during deployment and uses an ARM template which you can upload and configure on Azure to deploy IPv6-supported ASA virtual. See, Deploy from Azure Using a VHD and Custom IPv6 Template, on page 140. The process involved in deploying ASA virtual using custom IPv6 template (ARM template) in reference to marketplace image or VHD image with custom IPv6 template. The steps involved in deploying the ASA virtual is as follows: Table 19: Step Process 1 Create a Linux VM in Azure where you are planning to deploy the IPv6-supported ASA virtual 2 Enable Programmatic deployment option on Azure portal or Azure CLI only when you are deploying ASA virtual using the custom IPv6 template with Marketplace image reference. 3 Depending on the type of deployment download the following custom templates: • Custom IPv6 Template with Azure Marketplace reference image. VHD image with custom IPv6 (ARM) template. 4 Update the IPv6 parameters in the custom IPv6 (ARM) template. Note The equivalent Software image version parameter value of the marketplace image version is required only when you are deploying ASA virtual using the custom IPv6 template with Marketplace image reference. Youmust run a command to retrieve the Software version details. 5 Deploy the ARM template through Azure portal or Azure CLI. Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference The process involved in deploying ASA virtual using custom IPv6 template (ARM template) in reference to marketplace image. Step 1 Log into the Azure portal. The Azure portal shows virtual elements associated with the current account and subscription regardless of data center location. Step 2 Enable Programmatic deployment through Azure portal or Azure CLI as follows: To enable this option on Azure Portal. a) Under Azure Services, click Subscriptions to view the subscription blade page. b) On the left pane, click Programmatic Deployment under the Settings option. All the types of resources deployed on the VM are displayed along with the associated subscription offerings. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 135Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference c) Click Enable under the Status column and corresponding to the ASA virtual offering to obtain for programmatic deployment of the custom IPv6 template. OR To enable this option through Azure CLI. a) Go to the Linux VM. b) Run the following CLI command to enable programmatic deployment for deploying custom IPv6 (ARM) template. During the command execution, you must only accept the terms once per subscription of the image. # Accept terms az vm image terms accept -p -f --plan # Review that terms were accepted (i.e., accepted=true) az vm image terms show -p -f --plan Where, • - ''cisco''. • - ''cisco-asav'' • - ''asav-azure-byol'' The following is a command script example to enable programmatic deployment for deploying ASA virtual with BYOL subscription plan. • az vm image terms show -p cisco -f cisco-ftdv --plan asav-azure-byol Step 3 Run the following command to retrieve the Software version details equivalent to the marketplace image version. az vm image list --all -p -f -s Where, • - ''cisco''. • - ''cisco-asav'' • - ''asav-azure-byol'' The following is a command script example to retrieve the Software version details equivalent to the marketplace image version for ASA virtual. az vm image list --all -p cisco -f cisco-ftdv -s asav-azure-byol Step 4 Select one of the ASA virtual version from the list of available marketplace image versions that are displayed. For IPv6 support deployment of ASA virtual, you must select the ASA virtual version as 919*or higher. Step 5 Download the marketplace custom IPv6 template (ARM templates) from the Cisco GitHub repository. Step 6 Prepare the parameters file by providing the deployment values in the parameters template file (JSON). The following table describes the deployment values you need to enter in the custom IPv6 template parameters for ASA virtual custom deployment: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 136Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference Parameter Name Examples of allowed Values/Type Description vmName cisco-asav Name the ASA virtual VM in Azure. softwareVersion 919.0.24 The software version of the marketplace image version. adminUsername hjohn The username to log into ASA virtual. You cannot use the reserved name ‘admin’, which is assigned to administrator. adminPassword E28@4OiUrhx! The admin password. Password combination must be an alphanumeric characters with 12 to 72 characters long. The password combination must comprise of lowercase and uppercase letters, numbers and special characters. See Password Setup for guidelines on password complexity. vmStorageAccount hjohnvmsa Your Azure storage account. You can use an existing storage account or create a new one. The storage account characters must be between three and 24 characters long. The password combination must contain only lowercase letters and numbers. availabilityZone 0 Specify the availability zone for deployment, public IP and the virtual machine will be created in the specified availability zone. Set it to ''0'' if you do not need availability zone configuration. Ensure that selected region supports availability zones and value provided is correct. (This must be an integer between 0-3). userData !\ninterface User Data passed down to the Virtual management0\/0\nmanagement-only\nnameif Machine. management\nsecurity-level 100\nip address dhcp setroute\nipv6 enable\nipv6 address dhcp\nno shutdown\n!\ncrypto key generate rsa modulus 2048\nssh 0 0 management\nssh timeout 60\nssh version 2\nusername admin password E28@4OiUrhx! privilege 15\nenable password Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 137Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference Parameter Name Examples of allowed Values/Type Description E28@4OiUrhx!\nusername admin attributes\nservice-type admin\naaa authentication ssh console LOCAL\n!\naccess-list allow-all extended permit ip any any\naccess-group allow-all global\n!\ndns domain-lookup management\ndns server-group DefaultDNS\nname-server 8.8.8.8\n! virtualNetworkResourceGroup cisco-asav-rg Name of the resource group containing the virtual network. In case virtualNetworkNewOr Existing is new, this value should be same as resource group selected for template deployment. virtualNetworkName cisco-asav-vnet The name of the virtual network. virtualNetworkNewOrExisting new This parameter determines whether a new virtual network should be created or an existing virtual network is to be used. virtualNetworkAddressPrefixes 10.151.0.0/16 IPv4 address prefix for the virtual network, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. virtualNetworkv6AddressPrefixes ace:cab:deca::/48 IPv6 address prefix for the virtual network, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. Subnet1Name mgmt Management subnet name. Subnet1Prefix 10.151.1.0/24 Management subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. Subnet1IPv6Prefix ace:cab:deca:1111::/64 Management subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. subnet1StartAddress 10.151.1.4 Management interface IPv4 address. subnet1v6StartAddress ace:cab:deca:1111::6 Management interface IPv6 address. Subnet2Name diag Data interface 1 subnet name. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 138Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using Custom IPv6 Template with Marketplace Image Reference Parameter Name Examples of allowed Values/Type Description Subnet2Prefix 10.151.2.0/24 Data interface 1 Subnet IPv4 prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. Subnet2IPv6Prefix ace:cab:deca:2222::/64 Data interface 1 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. subnet2StartAddress 10.151.2.4 Data interface 1 IPv4 address. subnet2v6StartAddress ace:cab:deca:2222::6 Data interface 1 IPv6 address. Subnet3Name inside Data interface 2 subnet name. Subnet3Prefix 10.151.3.0/24 Data interface 2 Subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. Subnet3IPv6Prefix ace:cab:deca:3333::/64 Data interface 2 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. subnet3StartAddress 10.151.3.4 Data interface 2 IPv4 address. subnet3v6StartAddress ace:cab:deca:3333::6 Data interface 2 IPv6 address. Subnet4Name outside Data interface 3 subnet name. Subnet4Prefix 10.151.4.0/24 Data interface 3 subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new'' Subnet4IPv6Prefix ace:cab:deca:4444::/64 Data interface 3 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOrExisting'' is set to ''new''. subnet4StartAddress 10.151.4.4 Data interface 3 IPv4 Address. subnet4v6StartAddress ace:cab:deca:4444::6 Data interface 3 IPv6 Address. vmSize Standard_D4_v2 Size of the ASA virtual VM. Standard_D3_v2 is the default. Step 7 Use the ARM template to deploy ASA virtual firewall through the Azure portal or Azure CLI. For information about deploying the ARM template on Azure, refer to the following Azure documentation: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 139Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using a VHD and Custom IPv6 Template • Create and deploy ARM templates by using the Azure portal • Deploy a local ARM template through CLI What to do next Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. If you need more information on how the recommendations in Security Center help you protect your Azure resources, see the documentation available from Security Center. Deploy from Azure Using a VHD and Custom IPv6 Template You can create your own custom ASA virtual images using a compressed VHD image available from Cisco. This process is similar to deploying ASA virtual by using a VHD and resource template. Before you begin • You need the JSON template and corresponding JSON parameter file for your ASA virtual deployment using VHD and ARM updated template on Github, where you''ll find instructions on how to build a template and parameter file. • This procedure requires an existing Linux VM in Azure. We recommended you use a temporary Linux VM (such as Ubuntu 16.04) to upload the compressed VHD image to Azure. This image will require about 50GB of storage when unzipped. Also, your upload times to Azure storage will be faster from a Linux VM in Azure. If you need to create a VM, use one of the following methods: • Create a Linux virtual machine with the Azure CLI • Create a Linux virtual machine with the Azure portal • In your Azure subscription, you should have a storage account available in the Location in which you want to deploy the ASA virtual. Step 1 Download the ASA virtual compressed VHD image (*.bz2) from the Cisco Download Software page: a) Navigate to Products > Security > Firewalls > Adaptive Security Appliances (ASA) > Adaptive Security Appliance (ASA) Software. b) Click Adaptive Security Virtual Appliance (ASAv). Follow the instructions for downloading the image. For example, asav9-14-1.vhd.bz2 Step 2 Perform Step 2 through Step 8Deploy the ASA Virtual from Azure Using a VHD and Resource Template. Step 3 Click Edit parameters at the top of the Custom deployment page. You have a parameters template that is available for customizing. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 140Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using a VHD and Custom IPv6 Template a) Click Load file and browse to the customized ASA virtual parameter file. See the sample for the Azure ASA virtual deployment using VHD and custom IPv6 (ARM) template on Github, where you''ll find instructions on how to build a template and parameter file. b) Paste your customized JSON parameters code into the window, and then click Save. The following table describes the deployment values you need to enter in the custom IPv6 template parameters for ASA virtual deployment: Parameter Name Examples of allowed values/types Description vmName cisco-asav Name the ASA virtual VM in Azure. vmImageId /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/ The ID of the image used for Microsoft.Compute/images/{image-name deployment. Internally, Azure associates every resource with a Resource ID. adminUsername hjohn The username to log into ASA virtual. You cannot use the reserved name ‘admin’, which is assigned to administrator. adminPassword E28@4OiUrhx! The admin password. Password combination must be an alphanumeric characters with 12 to 72 characters long. The password combination must comprise of lowercase and uppercase letters, numbers and special characters. vmStorageAccount hjohnvmsa Your Azure storage account. You can use an existing storage account or create a new one. The storage account characters must be between three and 24 characters long. The password combination must contain only lowercase letters and numbers. availabilityZone 0 Specify the availability zone for deployment, public IP and the virtual machine will be created in the specified availability zone. Set it to ''0'' if you do not need availability zone configuration. Ensure that selected region supports availability zones and value provided is correct. (This must be an integer between 0-3). userData !\ninterface User Data passed down to the Virtual management0\/0\nmanagement-only\nnameif Machine. management\nsecurity-level 100\nip address dhcp setroute\nipv6 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 141Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using a VHD and Custom IPv6 Template Parameter Name Examples of allowed values/types Description enable\nipv6 address dhcp\nno shutdown\n!\ncrypto key generate rsa modulus 2048\nssh 0 0 management\nssh timeout 60\nssh version 2\nusername admin password E28@4OiUrhx! privilege 15\nenable password E28@4OiUrhx!\nusername admin attributes\nservice-type admin\naaa authentication ssh console LOCAL\n!\naccess-list allow-all extended permit ip any any\naccess-group allow-all global\n!\ndns domain -lookup management\ndns server-group DefaultDNS\nname-server 8.8.8.8\n! customData {\"AdminPassword\": The field to provide in the Day 0 \"E28@4OiUrhx!\",\"Hostname\" configuration to the ASA virtual. By :\"cisco-tdv\", default it has the following three \"ManageLocally\":\"No\", \"IPv6Mode\": key-value pairs to configure: \"DHCP\"} • ''admin'' user password • CSF-MCv hostname • the CSF-MCv hostname or CSF-DM for management. ''ManageLocally : yes'' - This configures the CSF-DM to be used as threat defense virtual manager. You can configure the CSF-MCv as threat defense virtual manager and also give the inputs for fields required to configure the same on CSF-MCv. virtualNetworkResourceGroup cisco-asav Name of the resource group containing the virtual network. In case virtualNetworkNewOr Existing is new, this value should be same as resource group selected for template deployment. virtualNetworkName cisco-asav-vnet The name of the virtual network. virtualNetworkNewOrExisting new This parameter determines whether a new virtual network should be created or an existing virtual network is to be used. virtualNetworkAddressPrefixes 10.151.0.0/16 IPv4 address prefix for the virtual network, this is required only if Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 142Deploy the ASA Virtual On the Microsoft Azure Cloud Deploy from Azure Using a VHD and Custom IPv6 Template Parameter Name Examples of allowed values/types Description ''virtualNetworkNewOr Existing'' is set to ''new''. virtualNetworkv6AddressPrefixes ace:cab:deca::/48 IPv6 address prefix for the virtual network, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. Subnet1Name mgmt-ipv6 Management subnet name. Subnet1Prefix 10.151.1.0/24 Management subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. Subnet1IPv6Prefix ace:cab:deca:1111::/64 Management subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. subnet1StartAddress 10.151.1.4 Management interface IPv4 address. subnet1v6StartAddress ace:cab:deca:1111::6 Management interface IPv6 address. Subnet2Name diag Data interface 1 subnet name. Subnet2Prefix 10.151.2.0/24 Data interface 1 Subnet IPv4 prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. Subnet2IPv6Prefix ace:cab:deca:2222::/64 Data interface 1 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. subnet2StartAddress 10.151.2.4 Data interface 1 IPv4 address. subnet2v6StartAddress ace:cab:deca:2222::6 Data interface 1 IPv6 address. Subnet3Name inside Data interface 2 subnet name. Subnet3Prefix 10.151.3.0/24 Data interface 2 Subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. Subnet3IPv6Prefix ace:cab:deca:3333::/64 Data interface 2 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. subnet3StartAddress 10.151.3.4 Data interface 2 IPv4 address. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 143Deploy the ASA Virtual On the Microsoft Azure Cloud Appendix — Azure Resource Template Example Parameter Name Examples of allowed values/types Description subnet3v6StartAddress ace:cab:deca:3333::6 Data interface 2 IPv6 address. Subnet4Name outside Data interface 3 subnet name. Subnet4Prefix 10.151.4.0/24 Data interface 3 subnet IPv4 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new'' Subnet4IPv6Prefix ace:cab:deca:4444::/64 Data interface 3 Subnet IPv6 Prefix, this is required only if ''virtualNetworkNewOr Existing'' is set to ''new''. subnet4StartAddress 10.151.4.4 Data interface 3 IPv4 Address. subnet4v6StartAddress ace:cab:deca:4444::6 Data interface 3 IPv6 Address. vmSize Standard_D4_v2 Size of the ASA virtual VM. Standard_D3_v2 is the default. Step 4 Use the ARM template to deploy ASA virtual firewall through the Azure portal or Azure CLI. For information about deploying the ARM template on Azure, refer to the following Azure documentation: • Create and deploy ARM templates by using the Azure portal • Deploy a local ARM template through CLI What to do next • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM, page87 for instructions for accessing the ASDM. Appendix — Azure Resource Template Example This section describes the structure of an Azure Resource Manager template you can use to deploy the ASA virtual. An Azure Resource Template is a JSON file. To simplify the deployment of all the required resources, this example includes two JSON files: • Template File—This is the main resources file that deploys all the components within the resource group. • Parameter File—This file includes the parameters required to successfully deploy the ASA virtual. It includes details such as the subnet information, virtual machine tier and size, username and password for the ASA virtual, the name of the storage container, etc. You can customize this file for your Azure Stack Hub deployment environment. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 144Deploy the ASA Virtual On the Microsoft Azure Cloud Template File Format Template File Format This section describes the structure of an Azure Resource Manager template file. The following example shows a collapsed view of a template file and presents the different sections of a template. Azure Resource Manager JSON Template File { "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "", "parameters": { }, "variables": { }, "resources": [ ], "outputs": { } } The template consists of JSON and expressions that you can use to construct values for your ASA virtual deployment. In its simplest structure, a template contains the following elements: Table 20: Azure Resource Manager JSON Template File Elements Defined Element Required Description $schema Yes Location of the JSON schema file that describes the version of the template language. Use the URL shown in the preceding figure. contentVersion Yes Version of the template (such as 1.0.0.0). You can provide any value for this element. When deploying resources using the template, this value can be used to make sure that the right template is being used. parameters No Values that are provided when deployment is executed to customize resource deployment. Parameters allow for inputting values at the time of deployment. They are not absolutely required, but without them the JSON template will deploy the resources with the same parameters each time. variables No Values that are used as JSON fragments in the template to simplify template language expressions. resources Yes Resource types that are deployed or updated in a resource group. outputs No Values that are returned after deployment. You can make use of JSON templates to not only declare the resource types to be deployed, but also their related configuration parameters. The following example shows a template that deploys a new ASA virtual. Create a Resource Template You can use the example below to create your own deployment template using a text editor. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 145Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template Step 1 Copy the text in the following example. Example: { "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vmName": { "type": "string", "defaultValue": "ngfw", "metadata": { "description": "Name of the NGFW VM" } }, "vmManagedImageId": { "type": "string", "defaultValue": "/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/images/myImage", "metadata": { "description": "The ID of the managed image used for deployment. /subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/images/myImage" } }, "adminUsername": { "type": "string", "defaultValue": "", "metadata": { "description": "Username for the Virtual Machine. admin, Administrator among other values are disallowed - see Azure docs" } }, "adminPassword": { "type": "securestring", "defaultValue" : "", "metadata": { "description": "Password for the Virtual Machine. Passwords must be 12 to 72 chars and have at least 3 of the following: Lowercase, uppercase, numbers, special chars" } }, "vmStorageAccount": { "type": "string", "defaultValue": "", "metadata": { "description": "A storage account name (boot diags require a storage account). Between 3 and 24 characters. Lowercase letters and numbers only" } }, "virtualNetworkResourceGroup": { "type": "string", "defaultValue": "", "metadata": { "description": "Name of the virtual network''s Resource Group" } }, "virtualNetworkName": { "type": "string", "defaultValue": "", "metadata": { "description": "Name of the virtual network" Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 146Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template } }, "mgmtSubnetName": { "type": "string", "defaultValue": "", "metadata": { "description": "The FTDv management interface will attach to this subnet" } }, "mgmtSubnetIP": { "type": "string", "defaultValue": "", "metadata": { "description": "NGFW IP on the mgmt interface (example: 192.168.0.10)" } }, "diagSubnetName": { "type": "string", "defaultValue": "", "metadata": { "description": "The FTDv diagnostic0/0 interface will attach to this subnet" } }, "diagSubnetIP": { "type": "string", "defaultValue": "", "metadata": { "description": "NGFW IP on the diag interface (example: 192.168.1.10)" } }, "gig00SubnetName": { "type": "string", "defaultValue": "", "metadata": { "description": "The FTDv Gigabit 0/0 interface will attach to this subnet" } }, "gig00SubnetIP": { "type": "string", "defaultValue": "", "metadata": { "description": "The IP on the Gigabit 0/0 interface (example: 192.168.2.10)" } }, "gig01SubnetName": { "type": "string", "defaultValue": "", "metadata": { "description": "The FTDv Gigabit 0/1 interface will attach to this subnet" } }, "gig01SubnetIP": { "type": "string", "defaultValue": "", "metadata": { "description": "The IP on the Gigabit 0/1 interface (example: 192.168.3.5)" } }, "VmSize": { "type": "string", "defaultValue": "Standard_D3_v2", "allowedValues": [ "Standard_D3_v2" , "Standard_D3" ], "metadata": { "description": "NGFW VM Size (Standard_D3_v2 or Standard_D3)" Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 147Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template } } }, "variables": { "virtualNetworkID": "[resourceId(parameters(''virtualNetworkResourceGroup''),''Microsoft.Network/virtualNetworks'', parameters(''virtualNetworkName''))]", "vmNic0Name":"[concat(parameters(''vmName''),''-nic0'')]", "vmNic1Name":"[concat(parameters(''vmName''),''-nic1'')]", "vmNic2Name":"[concat(parameters(''vmName''),''-nic2'')]", "vmNic3Name":"[concat(parameters(''vmName''),''-nic3'')]", "vmNic0NsgName":"[concat(variables(''vmNic0Name''),''-NSG'')]", "vmMgmtPublicIPAddressName": "[concat(parameters(''vmName''),''nic0-ip'')]", "vmMgmtPublicIPAddressType": "Static", "vmMgmtPublicIPAddressDnsName": "[variables(''vmMgmtPublicIPAddressName'')]" }, "resources": [ { "apiVersion": "2017-03-01", "type": "Microsoft.Network/publicIPAddresses", "name": "[variables(''vmMgmtPublicIPAddressName'')]", "location": "[resourceGroup().location]", "properties": { "publicIPAllocationMethod": "[variables(''vmMgmtPublicIpAddressType'')]", "dnsSettings": { "domainNameLabel": "[variables(''vmMgmtPublicIPAddressDnsName'')]" } } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Network/networkSecurityGroups", "name": "[variables(''vmNic0NsgName'')]", "location": "[resourceGroup().location]", "properties": { "securityRules": [ { "name": "SSH-Rule", "properties": { "description": "Allow SSH", "protocol": "Tcp", "sourcePortRange": "*", "destinationPortRange": "22", "sourceAddressPrefix": "Internet", "destinationAddressPrefix": "*", "access": "Allow", "priority": 100, "direction": "Inbound" } }, { "name": "SFtunnel-Rule", "properties": { "description": "Allow tcp 8305", "protocol": "Tcp", "sourcePortRange": "*", "destinationPortRange": "8305", "sourceAddressPrefix": "Internet", "destinationAddressPrefix": "*", "access": "Allow", Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 148Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template "priority": 101, "direction": "Inbound" } } ] } }, { "apiVersion": "2017-03-01", "type": "Microsoft.Network/networkInterfaces", "name": "[variables(''vmNic0Name'')]", "location": "[resourceGroup().location]", "dependsOn": [ "[concat(''Microsoft.Network/networkSecurityGroups/'',variables(''vmNic0NsgName''))]", "[concat(''Microsoft.Network/publicIPAddresses/'', variables(''vmMgmtPublicIPAddressName''))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress" : "[parameters(''mgmtSubnetIP'')]", "subnet": { "id": "[concat(variables(''virtualNetworkID''),''/subnets/'', parameters(''mgmtSubnetName''))]" }, "publicIPAddress":{ "id": "[resourceId(''Microsoft.Network/publicIPAddresses/'', variables(''vmMgmtPublicIPAddressName''))]" } } } ], "networkSecurityGroup": { "id": "[resourceId(''Microsoft.Network/networkSecurityGroups'', variables(''vmNic0NsgName''))]" }, "enableIPForwarding": true } }, { "apiVersion": "2017-03-01", "type": "Microsoft.Network/networkInterfaces", "name": "[variables(''vmNic1Name'')]", "location": "[resourceGroup().location]", "dependsOn": [ ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress" : "[parameters(''diagSubnetIP'')]", "subnet": { "id": "[concat(variables(''virtualNetworkID''),''/subnets/'', parameters(''diagSubnetName''))]" } } } ], "enableIPForwarding": true } Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 149Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template }, { "apiVersion": "2017-03-01", "type": "Microsoft.Network/networkInterfaces", "name": "[variables(''vmNic2Name'')]", "location": "[resourceGroup().location]", "dependsOn": [ ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress" : "[parameters(''gig00SubnetIP'')]", "subnet": { "id": "[concat(variables(''virtualNetworkID''),''/subnets/'', parameters(''gig00SubnetName''))]" } } } ], "enableIPForwarding": true } }, { "apiVersion": "2017-03-01", "type": "Microsoft.Network/networkInterfaces", "name": "[variables(''vmNic3Name'')]", "location": "[resourceGroup().location]", "dependsOn": [ ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress" : "[parameters(''gig01SubnetIP'')]", "subnet": { "id": "[concat(variables(''virtualNetworkID''),''/subnets/'', parameters(''gig01SubnetName''))]" } } } ], "enableIPForwarding": true } }, { "type": "Microsoft.Storage/storageAccounts", "name": "[concat(parameters(''vmStorageAccount''))]", "apiVersion": "2015-06-15", "location": "[resourceGroup().location]", "properties": { "accountType": "Standard_LRS" } }, { "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachines", "name": "[parameters(''vmName'')]", "location": "[resourceGroup().location]", "dependsOn": [ "[concat(''Microsoft.Storage/storageAccounts/'', parameters(''vmStorageAccount''))]", Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 150Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Resource Template "[concat(''Microsoft.Network/networkInterfaces/'',variables(''vmNic0Name''))]", "[concat(''Microsoft.Network/networkInterfaces/'',variables(''vmNic1Name''))]", "[concat(''Microsoft.Network/networkInterfaces/'',variables(''vmNic2Name''))]", "[concat(''Microsoft.Network/networkInterfaces/'',variables(''vmNic3Name''))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters(''vmSize'')]" }, "osProfile": { "computername": "[parameters(''vmName'')]", "adminUsername": "[parameters(''AdminUsername'')]", "adminPassword": "[parameters(''AdminPassword'')]" }, "storageProfile": { "imageReference": { "id": "[parameters(''vmManagedImageId'')]" }, "osDisk": { "osType": "Linux", "caching": "ReadWrite", "createOption": "FromImage" } }, "networkProfile": { "networkInterfaces": [ { "properties": { "primary": true }, "id": "[resourceId(''Microsoft.Network/networkInterfaces'', variables(''vmNic0Name''))]" }, { "properties": { "primary": false }, "id": "[resourceId(''Microsoft.Network/networkInterfaces'', variables(''vmNic1Name''))]" }, { "properties": { "primary": false }, "id": "[resourceId(''Microsoft.Network/networkInterfaces'', variables(''vmNic2Name''))]" }, { "properties": { "primary": false }, "id": "[resourceId(''Microsoft.Network/networkInterfaces'', variables(''vmNic3Name''))]" } ] }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": true, "storageUri": "[concat(''http://'',parameters(''vmStorageAccount''),''.blob.core.windows.net'')]" } } } Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 151Deploy the ASA Virtual On the Microsoft Azure Cloud Parameter File Format } ], "outputs": { } } Step 2 Save the file locally as a JSON file; for example, azureDeploy.json. Step 3 Edit the file to create a template to suit your deployment parameters. Step 4 Use this template to deploy the ASA virtual as described in Deploy the ASA Virtual from Azure Using a VHD and Resource Template, on page 131. Parameter File Format When you start a new deployment, you have parameters defined in your resource template. These need to be entered before the deployment can start. You can manually enter the parameters that you have defined in your resource template, or you can put the parameters in a template parameters JSON file. The parameter file contains a value for each parameter shown in the parameters example in Create a Parameter File, on page 154. These values are automatically passed to the template during deployment. You can create multiple parameter files for different deployment scenarios. For the ASA virtual template in this example, the parameter file must have the following parameters defined: Table 21: ASA Virtual Parameter Definitions Field Description Example vmName The name the ASA virtual machine cisco-asav will have in Azure. vmManagedImageId The ID of the managed image used /subscriptions/73d2537e-ca44-46aa-b for deployment. Internally, Azure eb2-74ff1dd61b41/ associates every resource with a resourceGroups/ew Resource ID. ManagedImages-rg/providers/Microsoft .Compute/ images/ASAv910-Managed-Image adminUsername The username for logging into the jdoe ASA virtual. This cannot be the reserved name ‘admin’. adminPassword The admin password. This must be Pw0987654321 12 to 72 characters long, and include three of the following: 1 lower case, 1 upper case, 1 number, 1 special character. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 152Deploy the ASA Virtual On the Microsoft Azure Cloud Parameter File Format Field Description Example vmStorageAccount Your Azure storage account. You ciscoasavstorage can use an existing storage account or create a new one. The storage account name must be between 3 and 24 characters, and can only contain lowercase letters and numbers. virtualNetworkResourceGroup The name of the virtual network''s ew-west8-rg Resource Group. The ASA virtual is always deployed into a new Resource Group. virtualNetworkName The name of the virtual network. ew-west8-vnet mgmtSubnetName The management interface will mgmt attach to this subnet. This maps to Nic0, the first subnet. Note, this must match an existing subnet name if joining an existing network. mgmtSubnetIP The Management interface IP 10.8.0.55 address. gig00SubnetName The GigabitEthernet 0/0 interface inside will attach to this subnet. This maps to Nic1, the second subnet. Note, this must match an existing subnet name if joining an existing network. gig00SubnetIP The GigabitEthernet 0/0 interface 10.8.2.55 IP address. This is for the ASA virtual’s first data interface. gig01SubnetName The GigabitEthernet 0/1 interface outside will attach to this subnet. This maps to Nic2, the third subnet. Note, this must match an existing subnet name if joining an existing network. gig01SubnetIP The GigabitEthernet 0/1 interface 10.8.3.55 IP address. This is for ASA virtual’s second data interface. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 153Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Parameter File Field Description Example gig02SubnetName The GigabitEthernet 0/2 interface dmz will attach to this subnet. This maps to Nic3, the fourth subnet. Note, this must match an existing subnet name if joining an existing network. gig02SubnetIP The GigabitEthernet 0/2 interface 10.8.4.55 IP address. This is for ASA virtual’s third data interface. vmSize The VM size to use for the ASA Standard_D3_V2 or Standard_D3 virtual VM. Standard_D3_V2 and Standard_D3 are supported. Standard_D3_V2 is the default. Create a Parameter File You can use the example below to create your own parameter file using a text editor. Note The following example is for IPV4 only. Step 1 Copy the text in the following example. Example: { "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "vmName": { "value": "cisco-asav1" }, "vmManagedImageId": { "value": "/subscriptions/33d2517e-ca88-46aa-beb2-74ff1dd61b41/resourceGroups/ewManagedImages-rg/providers/Microsoft.Compute/images/ASAv-9.10.1-81-Managed-Image" }, "adminUsername": { "value": "jdoe" }, "adminPassword": { "value": "Pw0987654321" }, "vmStorageAccount": { "value": "ciscoasavstorage" }, "virtualNetworkResourceGroup": { "value": "ew-west8-rg" }, "virtualNetworkName": { Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 154Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Parameter File "value": "ew-west8-vn" }, "mgmtSubnetName": { "value": "mgmt" }, "mgmtSubnetIP": { "value": "10.8.3.77" }, "gig00SubnetName": { "value": "inside" }, "gig00SubnetIP": { "value": "10.8.2.77" }, "gig01SubnetName": { "value": "outside" }, "gig01SubnetIP": { "value": "10.8.1.77" }, "gig02SubnetName": { "value": "dmz" }, "gig02SubnetIP": { "value": "10.8.0.77" }, "VmSize": { "value": "Standard_D3_v2" } } } Step 2 Save the file locally as a JSON file; for example, azureParameters.json. Step 3 Edit the file to create a template to suit your deployment parameters. Step 4 Use this parameter template to deploy the ASA virtual as described in Deploy the ASA Virtual from Azure Using a VHD and Resource Template, on page 131. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 155Deploy the ASA Virtual On the Microsoft Azure Cloud Create a Parameter File Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 156C H A P T E R 7 Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure • Auto Scale Solution for the ASA Virtual on Azure, on page 157 • Download the Deployment Package, on page 161 • Auto Scale Solution Components, on page 162 • Prerequisites, on page 163 • Deploy the Auto Scale Solution, on page 171 • Auto Scale Logic, on page 185 • Auto Scale Logging and Debugging, on page 185 • Auto Scale Guidelines and Limitations, on page 186 • Troubleshooting, on page 187 • Build Azure Functions from Source Code, on page 188 Auto Scale Solution for the ASA Virtual on Azure Overview The auto scale solution enables allocation of resources to match performance requirements and reduce costs. If the demand for resources increases, the system ensures that resources are allocated as required. If the demand for resources decreases, resources are deallocated to reduce costs. The ASA virtual auto scale for Azure is a complete serverless implementation which makes use of serverless infrastructure provided by Azure (Logic App, Azure Functions, Load Balancers, Security Groups, Virtual Machine Scale Set, etc.). Some of the key features of the ASA virtual auto scale for Azure implementation include: • Azure Resource Manager (ARM) template-based deployment. • Support for scaling metrics based on CPU. Note See Auto Scale Logic, on page 185 for more information. • Support for ASA virtual deployment and multi-availability zones. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 157Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale using Sandwich Topology Use Case • Completely automated configuration automatically applied to scaled-out ASA virtual instances. • Support for Load Balancers and multi-availability zones. • Support for enabling and disabling the auto scale feature. • Cisco provides an auto scale for Azure deployment package to facilitate the deployment. The ASA virtual auto scale solution on Azure supports two types of use cases configured using different topologies: • Auto scale using Sandwich Topology – The ASA virtual scale set is sandwiched between an Azure Internal load balancer (ILB) and an Azure External load balancer (ELB). • Auto scale with Azure Gateway load balancer (GWLB) – The Azure GWLB is integrated with Secure Firewall, public load balancer, and internal servers - to simplify deployment, management, and scaling of firewalls. Auto Scale using Sandwich Topology Use Case The ASA virtual auto scale for Azure is an automated horizontal scaling solution that positions an ASA virtual scale set sandwiched between an Azure Internal load balancer (ILB) and an Azure External load balancer (ELB). • The ELB distributes traffic from the Internet to ASA virtual instances in the scale set; the firewall then forwards traffic to application. • The ILB distributes outbound Internet traffic from an application to ASA virtual instances in the scale set; the firewall then forwards traffic to Internet. • A network packet will never pass through both (internal & external) load balancers in a single connection. • The number of ASA virtual instances in the scale set will be scaled and configured automatically based on load conditions. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 158Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale with Azure Gateway Load Balancer Use Case Figure 17: ASA Virtual Auto Scale using Sandwich Topology Use Case Auto Scale with Azure Gateway Load Balancer Use Case The Azure Gateway Load Balancer (GWLB) ensures that internet traffic to and from an Azure VM, such as an application server, is inspected by Secure Firewall without requiring any routing changes. This integration of the Azure GWLB with Secure Firewall simplifies deployment, management, and scaling of firewalls. This integration also reduces operational complexity and provides a single entry and exit point for traffic at the firewall. The applications and infrastructure can maintain visibility of source IP address, which is critical in some environments. In the Azure GWLB Auto Scale use case, the ASA virtual uses only two interfaces: Management and one data interface. Note • Network Address Translation (NAT) is not required if you are deploying the Azure GWLB. • Only IPv4 is supported. Licensing Both PAYG and BYOL are supported. BYOL is supported. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 159Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale with Azure Gateway Load Balancer Use Case Inbound Traffic Use Case and Topology The following diagram displays the traffic flow for inbound traffic. Outbound Traffic Use Case and Topology The following diagram displays the traffic flow for outbound traffic. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 160Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Scope Traffic Flow between the Application VPC and Security VPC In the diagram shown below, traffic is redirected from the existing topology to the firewalls for inspection by the external load balancer. The traffic is then routed to the newly created GWLB. Any traffic that is routed to the ELB is forwarded to the GWLB. The GWLB then forwards the VXLAN-encapsulated traffic to a ASA virtual instance. You have to create two ASA virtual associations as the GWLB uses two separate VXLAN tunnels for ingress and egress traffic. The ASA virtual decapsulates the VXLAN-encapsulated traffic, inspects it, and routes the traffic to the GWLB. The GWLB then forwards the traffic to the ELB. Scope This document covers the detailed procedures to deploy the serverless components for the ASA virtual auto scale for Azure solution. Important • Read the entire document before you begin your deployment. • Make sure the prerequisites are met before you start deployment. • Make sure you follow the steps and order of execution as described herein. Download the Deployment Package The ASA virtual auto scale for Azure solution is an Azure Resource Manager (ARM) template-based deployment which makes use of the serverless infrastructure provided by Azure (Logic App, Azure Functions, Load Balancers, Virtual Machine Scale Set, and so on). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 161Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale Solution Components Download the files required to launch the ASA virtual auto scale for Azure solution. Deployment scripts and templates for your version are available in the GitHub repository. Attention Note that Cisco-provided deployment scripts and templates for auto scale are provided as open source examples, and are not covered within the regular Cisco TAC support scope. Check GitHub regularly for updates and ReadMe instructions. See Build Azure Functions from Source Code, on page 188 for instructions on how to build the ASM_Function.zip package. Auto Scale Solution Components The following components make up the ASA virtual auto scale for Azure solution. Azure Functions (Function App) The Function App is a set of Azure functions. The basic functionality includes: • Communicate/Probe Azure metrics periodically. • Monitor the ASA virtual load and trigger Scale In/Scale Out operations. These functions are delivered in the form of compressed Zip package (see Build the Azure Function App Package, on page 166). The functions are as discrete as possible to carry out specific tasks, and can be upgraded as needed for enhancements and new release support. Orchestrator (Logic App) 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. • The Logic App is used to orchestrate and pass information between the auto scale Azure functions. • Each step represents an auto scale Azure function or built-in standard logic. • The Logic App is delivered as a JSON file. • The Logic App can be customized via the GUI or JSON file. Virtual Machine Scale Set (VMSS) The VMSS is a collection of homogeneous virtual machines, such as ASA virtual devices. • The VMSS is capable of adding new identical VMs to the set. • New VMs added to the VMSS are automatically attached with Load Balancers, Security Groups, and network interfaces. • The VMSS has a built–in auto scale feature which is disabled for ASA virtual for Azure. • You should not add or delete ASA virtual instances in the VMSS manually. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 162Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Prerequisites Azure Resource Manager (ARM) Template ARM templates are used to deploy the resources required by the ASA virtual auto scale for Azure solution. ASA virtual auto scale for Azure - The ARM template azure_asav_autoscale.json provides input for the Auto Scale Manager components including: • Azure Function App • Azure Logic App • The Virtual Machine Scale Set (VMSS) • Internal/External load balancers. • Security Groups and other miscellaneous components needed for deployment. ASA virtual auto scale with Azure GWLB - The ARM template azure_asav_autoscale_with_GWLB.json provides input for the Auto Scale Manager components including: • Azure Function App • Azure Logic App • Virtual Machine (VM) or Virtual Machine Scale Set (VMSS) • Networking Infrastructure • Gateway load balancer • Security Groups and other miscellaneous components needed for deployment Important The ARM template has limitations with respect to validating user input, hence it is your responsibility to validate input during deployment. Prerequisites Azure Resources Resource Group An existing or newly created Resource Group is required to deploy all the components of this solution. Note Record the Resource Group name, the Region in which it is created, and the Azure Subscription ID for later use. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 163Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Prepare the ASA Configuration File Networking Make sure a virtual network is available or created. An auto scale deployment with sandwich topology does not create, alter, or manage any networking resources. However, note that auto scale deployment with the Azure GWLB creates networking infrastructure. The ASA virtual requires three network interfaces, thus your virtual network requires three subnets for: 1. Management traffic 2. Inside traffic 3. Outside traffic The following ports should be open in the Network Security Group to which the subnets are connected: • SSH(TCP/22) Required for the Health probe between the Load Balancer and ASA virtual. Required for communication between the Serverless functions and ASA virtual. • Application-specific protocol/ports Required for any user applications (for example, TCP/80, etc.). Note Record the virtual network name, the virtual network CIDR, the names of the 3 subnets, and the Gateway IP addresses of the outside and inside subnets. Prepare the ASA Configuration File Prepare an ASA virtual configuration file and store in a http/https server accessible by the ASA virtual instance. This is a standard ASA configuration file format. A scaled-out ASA virtual will download this file and update its configuration. The ASA configuration file should have the following (at a minimum): • Set DHCP IP assignment to all the interfaces. • GigabitEthernet0/1 should be the ‘inside’ interface. • GigabitEthernet0/0 should be the ‘outside’ interface. Note Auto scale deployment using sandwich topology requires two data interfaces. However, auto scale deployment with Azure GWLB requires only one data interface. • Set the gateway to the inside and outside interface. • Enable SSH on the inside and outside interface from Azure utility IP (for health probe). • Create a NAT configuration to forward traffic from the outside to the inside interface. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 164Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Prepare the ASA Configuration File • Create an access policy to allow desired traffic. • License the configuration. PAYG billing is not supported. Note There is no need to specifically configure the Management interface. The following is a sample ASA configuration file for the ASA virtual auto scale for Azure solution. ASA Version 9.13(1) ! interface GigabitEthernet0/1 nameif inside security-level 100 ip address dhcp setroute ! interface GigabitEthernet0/0 nameif outside security-level 0 ip address dhcp setroute ! route outside 0.0.0.0 0.0.0.0 10.12.3.1 2 ! route inside 0.0.0.0 0.0.0.0 10.12.2.1 3 ! ssh 168.63.129.0 255.255.255.0 outside ! ssh 168.63.129.0 255.255.255.0 inside ! object network webserver host 10.12.2.5 object service myport service tcp source range 1 65535 destination range 1 65535 access-list outowebaccess extended permit object myport any any log disable access-group outowebaccess in interface outside object service app service tcp source eq www nat (inside,outside) source static webserver interface destination static interface any service app app object network obj-any subnet 0.0.0.0 0.0.0.0 nat (inside,outside) source dynamic obj-any interface destination static obj-any obj-any configure terminal dns domain-lookup management policy-map global_policy class inspection_default inspect icmp call-home profile License destination transport-method http destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService license smart feature tier standard throughput level 2G license smart register idtoken : end The following is a sample ASA configuration file for the ASA virtual auto scale with Azure GWLB solution. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 165Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Build the Azure Function App Package interface G0/0 nameif outside ip address dhcp setroute no shut !s sh 168.63.129.0 255.255.255.0 outside route outside 0.0.0.0 0.0.0.0 192.168.2.1 2 nve 1 encapsulation vxlan source-interface outside peer ip 192.168.2.100 !i nterface vni1 proxy paired nameif GWLB-backend-pool internal-port 2000 internal-segment-id 800 external-port 2001 external-segment-id 801 vtep-nve 1 !s ame-security-traffic permit intra-interface Build the Azure Function App Package The ASA virtual auto scale solution requires that you build an archive file: ASM_Function.zip. which delivers a set of discrete Azure functions in the form of a compressed ZIP package. See Build Azure Functions from Source Code, on page 188 for instructions on how to build the ASM_Function.zip package. These functions are as discrete as possible to carry out specific tasks, and can be upgraded as needed for enhancements and new release support. Input Parameters The following table defines the template parameters and provides an example. Once you decide on these values, you can use these parameters to create the ASA virtual device when you deploy the ARM template into your Azure subscription. See Deploy the Auto Scale ARM Template, on page 171.In the Auto scale with Azure GWLB solution, networking infrastructure is also created due to which additional input parameters have to be configured in the template. The parameter descriptions are self-explanatory. Table 22: Template Parameters Parameter Name Allowed Description Resource Values/Type Creation Type resourceNamePrefix String* (3-10 All the resources are created with New characters) name containing this prefix. Note: Use only lowercase letters. Example: asav Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 166Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Input Parameters Parameter Name Allowed Description Resource Values/Type Creation Type virtualNetworkRg String The virtual network resource group Existing name. Example: cisco-virtualnet-rg virtualNetworkName String The virtual network name (already Existing created). Example: cisco-virtualnet mgmtSubnet String The management subnet name Existing (already created). Example: cisco-mgmt-subnet insideSubnet String The inside Subnet name (already Existing created). Example: cisco-inside-subnet internalLbIp String The internal load balancer IP Existing address for the inside subnet (already created). Example: 1.2.3.4 outsideSubnet String The outside subnet name (already Existing created). Example: cisco-outside-subnet softwareVersion String The ASA virtual Version (selected Existing from drop-down during deployment). Default: 914.1.0Allowed: 914.1.0, 913.1.0 vmSize String Size of ASA virtual instance N/A (selected from drop-down during deployment). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 167Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Input Parameters Parameter Name Allowed Description Resource Values/Type Creation Type asaAdminUserName String* User name for the ASA virtual New ''admin'' user. Passwords must be 12 to 72 characters long, and must have: lowercase, uppercase, numbers, and special characters; and must have no more than 2 repeating characters. This cannot be ‘admin’. See Azure for VM administrator user name guidelines. Note There is no compliance check for this in the template. asaAdminUserPassword String* Password for the ASA virtual New administrator user. Passwords must be 12 to 72 characters long, and must have: lowercase, uppercase, numbers, and special characters; and must have no more than 2 repeating characters. Note There is no compliance check for this in the template. scalingPolicy POLICY-1 / POLICY-1: Scale-Out will be N/A POLICY-2 triggered when the average load of any ASA virtual goes beyond the Scale Out threshold for the configured duration. POLICY-2: Scale-Out will be triggered when average load of all the ASA virtual devices in the auto scale group goes beyond the Scale Out threshold for the configured duration. In both cases Scale-In logic remains the same: Scale-In will be triggered when average load of all the ASA virtual devices comes below the Scale In threshold for the configured duration. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 168Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Input Parameters Parameter Name Allowed Description Resource Values/Type Creation Type scalingMetricsList String Metrics used in making the scaling N/A decision. Allowed: CPU Default: CPU scaleInThreshold String The Scale-In threshold in percent. N/A Default: 10 When the ASA virtual metric goes below this value the Scale-In will be triggered. See Auto Scale Logic, on page 185. scaleOutThreshold String The Scale-Out threshold in percent. N/A Default: 80 When the ASA virtual metric goes above this value, the Scale-Out will be triggered. The ‘scaleOutThreshold’ should always be greater than the ‘scaleInThreshold’. See Auto Scale Logic, on page 185. minAsaCount Integer The minimum ASA virtual N/A instances available in the scale set at any given time. Example: 2 maxAsaCount Integer The maximum ASA virtual N/A instances allowed in the Scale set. Example: 10 Note The Auto Scale logic will not check the range of this variable, hence fill this carefully. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 169Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Input Parameters Parameter Name Allowed Description Resource Values/Type Creation Type metricsAverageDuration Integer Select from the drop-down. N/A This number represents the time (in minutes) over which themetrics are averaged out. If the value of this variable is 5 (i.e. 5min), when the Auto Scale Manager is scheduled it will check the past 5 minutes average of metrics and based on this it will make a scaling decision. Note Only numbers 1, 5, 15, and 30 are valid due to Azure limitations. initDeploymentMode BULK / STEP Primarily applicable for the first deployment, or when the Scale Set does not contain any ASA virtual instances. BULK: The Auto Scale Manager will try to deploy ''minAsaCount'' number of ASA virtual instances in parallel at one time. STEP: The Auto Scale Manager will deploy the ''minAsaCount'' number of ASA virtual devices one by one at each scheduled interval. configurationFile String The file path to the ASA virtual N/A configuration file. Example: https://myserver/asavconfig/asaconfig .txt *Azure has restrictions on the naming convention for new resources. Review the limitations or simply use all lowercase. Do not use spaces or any other special characters. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 170Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Auto Scale Solution Deploy the Auto Scale Solution Deploy the Auto Scale ARM Template ASA virtual auto scale for Azure using Sandwich Topology - Use the ARM template azure_asav_autoscale.json to deploy the resources required by the ASA virtual auto scale for Azure. Within a given resource group, the ARM template deployment creates the following: • Virtual Machine Scale Set (VMSS) • External Load Balancer • Internal Load Balancer • Azure Function App • Logic App • Security groups (For Data and Management interfaces) ASA virtual auto scale with Azure GWLB - Use the ARM template azure_asav_autoscale_with_GWLB.json to deploy the resources required by the ASA virtual auto scale with Azure GWLB solution. Within a given resource group, the ARM template deployment creates the following: • Virtual Machine (VM) or Virtual Machine Scale Set (VMSS) • Gateway Load Balancer • Azure Function App • Logic App • Networking Infrastructure • Security Groups and other miscellaneous components needed for deployment Before you begin • Download the ARM templates from the GitHub repository (https://github.com/CiscoDevNet/cisco-asav/ tree/master/autoscale/azure). Step 1 If you need to deploy the ASA virtual instances in multiple Azure zones, edit the ARM template based on the zones available in the Deployment region. Example: "zones": [ "1", "2", "3" ], Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 171Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Auto Scale ARM Template This example shows the “Central US” region which has 3 zones. Step 2 Edit the traffic rules required in External Load Balancer. You can add any number of rules by extending this ‘json’ array. Example: { "type": "Microsoft.Network/loadBalancers", "name": "[variables(''elbName'')]", "location": "[resourceGroup().location]", "apiVersion": "2018-06-01", "sku": { "name": "Standard" }, "dependsOn": [ "[concat(''Microsoft.Network/publicIPAddresses/'', variables(''elbPublicIpName''))]" ], "properties": { "frontendIPConfigurations": [ { "name": "LoadBalancerFrontEnd", "properties": { "publicIPAddress": { "id": "[resourceId(''Microsoft.Network/publicIPAddresses/'', variables(''elbPublicIpName''))]" } } } ], "backendAddressPools": [ { "name": "backendPool" } ], "loadBalancingRules": [ { "properties": { "frontendIPConfiguration": { "Id": "[concat(resourceId(''Microsoft.Network/loadBalancers'', variables(''elbName'')), ''/frontendIpConfigurations/LoadBalancerFrontend'')]" }, "backendAddressPool": { "Id": "[concat(resourceId(''Microsoft.Network/loadBalancers'', variables(''elbName'')), ''/backendAddressPools/BackendPool'')]" }, "probe": { "Id": "[concat(resourceId(''Microsoft.Network/loadBalancers'', variables(''elbName'')), ''/probes/lbprobe'')]" }, "protocol": "TCP", "frontendPort": "80", "backendPort": "80", "idleTimeoutInMinutes": "[variables(''idleTimeoutInMinutes'')]" }, "Name": "lbrule" } ], Note You can also edit this from the Azure portal post-deployment if you prefer not to edit this file. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 172Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Auto Scale ARM Template Step 3 Log in to the Microsoft Azure portal using your Microsoft account username and password. Step 4 Click Resource groups from the menu of services to access the Resource Groups blade. You will see all the resource groups in your subscription listed in the blade. Create a new resource group or select an existing, empty resource group; for example, ASA virtual_AutoScale. Figure 18: Azure Portal Step 5 Click Create a resource (+) to create a new resource for template deployment. The Create Resource Group blade appears. Step 6 In Search the Marketplace, type Template deployment (deploy using custom templates), and then press Enter. Figure 19: Custom Template Deployment Step 7 Click Create. Step 8 There are several options for creating a template. Choose Build your own template in editor. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 173Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Auto Scale ARM Template Figure 20: Build Your Own Template Step 9 In the Edit template window, delete all the default content and copy the contents from the updated azure_asav_autoscale.json and click Save. Figure 21: Edit Template Step 10 In next section, fill all the parameters. Refer to Input Parameters, on page 166 for details about each parameter, then click Purchase. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 174Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Auto Scale ARM Template Figure 22: ARM Template Parameters Note You can also click Edit Parameters and edit the JSON file or upload pre-filled contents. The ARM template has limited input validation capabilities, hence it is your responsibility to validate the input. Step 11 When a template deployment is successful, it creates all the required resources for the ASA virtual auto scale for Azure solution. See the resouses in the following figure. The Type column describes each resource, including the Logic App, VMSS, Load Balancers, Public IP address, etc. Figure 23: ASA Virtual Auto Scale Template Deployment Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 175Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Azure Function App Deploy the Azure Function App When you deploy the ARM template, Azure creates a skeleton Function App, which you then need to update and configure manually with the functions required for the Auto Scale Manager logic. Before you begin • Build the ASM_Function.zip package. See Build Azure Functions from Source Code, on page 188. Step 1 Go to the Function App you created when you deployed the ARM template, and verify that no functions are present. In a browser go to this URL: https://.scm.azurewebsites.net/DebugConsole For the example in Deploy the Auto Scale ARM Template, on page 171: https://asav-function-app.scm.azurewebsites.net/DebugConsole Step 2 In the file explorer navigate to site/wwwroot. Step 3 Drag-and-drop the ASM_Function.zip to the right side corner of the file explorer. Figure 24: Upload the ASA Virtual Auto Scale Functions Step 4 Once the upload is successful, all of the serverless functions should appear. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 176Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Deploy the Azure Function App Figure 25: ASA Virtual Serverless Functions Step 5 Download the PuTTY SSH client. Azure functions need to access the ASA virtual via an SSH connection. However, the opensource libraries used in the serverless code do not support the SSH key exchange algorithms used by the ASA virtual. Hence you need to download a pre-built SSH client. Download the PuTTY command-line interface to the PuTTY back end (plink.exe) from www.putty.org. Figure 26: Download PuTTY Step 6 Rename the SSH client executable file plink.exe to asassh.exe. Step 7 Drag-and-drop the asassh.exe to the right side corner of the file explorer, to the location where ASM_Function.zip was uploaded in the previous step. Step 8 Verify the SSH client is present with the function application. Refresh the page if necessary. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 177Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Fine Tune the Configuration Fine Tune the Configuration There are a few configurations available to fine tune the Auto Scale Manager or to use in debugging. These options are not exposed in the ARM template, but you can edit them under the Function App. Before you begin Note This can be edited at any time. Follow this sequence to edit the configurations. • Disable the Function App. • Wait for existing scheduled task to finish. • Edit and save the configuration. • Enable the Function App. Step 1 In the Azure portal, search for and select the ASA virtual function application. Figure 27: ASA Virtual Function Application Step 2 Configurations passed via the ARM template can also be edited here. Variable names may appear different from the ARM template, but you can easily identify the purpose of these variables from their name. Most of the options are self-explanatory from the name. For example: • Configuration Name: “DELETE_FAULTY_ASA” (Default value : YES ) During Scale-Out, a new ASA virtual instance is launched and configured via the configuration file. In case the configuration fails, based on this option, Auto Scale Manager will decide to keep that ASA virtual instance or delete it. (YES : Delete faulty ASA virtual / NO : Keep the ASA virtual instance even if the configuration fails). • In the Function App settings, all the variables (including variables containing a secure string like ‘password’) can be seen in clear text format by users that have access to the Azure subscription. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 178Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Configure the IAM Role in the Virtual Machine Scale Set If users have any security concerns with this (for example, if an Azure subscription is shared among users with lower privilages within the organization), a user can make use of Azure’s Key Vault service to protect passwords. Once this is configured, instead of providing a clear text ‘password’ in function settings, a user has to provide a secure identifier generated by the key vault where the password is stored. Note Search the Azure documentation to find the best practices to secure your application data. Configure the IAM Role in the Virtual Machine Scale Set Azure Identity and Access Management (IAM) is used as a part of Azure Security and Access Control to manage and control a user’s identity. Managed identities for Azure resources provides Azure services with an automatically managed identity in Azure Active Directory. This allows the Function App to control the VirtualMachine Scale Sets (VMSS) without explicit authentication credentials. Step 1 In the Azure portal, go to the VMSS. Step 2 Click Access control (IAM). Step 3 Click Add to add a role assignment Step 4 From the Add role assignment drop-down, choose Contributor. Step 5 From the Assign access to drop-down, choose Function App. Step 6 Select the ASA virtual function application. Figure 28: AIM Role Assignment Step 7 Click Save. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 179Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Update Security Groups Note You should also verify that there are no ASA virtual instances launched yet. Update Security Groups The ARM template creates two security groups, one for theManagement interface, and one for data interfaces. The Management security group will allow only traffic required for ASA virtual management activities. However, the data interface security group will allow all traffic. Fine tune the security group rules based on the topology and application needs of your deployments. Note The data interface security group should allow, at a minimum, SSH traffic from the load balancers. Update the Azure Logic App The Logic App acts as the orchestrator for the Autoscale functionality. The ARM template creates a skeleton Logic App, which you then need to update manually to provide the information necessary to function as the auto scale orchestrator. Step 1 From the repository, retrieve the file LogicApp.txt to the local system and edit as shown below. Important Read and understand all of these steps before proceeding. These manual steps are not automated in the ARM template so that only the Logic App can be upgraded independently later in time. a) Required: Find and replace all the occurrences of “SUBSCRIPTION_ID” with your subscription ID information. b) Required: Find and replace all the occurrences of “RG_NAME” with your resource group name. c) Required: Find and replace all of the occurrences of “FUNCTIONAPPNAME” to your function app name. The following example shows a few of these lines in the LogicApp.txt file: "AutoScaleManager": { "inputs": { "function": { "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/AutoScaleManager" } . . }, "Deploy_Changes_to_ASA": { "inputs": { "body": "@body(''AutoScaleManager'')", "function": { "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/DeployConfiguration" Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 180Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Update the Azure Logic App } . . "DeviceDeRegister": { "inputs": { "body": "@body(''AutoScaleManager'')", "function": { "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/DeviceDeRegister" } }, "runAfter": { "Delay_For_connection_Draining": [ d) (Optional) Edit the trigger interval, or leave the default value (5). This is the time interval at which the Autoscale functionality is periodically triggered. The following example shows these lines in the LogicApp.txt file: "triggers": { "Recurrence": { "conditions": [], "inputs": {}, "recurrence": { "frequency": "Minute", "interval": 5 }, e) (Optional) Edit the time to drain, or leave the default value (5). This is the time interval to drain existing connections from the ASA virtual before deleting the device during the Scale-In operation. The following example shows these lines in the LogicApp.txt file: "actions": { "Branch_based_on_Scale-In_or_Scale-Out_condition": { "actions": { "Delay_For_connection_Draining": { "inputs": { "interval": { "count": 5, "unit": "Minute" } f) (Optional) Edit the cool down time, or leave the default value (10). This is the time to perform NO ACTION after the Scale-Out is complete. The following example shows these lines in the LogicApp.txt file: "actions": { "Branch_based_on_Scale-Out_or_Invalid_condition": { "actions": { "Cooldown_time": { "inputs": { "interval": { "count": 10, "unit": "Second" } Note These steps can also be done from the Azure portal. Consult the Azure documentation for more information. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 181Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Update the Azure Logic App Step 2 Go to the Logic App code view, delete the default contents and paste the contents from the edited LogicApp.txt file, and click Save. Figure 29: Logic App Code View Step 3 When you save the Logic App, it is in a ''Disabled'' state. Click Enable when you want to start the Auto Scale Manager. Figure 30: Enable Logic App Step 4 Once enabled, the tasks start running. Click the ''Running'' status to see the activity. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 182Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Upgrade the ASA virtual Figure 31: Logic App Running Status Step 5 Once the Logic App starts, all the deployment-related steps are complete. Step 6 Verify in the VMSS that ASA virtual instances are being created. Figure 32: ASA Virtual Instances Running In this example, three ASA virtual instances are launched because ''minAsaCount'' was set to ''3'' and ''initDeploymentMode'' was set to ''BULK'' in the ARM template deployment. Upgrade the ASA virtual The ASA virtual upgrade is supported only in the form of an image upgrade of virtual machine scale set (VMSS). Hence, you upgrade the ASA virtual through the Azure REST API interface. Note You can use any REST client to upgrade the ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 183Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Upgrade the ASA virtual Before you begin • Obtain the new ASA virtual image version available in market place (example: 914.001). • Obtain the SKU used to deploy original scale set (example: asav-azure-byol ). • Obtain the Resource Group and the virtual machine scale set name. Step 1 In a browser go to the following URL: https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets/update#code-try-0 Step 2 Enter the details in the Parameters section. Figure 33: Upgrade the ASA virtual Step 3 Enter the JSON input containing the new ASA virtual image version, SKU, and trigger RUN in the Body section. { "properties": { "virtualMachineProfile": { "storageProfile": { "imageReference": { "publisher": "cisco", "offer": "cisco-asav", "sku": "asav-azure-byol", "version": "650.32.0" } }, } } } Step 4 A successful response from Azure means that the VMSS has accepted the change. The new image will be used in the new ASA virtual instances which will get launched as part of Scale-Out operation. • Existing ASA virtual instances will continue to use the old software image while they exist in a scale set. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 184Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale Logic • You can override the above behavior and upgrade the existing ASA virtual instances manually. To do this, click the Upgrade button in the VMSS. It will reboot and upgrade the selected ASA virtual instances. You must reregister and reconfigure these upgraded ASA virtual instances manually. Note that this method is NOT recommended. Auto Scale Logic Scale-Out Logic • POLICY-1: Scale-Out will be triggered when the average load of any ASA virtual goes beyond the Scale-Out threshold for the configured duration. • POLICY-2: Scale-Out will be triggered when average load of all of the ASA virtual devices go beyond Scale-Out threshold for the configured duration. Scale-In Logic • If the CPU utilization of all of the ASA virtual devices goes below the configured Scale-In threshold for the configured duration. Notes • Scale-In/Scale-Out occurs in steps of 1 (i.e. only 1 ASA virtual will be scaled in/out at a time). • The above logic is based on the assumption that the load balancer will try to equally distribute connections across all ASA virtual devices, and on an average all ASA virtual devices should be loaded equally. Auto Scale Logging and Debugging Each component of the serverless code has its own logging mechanism. In addition, logs are published to application insight. • Logs of individual Azure functions can be viewed. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 185Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Auto Scale Guidelines and Limitations Figure 34: Azure Function Logs • Similar logs for each run of the Logic App and its individual components can be viewed. Figure 35: Logic App Run Logs • If needed, any running task in the Logic App can be stopped/terminated at any time. However, currently running ASA virtual devices getting launched/terminated will be in an inconsistent state. • The time taken for each run/individual task can be seen in the Logic App. • The Function App can be upgraded at any time by uploading a new zip. Stop the Logic App and wait for all tasks to complete before upgrading the Function App. Auto Scale Guidelines and Limitations Be aware of the following guidelines and limitations when deploying the ASA virtual auto scale for Azure: • Scaling decisions are based on CPU utilization. • The ASA virtual Management interface is configured to have public IP address. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 186Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Troubleshooting • Only IPv4 is supported. • The ARM template has limited input validation capabilities, hence it is your responsibility to provide the correct input validation. • The Azure administrator can see sensitive data (such as admin login credentials and passwords) in plain text format inside Function App environment. You can use the Azure Key Vault service to secure sensitive data. • Any changes in configuration won’t be automatically reflected on already running instances. Changes will be reflected on upcoming devices only. Any such changes should be manually pushed to already existing devices. • If you are facing issues while manually updating the configuration on existing instances, we recommend removing these instances from the Scaling Group and replacing them with new instances. Troubleshooting The following are common error scenarios and debugging tips for the ASA virtual auto scale for Azure: • Unable to SSH into the ASA virtual: Check if a complex password is passed to the ASA virtual via the template; check if Security Groups allow SSH connections. • Load Balancer Health check failure: Check if the ASA virtual responds to SSH on data interfaces; check Security Group settings. • Traffic issues: Check Load Balancer rules, NAT rules / Static routes configured in ASA virtual; check Azure virtual network / subnets / gateway details provided in the template and Security Group rules. • Logic App failed to access VMSS: Check if the IAM role configuration in VMSS is correct. • Logic App runs for very long time: Check SSH access on scaled-out ASA virtual devices; check the state of the ASA virtual devices in Azure VMSS. • Azure Function throwing error related to subscription ID : Verify that you have a default subscription selected in your account. • Failure of Scale-In operation: Sometimes, Azure takes a considerably long time to delete an instance in such situations, Scale-in operation may time out and report an error; but eventually the instance, will get deleted. • Before doing any configuration change, make sure to disable the logic application and wait for all the running tasks to complete. The following are troubleshooting tips if you encounter any issues during ASA virtual auto scale with Azure GWLB deployment: • Check the ELB-GWLB association. • Check the health probe status in the GWLB. • Check VXLAN configuration by verifying the traffic flow at the physical and logical interfaces of the ASA virtual. • Check security group rules. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 187Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Build Azure Functions from Source Code Build Azure Functions from Source Code System Requirements • Microsoft Windows desktop/laptop. • Visual Studio (tested with Visual studio 2019 version 16.1.3) Note Azure functions are written using C#. • The "Azure Development" workload needs to be installed in Visual Studio. Build with Visual Studio 1. Download the ''code'' folder to the local machine. 2. Navigate to the folder ''ASAAutoScaling''. 3. Open the project file ''ASAAutoScaling.csproj'' in Visual Studio. 4. Use Visual Studio standard procedure to Clean and Build. Figure 36: Visual Studio Build 5. Once the build is compiled successfully, navigate to the \bin\Release\netcoreapp2.1 folder. 6. Select all the contents, click Send to > Compressed (zipped) folder, and save the ZIP file as ASM_Function.zip. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 188Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Build Azure Functions from Source Code Figure 37: Build ASM_Function.zip Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 189Deploy the ASA Virtual Auto Scale Solution on Microsoft Azure Build Azure Functions from Source Code Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 190C H A P T E R 8 Deploy the ASA Virtual On the Rackspace Cloud You can deploy the ASA virtual on the Rackspace cloud. Important Beginningwith 9.13(1), any ASA virtual license now can be used on any supported ASA virtual vCPU/memory configuration. This allows ASA virtual customers to run on a wide variety of VM resource footprints. • Overview, on page 191 • Prerequisites, on page 192 • Rackspace Cloud Network, on page 193 • Rackspace Day 0 Configuration, on page 194 • Deploy the ASA Virtual , on page 196 • CPU Usage and Reporting, on page 197 Overview Rackspace is a leading provider of expertise and managed services across all the major public and private cloud technologies. The Rackspace Cloud is a set of cloud computing products and services billed on a utility computing basis. You can deploy the ASA virtual for Rackspace as a virtual appliance in the Rackspace cloud. This chapter explains how to install and configure a single instance ASA virtual appliance. Instance types in the Rackspace Cloud are referred to as flavors. The term flavor refers to a server''s combination of RAM size, vCPUs, network throughput (RXTX factor), and disk space. The following table lists Rackspace flavors suitable for ASA virtual deployment. Table 23: Rackspace Supported Flavors Flavor Attributes Aggregate Bandwidth vCPUs Memory (GB) general 1-2 2 2 400 Mbps general 1-4 4 4 800 Mbps general 1-8 8 8 1.6 Gbps Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 191Deploy the ASA Virtual On the Rackspace Cloud Prerequisites Flavor Attributes Aggregate Bandwidth vCPUs Memory (GB) compute 1-4 2 3.75 312.5 Mbps compute 1-8 4 7.5 625 Mbps compute 1-15 8 15 1.3 Gbps memory 1-15 2 15 625 Mbps memory 1-15 4 30 1.3 Gbps memory 1-15 8 60 2.5 Gbps About Rackspace Flavors Rackspace Virtual Cloud Server Flavors fall into the following classes: • General Purpose v1 • Useful for a range of use cases, from general-purpose workloads to high performance websites. • The vCPUs are oversubscribed and “burstable”; in other words, there are more vCPUs allocated to the Cloud Servers on a physical host than there are physical CPU threads. • Compute v1 • Optimized for web servers, application servers, and other CPU-intensive workloads. • The vCPUs are “reserved”; in other words, there are never more vCPUs allocated to the Cloud Servers on a physical host than there are physical CPU threads on that host. • Memory v1 • Recommended for memory-intensive workloads. • I/O v1 • Ideal for high performance applications and databases that benefit from fast disk I/O. Prerequisites • Create a Rackspace account. All Rackspace Public Cloud accounts are set to the Managed Infrastructure service level by default. You can upgrade to the Managed Operations service level inside the Cloud Control Panel. At the top of the Cloud Control Panel, click your account username and then select Upgrade Service Level. • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Licensing for the ASA Virtual, on page 1. • Interface requirements: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 192Deploy the ASA Virtual On the Rackspace Cloud Rackspace Cloud Network • Management interface • Inside and outside interfaces • (Optional) Additional subnet (DMZ) • Communications paths: • Management interface—Used to connect the ASA virtual to the ASDM; can’t be used for through traffic. • Inside interface (required)—Used to connect the ASA virtual to inside hosts. • Outside interface (required)—Used to connect the ASA virtual to the public network. • DMZ interface (optional)—Used to connect the ASA virtual to the DMZ network. • For ASA and ASA virtual system compatibility and requirements, see Cisco Secure Firewall ASA Compatibility. Rackspace Cloud Network Your cloud configuration can include several kinds of networks, connected as appropriate for your needs. You can manage the networking capabilities of your cloud servers in many of the same ways you manage your other networks. Your ASA virtual deployment will interact primarily with three types of virtual networks in the Rackspace Cloud: • PublicNet―Connects cloud infrastructure components such as cloud servers, cloud load balancers, and network appliances to the Internet. • Use PublicNet to connect the ASA virtual to the Internet. • The ASA virtual attaches to this network via the Management0/0 interface. • PublicNet is dual-stacked for IPv4 and IPv6. When you create a server with PublicNet, your server receives an IPv4 address and an IPv6 address by default. • ServiceNet―An internal, IPv4-only multi-tenant network within each Rackspace cloud region. • ServiceNet is optimized to carry traffic across servers within your configuration (east-west traffic). • It provides servers with no-cost access to regionalized services such as Cloud Files, Cloud Load Balancers, Cloud Databases, and Cloud Backup. • The networks 10.176.0.0/12 and 10.208.0.0/12 are reserved for ServiceNet. Any servers that have ServiceNet connectivity will be provisioned with an IP address from one of these networks. • The ASA virtual attaches to this network via the Gigabit0/0 interface. • Private Cloud Networks―Cloud Networks lets you create and manage secure, isolated networks in the cloud. • These networks are fully single tenant, and you have complete control over the network topology, IP addressing (IPv4 or IPv6), and which Cloud Servers are attached. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 193Deploy the ASA Virtual On the Rackspace Cloud Rackspace Day 0 Configuration • Cloud Networks are regional in scope, and you can attach them to any of your Cloud Servers in a given region. • You can create and manage Cloud Networks via an API or by using the Rackspace Cloud Control Panel. The ASA virtual attaches to these networks via Gigabit0/1 through Gigabit0/8 interfaces. Rackspace Day 0 Configuration When a VM is deployed in the Rackspace Cloud, a CD-ROM device containing files with Rackspace provisioning information is attached to the VM. The provisioning information includes: • The hostname • IP addresses for required interfaces • Static IP routes • Username and password (Optional SSH public key) • DNS servers • NTP servers These files are read during the initial deployment and ASA configuration is generated. ASA Virtual Hostname By default, the ASA virtual hostname is the name you assign to your cloud server when you begin to build your ASA virtual. hostname rackspace-asav The ASA hostname configuration will only accept a hostname that complies with RFCs 1034 and 1101: • Must start and end with a letter or digit. • Interior characters must be a letter, a digit or a hyphen. Note The ASA virtual will alter the cloud server name to comply with these rules while making it as close as possible to the original cloud server name. It will drop special characters from the beginning and end of the cloud server name, and replace non-compliant interior characters with a hyphen. For example, a cloud server named ASAv-9.13.1.200 will have hostname ASAv-9-13-1-200. Interfaces Interfaces are configured in the following manner: • Management0/0 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 194Deploy the ASA Virtual On the Rackspace Cloud Rackspace Day 0 Configuration • Named ‘outside’ because it is connected to the PublicNet. • Rackspace assigns both IPv4 and IPv6 public addresses to the PublicNet interface. • Gigabit0/0 • Named ‘management’ since it is connected to the ServiceNet. • Rackspace assigns an IPv4 address from the ServiceNet subnet for the Rackspace region. • Gigabit0/1 through Gigabit0/8 • Named ‘inside’, ‘inside02’, ‘inside03’, etc. because they are connected to private Cloud Networks. • Rackspace assigns an IP address from the Cloud Network subnet. The interface configuration for an ASA virtual with 3 interfaces would look something like this: interface GigabitEthernet0/0 nameif management security-level 0 ip address 10.176.5.71 255.255.192.0 ! interface GigabitEthernet0/1 nameif inside security-level 100 ip address 172.19.219.7 255.255.255.0 ! interface Management0/0 nameif outside security-level 0 ip address 162.209.103.109 255.255.255.0 ipv6 address 2001:4802:7800:1:be76:4eff:fe20:1763/64 Static Routes Rackspace provisions the following static IP routes: • Default IPv4 route via PublicNet interface (outside). • Default IPv6 route via PublicNet interface. • Infrastructure subnet routes on ServiceNet interface (management). route outside 0.0.0.0 0.0.0.0 104.130.24.1 1 ipv6 route outside ::/0 fe80::def route management 10.176.0.0 255.240.0.0 10.176.0.1 1 route management 10.208.0.0 255.240.0.0 10.176.0.1 1 Login Credentials A username ‘admin’ is created with a password created by Rackspace. A public key for user ‘admin’ is created if the cloud server is deployed with a Rackspace Public Key. username admin password privilege 15 username admin attributes Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 195Deploy the ASA Virtual On the Rackspace Cloud Deploy the ASA Virtual ssh authentication publickey The Day0 SSH configuration: • SSH via PublicNet interface (outside) is enabled for IPv4 and IPv6. • SSH via ServiceNet interface (management) is enabled for IPv4 . • Configure stronger key exchange group at request of Rackspace. aaa authentication ssh console LOCAL ssh 0 0 management ssh 0 0 outside ssh ::0/0 outside ssh version 2 ssh key-exchange group dh-group14-sha1 DNS and NTP Rackspace provides two IPv4 service addresses to be used for DNS and NTP. dns domain-lookup outside dns server-group DefaultDNS name-server 69.20.0.164 name-server 69.20.0.196 ntp server 69.20.0.164 ntp server 69.20.0.196 Deploy the ASA Virtual You can deploy the ASA virtual as a virtual appliance in the Rackspace Cloud. This procedure shows you how to install a single instance ASA virtual appliance. Before you begin Review the Rackspace Day 0 Configuration, on page 194 topic for a description of the configuration parameters that the Rackspace Cloud enables for a successful ASA virtual deployment, including hostname requirement, interface provisioning, and networking information. Step 1 On the Rackspace mycloud portal, go to SERVERS > CREATE RESOURCES > Cloud Server. Step 2 On the Create Server page, enter your Server Details: a) Enter the name for your ASA virtual machine in the Server Name field. b) Choose your region from the Region drop-down list. Step 3 Under Image, choose Linux/Appliances > ASAv > Version. Note You would typically choose the most recent supported version when deploying a new ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 196Deploy the ASA Virtual On the Rackspace Cloud CPU Usage and Reporting Step 4 Under Flavor, choose a Flavor Class that fits your resource needs; see Table 23: Rackspace Supported Flavors, on page 191 for a list of suitable VMs. Important Beginning with 9.13(1), the minimummemory requirement for the ASA virtual is 2GB.When deploying an ASA virtual with more than 1 vCPU, the minimum memory requirement for the ASA virtual is 4GB. Step 5 (Optional) Under Advanced Options, configure an SSH key. See Managing access with SSH keys for complete information on SSH keys in the Rackspace Cloud. Step 6 Review any applicable Recommended Installs and Itemized Charges for your ASA virtual, then click Create Server. The root admin password displays. Copy the password, then dismiss the dialog. Step 7 After you create the server, the server details page displays. Wait for the server to show an active status. This usually takes a few minutes. What to do next • Connect to the ASA virtual. • Continue configuration using CLI commands available for input via SSH or use ASDM. See Start ASDM for instructions for accessing the ASDM. CPU Usage and Reporting The CPU Utilization report summarizes the percentage of the CPU used within the time specified. Typically, the Core operates on approximately 30 to 40 percent of total CPU capacity during nonpeak hours and approximately 60 to 70 percent capacity during peak hours. vCPU Usage in the ASA Virtual The ASA virtual vCPU usage shows the amount of vCPUs used for the data path, control point, and external processes. The Rackspace reported vCPU usage includes the ASA virtual usage as described plus: • ASA virtual idle time • %SYS overhead used for the ASA virtual machine • Overhead of moving packets between vSwitches, vNICs, and pNICs. This overhead can be quite significant. CPU Usage Example The show cpu usage command can be used to display CPU utilization statistics. Example Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 197Deploy the ASA Virtual On the Rackspace Cloud Rackspace CPU Usage Reporting Ciscoasa#show cpu usage CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1% The following is an example in which the reported vCPU usage is substantially different: • ASA Virtual reports: 40% • DP: 35% • External Processes: 5% • ASA (as ASA Virtual reports): 40% • ASA idle polling: 10% • Overhead: 45% The overhead is used to perform hypervisor functions and to move packets between NICs and vNICs using the vSwitch. Rackspace CPU Usage Reporting In addition to viewing CPU, RAM, and disk space configuration information for available Cloud Servers, you can also view disk, I/O, and networking information. Use this information to help you decide which Cloud Server is right for your needs. You can view the available servers through either the command-line nova client or the Cloud Control Panel interface. On the command line, run the following command: nova flavor-list All available server configurations are displayed. The list contains the following information: • ID - The server configuration ID • Name - The configuration name, labeled by RAM size and performance type • Memory_MB - The amount of RAM for the configuration • Disk - The size of the disk in GB (for general purpose Cloud Servers, the size of the system disk) • Ephemeral - The size of the data disk • Swap - The size of the swap space • VCPUs - The number of virtual CPUs associated with the configuration • RXTX_Factor - The amount of bandwidth, in Mbps, allocated to the PublicNet ports, ServiceNet ports, and isolated networks (cloud networks) attached to a server • Is_Public - Not used ASA Virtual and Rackspace Graphs There are differences in the CPU % numbers between the ASA Virtual and Rackspace: • The Rackspace graph numbers are always higher than the ASA Virtual numbers. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 198Deploy the ASA Virtual On the Rackspace Cloud ASA Virtual and Rackspace Graphs • Rackspace calls it %CPU usage; the ASA Virtual calls it %CPU utilization. The terms “%CPU utilization” and “%CPU usage” mean different things: • CPU utilization provides statistics for physical CPUs. • CPU usage provides statistics for logical CPUs, which is based on CPU hyperthreading. But because only one vCPU is used, hyperthreading is not turned on. Rackspace calculates the CPU % usage as follows: Amount of actively used virtual CPUs, specified as a percentage of the total available CPUs This calculation is the host view of the CPU usage, not the guest operating system view, and is the average CPU utilization over all available virtual CPUs in the virtual machine. For example, if a virtual machine with one virtual CPU is running on a host that has four physical CPUs and the CPU usage is 100%, the virtual machine is using one physical CPU completely. The virtual CPU usage calculation is Usage in MHz / number of virtual CPUs x core frequency Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 199Deploy the ASA Virtual On the Rackspace Cloud ASA Virtual and Rackspace Graphs Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 200C H A P T E R 9 Deploy the ASA Virtual Using Hyper-V You can deploy the ASA virtual using Microsoft Hyper-V. Important Beginning with 9.13(1), the minimum memory requirement for the ASA virtual is 2GB. If your current ASA virtual runs with less than 2GB of memory, you cannot upgrade to 9.13(1) from an earlier version without increasing the memory of your ASA virtual machine. You can also redeploy a new ASA virtual machine with version 9.13(1). • Overview, on page 201 • Guidelines and Limitations, on page 202 • Prerequisites, on page 203 • Prepare the Day 0 Configuration File, on page 204 • Deploy the ASA Virtual with the Day 0 Configuration File Using the Hyper-V Manager, on page 205 • Deploy the ASA Virtual on Hyper-V Using the Command Line, on page 206 • Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager, on page 207 • Add a Network Adapter from the Hyper-V Manager, on page 214 • Modify the Network Adapter Name, on page 216 • MAC Address Spoofing, on page 217 • Configure SSH, on page 218 • CPU Usage and Reporting, on page 218 Overview You can deploy Hyper-V on a standalone Hyper-V server or through the Hyper-V Manager. For instructions to install using the Powershell CLI commands, see Install the ASA virtual on Hyper-V Using the Command Line, page 46. For instructions to install using the Hyper-V Manager, see Install the ASA virtual on Hyper-V Using the Hyper-V Manager, page 46. Hyper-V does not provide a serial console option. You can manage Hyper-V through SSH or ASDMover themanagement interface. See Configuring SSH, page 54 for information to set up SSH. The following figure shows the recommended topology for the ASA virtual in Routed Firewall Mode. There are three subnets set up in Hyper-V for the ASA virtual—management, inside, and outside. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 201Deploy the ASA Virtual Using Hyper-V Guidelines and Limitations Figure 38: Recommended Topology for the ASA Virtual in Routed Firewall Mode Guidelines and Limitations • Platform Support • Cisco UCS B-Series servers • Cisco UCS C-Series servers • Hewlett Packard Proliant DL160 Gen8 • OS Support • Windows Server 2019 • Native Hyper-V Note The ASA virtual should run onmost modern, 64-bit high-powered platforms used for virtualization today. • File format Supports the VHDX format for initial deployment of the ASA virtual on Hyper-V. • Day 0 configuration Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 202Deploy the ASA Virtual Using Hyper-V Prerequisites You create a text file that contains the ASA CLI configuration commands that you need. See Prepare the Day 0 Configuration File for the procedure. • Firewall Transparent Mode with Day 0 configuration The configuration line ‘firewall transparent’ must be at the top of the day 0 configuration file; if is appears anywhere else in the file, you could experience erratic behavior. See Prepare the Day 0 Configuration File for the procedure. • Failover The ASA virtual on Hyper-V supports Active/Standby failover. For Active/Standby failover in both routed mode and transparent mode you must enable MAC Address spoofing on all the virtual network adapters. See Configure MAC Address Spoofing Using the Hyper-V Manager. For transparent mode in the standalone ASA virtual, the management interface should not have theMAC address spoofing enabled because the Active/Standby failover is not supported. • Hyper-V supports up to eight interfaces. Management 0/0 and GigabitEthernet 0/0 through 0/6. You can use GigabitEthernet as a failover link. • VLANs Use the Set-VMNetworkAdapterVLan Hyper-V Powershell command to set VLANs on an interface in trunk mode. You can set the NativeVlanID for the management interface as a particular VLAN or ‘0’ for no VLAN. Trunk mode is not persistent across Hyper-V host reboots. You must reconfigure trunk mode after every reboot. • Legacy network adapters are not supported. • Generation 2 virtual machines are not supported. • Microsoft Azure is not supported. Prerequisites • Install Hyper-V on MS Windows 2012. • Create the Day 0 configuration text file if you are using one. You must add the Day 0 configuration before the ASA virtual is deployed for the first time; otherwise, you must perform a write erase from the ASA virtual to use the Day 0 configuration. See Prepare the Day 0 Configuration File for the procedure. • Download the ASA virtual VHDX file from Cisco.com. http://www.cisco.com/go/asa-software Note A Cisco.com login and Cisco service contract are required. • Hyper-V switch configured with at least three subnets/VLANs. • For Hyper-V system requirements, see Cisco Secure Firewall ASA Compatibility. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 203Deploy the ASA Virtual Using Hyper-V Prepare the Day 0 Configuration File Prepare the Day 0 Configuration File You can prepare a Day 0 configuration file before you launch the ASA virtual. This file is a text file that contains the ASA virtual configuration that will be applied when the ASA virtual is launched. This initial configuration is placed into a text file named “day0-config” in a working directory you chose, and is manipulated into a day0.iso file that is mounted and read on first boot. At the minimum, the Day 0 configuration file must contain commands that will activate the management interface and set up the SSH server for public key authentication, but it can also contain a complete ASA configuration. The day0.iso file (either your custom day0.iso or the default day0.iso) must be available during first boot. Before you begin We are using Linux in this example, but there are similar utilities for Windows. • To automatically license the ASA virtual during initial deployment, place the Smart Licensing Identity (ID) Token that you downloaded from the Cisco Smart Software Manager in a text file named ‘idtoken’ in the same directory as the Day 0 configuration file. • If you want to deploy the ASA virtual in transparent mode, you must use a known running ASA config file in transparent mode as the Day 0 configuration file. This does not apply to a Day 0 configuration file for a routed firewall. • You must add the Day 0 configuration file before you boot the ASA virtual for the first time. If you decide you want to use a Day 0 configuration after you have initially booted the ASA virtual, you must execute a write erase command, apply the day 0 configuration file, and then boot the ASA virtual. Step 1 Enter the CLI configuration for the ASA virtual in a text file called “day0-config”. Add interface configurations for the three interfaces and any other configuration you want. The fist line should begin with the ASA version. The day0-config should be a valid ASA configuration. The best way to generate the day0-config is to copy the desired parts of a running config from an existing ASA or ASA virtual. The order of the lines in the day0-config is important and should match the order seen in an existing show run command output. Example: ASA Version 9.5.1 ! interface management0/0 nameif management security-level 100 ip address 192.168.1.2 255.255.255.0 no shutdown interface gigabitethernet0/0 nameif inside security-level 100 ip address 10.1.1.2 255.255.255.0 no shutdown interface gigabitethernet0/1 nameif outside security-level 0 ip address 198.51.100.2 255.255.255.0 no shutdown http server enable http 192.168.1.0 255.255.255.0 management crypto key generate rsa modulus 1024 username AdminUser password paSSw0rd Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 204Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual with the Day 0 Configuration File Using the Hyper-V Manager ssh 192.168.1.0 255.255.255.0 management aaa authentication ssh console LOCAL Step 2 (Optional) Download the Smart License identity token file issued by the Cisco Smart SoftwareManager to your computer. Step 3 (Optional) Copy the ID token from the download file and put it a text file that only contains the ID token. Step 4 (Optional) For automated licensing during initial ASA virtual deployment, make sure the following information is in the day0-config file: • Management interface IP address • (Optional) HTTP proxy to use for Smart Licensing • A route command that enables connectivity to the HTTP proxy (if specified) or to tools.cisco.com • A DNS server that resolves tools.cisco.com to an IP address • Smart Licensing configuration specifying the ASA virtual license you are requesting • (Optional) A unique host name to make the ASA virtual easier to find in CSSM Step 5 Generate the virtual CD-ROM by converting the text file to an ISO file: stack@user-ubuntu:-/KvmAsa$ sudo genisoimage -r -o day0.iso day0-config idtoken I: input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 252 Total directory bytes: 0 Path table size (byptes): 10 Max brk space used 0 176 extents written (0 MB) stack@user-ubuntu:-/KvmAsa$ The Identity Token automatically registers the ASA virtual with the Smart Licensing server. Step 6 Repeat Steps 1 through 5 to create separate default configuration files with the appropriate IP addresses for each ASA virtual you want to deploy. Deploy the ASA Virtual with the Day 0 Configuration File Using the Hyper-V Manager After you set up the Day 0 configuration file (Prepare the Day 0 Configuration File), you can deploy it using the Hyper-V Manager. Step 1 Go to Server Manager > Tools > Hyper-V Manager. Step 2 Click Settings on the right side of the Hyper-V Manager. The Settings dialog box opens. Under Hardware on the left, click IDE Controller 1. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 205Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Command Line Figure 39: Hyper-V Manager Step 3 Under Media in the right pane, select the Image file radio button, and then browse to the directory where you keep your Day 0 ISO configuration file, and then click Apply. When you boot up your ASA virtual for the first time, it will be configured based on what is in the Day 0 configuration file. Deploy the ASA Virtual on Hyper-V Using the Command Line You can install the ASA virtual on Hyper-V through the Windows Powershell command line. If you are on a standalone Hyper-V server, you must use the command line to install Hyper-V. Step 1 Open a Windows Powershell. Step 2 Deploy the ASA virtual: Example: new-vm -name $fullVMName -MemoryStartupBytes $memorysize -Generation 1 -vhdpath C:\Users\jsmith.CISCO\ASAvHyperV\$ImageName.vhdx -Verbose Step 3 Depending on your ASA virtual model, change the CPU count from the default of 1. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 206Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Example: set-vm -Name $fullVMName -ProcessorCount 4 Step 4 (Optional) Change the interface name to something that makes sense to you. Example: Get-VMNetworkAdapter -VMName $fullVMName -Name "Network Adapter" | Rename-vmNetworkAdapter -NewName mgmt Step 5 (Optional) Change the VLAN ID if your network requires it. Example: Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1151 -Access -VMNetworkAdapterName "mgmt" Step 6 Refresh the interface so that Hyper-V picks up the changes. Example: Connect-VMNetworkAdapter -VMName $fullVMName -Name "mgmt" -SwitchName 1151mgmtswitch Step 7 Add the inside interface. Example: Add-VMNetworkAdapter -VMName $fullVMName -name "inside" -SwitchName 1151mgmtswitch Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1552 -Access -VMNetworkAdapterName "inside" Step 8 Add the outside interface. Example: Add-VMNetworkAdapter -VMName $fullVMName -name "outside" -SwitchName 1151mgmtswitch Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1553 -Access -VMNetworkAdapterName “outside" Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager You can use the Hyper-V Manager to install the ASA virtual on Hyper-V. Step 1 Go to Server Manager > Tools > Hyper-V Manager. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 207Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 40: Server Manager Step 2 The Hyper-V Manager appears. Figure 41: Hyper-V Manager Step 3 From the list of hypervisors on the right, right-click the desired Hypervisor in the list and choose New > Virtual Machine. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 208Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 42: Launch New Virtual Machine Step 4 The New Virtual Machine Wizard appears. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 209Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 43: New Virtual Machine Wizard Step 5 Working through the wizard, specify the following information: • Name and location of your ASA virtual • Generation of your ASA virtual The only Generation supported for the ASA virtual is Generation 1. • Amount of memory for your ASA virtual (1024 MB for 100Mbps, 2048 MB for 1Gbps, 8192 MB for 2Gbps) • Network adapter (connect to the virtual switch you have already set up) • Virtual hard disk and location Choose Use an existing virtual hard disk and browse to the location of your VHDX file. Step 6 Click Finish and a dialog box appears showing your ASA virtual configuration. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 210Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 44: New Virtual Machine Summary Step 7 If your ASA virtual has four vCPUs, you must modify the vCPU value before starting up your ASA virtual. Click Settings on the right side of the Hyper-V Manager. The Settings dialog box opens. Under the Hardware menu on the left, click Processor to get to the Processor pane. Change the Number of virtual processors to 4. The 100Mbps and 1Gbps entitlements have one vCPU, and the 2Gbps entitlement has four vCPUs. The default is 1. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 211Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 45: Virtual Machine Processor Settings Step 8 In the Virtual Machines menu, connect to your ASA virtual by right-clicking on the name of the ASA virtual in the list and clicking Connect. The console opens with the stopped ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 212Deploy the ASA Virtual Using Hyper-V Deploy the ASA Virtual on Hyper-V Using the Hyper-V Manager Figure 46: Connect to the Virtual Machine Step 9 In the Virtual Machine Connection console window, click the turquoise Start button to start the ASA virtual. Figure 47: Start the Virtual Machine Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 213Deploy the ASA Virtual Using Hyper-V Add a Network Adapter from the Hyper-V Manager Step 10 The boot progress of the ASA virtual is shown in the console. Figure 48: Virtual Machine Boot Progress Add a Network Adapter from the Hyper-V Manager A newly deployed ASA virtual has only one network adapter. You need to add at least two more network adapters. In this example, we are adding the inside network adapter. Before you begin • The ASA virtual must be in the off state. Step 1 Click Settings on the right side of the Hyper-V Manager. The Settings dialog box opens. Under the Hardware menu on the left, click Add Hardware, and then click Network Adapter. Note Do NOT use the Legacy Network Adapter. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 214Deploy the ASA Virtual Using Hyper-V Add a Network Adapter from the Hyper-V Manager Figure 49: Add Network Adapter Step 2 After the network adapter has been added, you can modify the virtual switch and other features. You can also set the VLAN ID here if needed. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 215Deploy the ASA Virtual Using Hyper-V Modify the Network Adapter Name Figure 50: Modify Network Adapter Settings Modify the Network Adapter Name In Hyper-V, a generic network interface name is used, ‘Network Adapter.’ This can be confusing if the network interfaces all have the same name. You cannot modify the name using the Hyper-V Manager. You must modify it using the Windows Powershell commands. Step 1 Open a Windows Powershell. Step 2 Modify the network adapters as needed. Example: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 216Deploy the ASA Virtual Using Hyper-V MAC Address Spoofing $NICRENAME= Get-VMNetworkAdapter -VMName ''ASAvVM'' -Name "Network Adapter" rename-VMNetworkAdapter -VMNetworkAdapter $NICRENAME[0] -newname inside rename-VMNetworkAdapter -VMNetworkAdapter $NICRENAME[1] -newname outside MAC Address Spoofing For the ASA virtual to pass packets in transparent mode and for HA Active/Standby failover, you must turn on MAC address spoofing for ALL interfaces. You can do this in the Hyper-V Manager or using Powershell commands. Configure MAC Address Spoofing Using the Hyper-V Manager You can use the Hyper-V Manager to configure MAC spoofing on Hyper-V. Step 1 Go to Server Manager > Tools > Hyper-V Manager. The Hyper-V Manager appears. Step 2 Click Settings on the right side of the Hyper-V Manager to open the settings dialog box. Step 3 Under the Hardware menu on the left: a. Click Inside and expand the menu. b. Click Advanced Features to get to the MAC address option. c. Click the Enable MAC address spoofing radio button. Step 4 Repeat for the Outside interface. Configure MAC Address Spoofing Using the Command Line You can use the the Windows Powershell command line to configure MAC spoofing on Hyper-V. Step 1 Open a Windows Powershell. Step 2 Configure MAC address spoofing. Example: Set-VMNetworkAdapter -VMName $vm_name\ -ComputerName $computer_name -MacAddressSpoofing On\ -VMNetworkAdapterName $network_adapter\r" Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 217Deploy the ASA Virtual Using Hyper-V Configure SSH Configure SSH You can configure the ASA virtual for SSH access over the management interface from the Virtual Machine Connection in the Hyper-V Manager. If you are using a Day 0 configuration file, you can add SSH access to it. See Prepare the Day 0 Configuration File for more information. Step 1 Verify that the RSA key pair is present: Example: asav# show crypto key mypubkey rsa Step 2 If there is no RSA key pair, generate the RSA key pair: Example: asav(conf t)# crypto key generate rsa modulus 2048 username test password test123 privilege 15 aaa authentication ssh console LOCAL ssh 10.7.24.0 255.255.255.0 management ssh version 2 Step 3 Verify that you can access the ASA virtual using SSH from another PC. CPU Usage and Reporting The CPU Utilization report summarizes the percentage of the CPU used within the time specified. Typically, the Core operates on approximately 30 to 40 percent of total CPU capacity during nonpeak hours and approximately 60 to 70 percent capacity during peak hours. vCPU Usage in the ASA Virtual The ASA virtual vCPU usage shows the amount of vCPUs used for the data path, control point, and external processes. The Hyper-V reported vCPU usage includes the ASA virtual usage as described plus: • ASA Virtual idle time • %SYS overhead used for the ASA virtual machine CPU Usage Example The show cpu usage command can be used to display CPU utilization statistics. Example Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 218Deploy the ASA Virtual Using Hyper-V CPU Usage Example Ciscoasa#show cpu usage CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1% The following is an example in which the reported vCPU usage is substantially different: • ASA Virtual reports: 40% • DP: 35% • External Processes: 5% • ASA (as ASA Virtual reports): 40% • ASA idle polling: 10% • Overhead: 45% Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 219Deploy the ASA Virtual Using Hyper-V CPU Usage Example Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 220C H A P T E R 10 Deploy the ASA Virtual on Oracle Cloud Infrastructure You can deploy the ASA virtual on the Oracle Cloud Infrastructure (OCI). • Overview, on page 221 • Prerequisites, on page 223 • Guidelines and Limitations, on page 224 • Sample Network Topology, on page 225 • Deploy the ASA Virtual , on page 226 • Access the ASA Virtual Instance on OCI, on page 232 • Troubleshooting, on page 234 Overview OCI is a public cloud computing service that enables you to run your applications in a highly-available, hosted environment offered by Oracle. The ASA virtual runs the same software as physical ASA virtuals to deliver proven security functionality in a virtual form factor. The ASA virtual can be deployed in the public OCI. It can then be configured to protect virtual and physical data center workloads that expand, contract, or shift their location over time. OCI Compute Shapes A shape is a template that determines the number of CPUs, amount of memory, and other resources that are allocated to an instance. The ASA virtual supports the following Standard – General purpose OCI shape types: Table 24: Supported Compute Shapes for ASA Virtual OCI Shape Supported ASAv Attributes Interfaces Version oCPUs RAM (GB) Intel 9.19 and later 8 120 Minimum 4, VM.DenseIO2.8 Maximum 8 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 221Deploy the ASA Virtual on Oracle Cloud Infrastructure Overview OCI Shape Supported ASAv Attributes Interfaces Version oCPUs RAM (GB) Intel 9.19 and later 4 48 Minimum 4, VM.StandardB1.4 Maximum 4 Intel 9.19 and later 4 96 Minimum 4, VM.StandardB1.8 Maximum 8 Intel 9.19 and later 4 28 Minimum 4, VM.Standard1.4 Maximum 4 Intel 9.19 and later 8 56 Minimum 4, VM.Standard1.8 Maximum 8 Intel 9.15 and later 4 60 Minimum 4, VM.Standard2.4 Maximum 4 IntelVM.Standard2.8 9.15 and later 8 120 Minimum 4, Maximum 8 Intel 9.19 and later 4 16 Minimum 4, VM.Standard3.Flex Maximum 4 9.19 and later 6 24 Minimum 4, Maximum 6 9.19 and later 8 32 Minimum 4, Maximum 8 Intel 9.19 and later 4 16 Minimum 4, VM.Optimized3.Flex Maximum 8 9.19 and later 6 24 Minimum 4, Maximum 10 9.19 and later 8 32 Minimum 4, Maximum 10 AMD 9.19 and later 4 16 Minimum 4, VM.Standard.E4.Flex Maximum 4 9.19 and later 6 24 Minimum 4, Maximum 6 9.19 and later 8 32 Minimum 4, Maximum 8 • The ASA virtual requires a minimum of 3 interfaces. • In OCI, 1 oCPU is equal to 2 vCPUs. • The maximum supported vCPUs is 16 (8 oCPUs). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 222Deploy the ASA Virtual on Oracle Cloud Infrastructure Prerequisites Recommendations for using the OCI Compute shapes supported by version ASA virtual 9.19 and later. • OCI marketplace image version 9.19.1-v3 and later are compatible only with the OCI compute shapes of ASA virtual 9.19 and later. • You can use the OCI compute shapes supported by ASA virtual 9.19 and later only for new deployments. • OCI compute shapes version 9.19.1-v3 and later are not compatible with upgrading VMs that are deployed with ASA virtual using the OCI compute shape versions earlier to ASA virtual 9.19. • The billing will continue for theVM.DenseIO2.8 compute shape subscription, even after you shut down the instance. For more information, see OCI Documentation. You create an account on OCI, launch a compute instance using the Cisco ASA virtual firewall (ASA virtual) offering on the Oracle Cloud Marketplace, and choose an OCI shape. Prerequisites • Create an account on https://www.oracle.com/cloud/sign-in.html. • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Licenses: Smart Software Licensing . Note All the default License entitlement offered by Cisco, previously for ASA Virtual will have the IPv6 configuration support. • Interface requirements: • Management interface • Inside and outside interfaces • (Optional) Additional subnet (DMZ) • Communications paths: • Management interface—Used to connect the ASA virtual to the ASDM; can’t be used for through traffic. • Inside interface (required)—Used to connect the ASA virtual to inside hosts. • Outside interface (required)—Used to connect the ASA virtual to the public network. • DMZ interface (optional)—Used to connect the ASA virtual to the DMZ network. • For ASA virtual system requirements, see Cisco Secure Firewall ASA Compatibility. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 223Deploy the ASA Virtual on Oracle Cloud Infrastructure Guidelines and Limitations Guidelines and Limitations Supported Features The ASA virtual on OCI supports the following features: • Deployment in the OCI Virtual Cloud Network (VCN) • Maximum of 16 vCPUs (8 oCPUs) per instance • Routed mode (default) • Licensing – Only BYOL is supported • Single Root I/O Virtualization (SR-IOV) is supported • IPv6 Performance Tiers for ASA virtual Smart Licensing The ASA virtual supports performance-tiered licensing that provides different throughput levels and VPN connection limits based on deployment requirements. Performance Tier Instance Type (Core/RAM) Rate Limit RA VPN Session Limit ASAv5 VM.Standard2.4 100 Mbps 50 4 core/60 GB ASAv10 VM.Standard2.4 1 Gbps 250 4 core/60 GB ASAv30 VM.Standard2.4 2 Gbps 750 4 core/60 GB ASAv50 VM.Standard2.8 NA 10,000 8 core/120 GB ASAv100 VM.Standard2.8 NA 20,000 8 core/120 GB Unsupported Features The ASA virtual on OCI does not support the following: • ASA virtual native HA • Transparent/inline/passive modes • Multi-context mode Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 224Deploy the ASA Virtual on Oracle Cloud Infrastructure Sample Network Topology Limitations • ASA virtual deployment on OCI does not support Mellanox 5 as vNICs in the SR-IOV mode. • OCI supports only the dual stackmode (IPv4 and IPv6) configuration, and standalone IPv6 configuration is not supported in a Virtual Private Network (VPN). • Separate routing rules required for ASAv for both static and DHCPconfiguration. Sample Network Topology The following figure shows the recommended network topology for the ASA virtual in Routed Firewall Mode with 3 subnets configured in OCI for the ASA virtual (management, inside, and outside). Figure 51: Sample ASA Virtual on OCI Deployment Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 225Deploy the ASA Virtual on Oracle Cloud Infrastructure Deploy the ASA Virtual ASA Virtual IPv6 Deployment Topolgy Deploy the ASA Virtual The following procedures describe how to prepare your OCI environment and launch the ASA virtual instance. You log into the OCI portal, search the OCI Marketplace for the Cisco ASA virtual firewall (ASA virtual) offering, and launch the compute instance. After launching the ASA virtual, you must configure route tables to direct traffic to the firewall depending on the traffic’s source and destination. Create the Virtual Cloud Network (VCN) You configure the Virtual Cloud Network (VCN) for your ASA virtual deployment. At a minimum, you need three VCNs, one for each interface of the ASA virtual. You can continue with the following procedures to complete the Management VCN. Then you return to Networking to create VCNs for the inside and outside interfaces. Before you begin Note After you select a service from the navigation menu, the menu on the left includes the compartments list. Compartments help you organize resources to make it easier to control access to them. Your root compartment is created for you by Oracle when your tenancy is provisioned. An administrator can create more compartments in the root compartment and then add the access rules to control which users can see and take action in them. See the Oracle document “Managing Compartments” for more information. Step 1 Log into OCI and choose your region. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 226Deploy the ASA Virtual on Oracle Cloud Infrastructure Create the Network Security Group OCI is divided into multiple regions that are isolated from each other. The region is displayed in the upper right corner of your screen. Resources in one region do not appear in another region. Check periodically to make sure you are in the intended region. Step 2 Choose Networking > Virtual Cloud Networks and click Create Virtual Cloud Networks. Step 3 Enter a descriptive Name for your VCN, for example ASAvManagement. Step 4 Enter a CIDR block for your VCN. a) An IPv4 CIDR block of IP addresses. CIDR (Classless Inter-Domain Routing) notation is a compact representation of an IP address and its associated routing prefix. For example, 10.0.0.0/24. Note Use DNS hostnames in this VCN. b) Select the Assign an Oracle allocated IPv6 /56 check box to add a single Oracle assigned IPv6 address to your VCN. Step 5 Click Create VCN. Create the Network Security Group A network security group consists of a set of vNICs and a set of security rules that apply to those vNICs. Step 1 Choose Networking > Virtual Cloud Networks > Virtual Cloud Network Details > Network Security Groups, and click Create Network Security Group. Step 2 Enter a descriptive Name for your Network Security Group, for example ASAv-Mgmt-Allow-22-443. Step 3 Click Next. Step 4 Add your security rules: a) Add a rule to allow TCP port 22 for SSH Access to ASA virtual console. b) Add a rule to allow TCP port 443 for HTTPS Access to ASDM. The ASA virtual can be managed via ASDM, which requires port 443 to be opened for HTTPS connections. Step 5 Click Create. Create the Internet Gateway An Internet gateway is required to make your management subnet publicly accessible. Step 1 Choose Networking > Virtual Cloud Networks > Virtual Cloud Network Details > Internet Gateways, and click Create Internet Gateway. Step 2 Enter a descriptive Name for your Internet gateway, for example, ASAv-IG. Step 3 Click Create Internet Gateway. Step 4 Add the route to the Internet Gateway: a) Choose Networking > Virtual Cloud Networks > Virtual Cloud Network Details > Route Tables. b) Click on the link for your default route table to add route rules. c) Click Add Route Rules. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 227Deploy the ASA Virtual on Oracle Cloud Infrastructure Create the Subnet d) From the Target Type drop-down, select Internet Gateway. e) Enter the Destination IPv4 CIDR Block, for example 0.0.0.0/0. f) Enter the Destination IPv6 CIDR Block, For example, [::/0]. g) From the Target Internet Gateway drop-down, select the gateway you created. h) Click Add Route Rules. Create the Subnet Each VCN will have one subnet, at a minimum. You’ll create a Management subnet for the Management VCN. You’ll also need an Inside subnet for the Inside VCN, and an Outside subnet for the Outside VCN. Step 1 Choose Networking > Virtual Cloud Networks > Virtual Cloud Network Details > Subnets, and click Create Subnet. Step 2 Enter a descriptive Name for your subnet, for example, Management. Step 3 Select a Subnet Type (leave the recommended default of Regional). Step 4 Enter a CIDR Block, for example 10.10.0.0/24. The internal (non-public) IP address for the subnet is taken from this CIDR block. Step 5 Check the Assign an Oracle allocated IPv6 /56 prefix check box. A unique IPv6 address is generated, where you must manually enter the last two hexadecimal digits. However, the IPv6 prefix in subnet is always fixed to /64. Step 6 Select one of the route tables you created previously from the Route Table drop-down. Step 7 Select the Subnet Access for your subnet. For the Management subnet, this must be Public Subnet. Step 8 Select the DHCP Option. Step 9 Select a Security List that you created previously. Step 10 Click Create Subnet. What to do next After you configure your VCNs (Management, Inside, Outside) you are ready to launch the ASA virtual. See the following figure for an example of the ASA virtual VCN configuration. Figure 52: ASA Virtual Cloud Networks Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 228Deploy the ASA Virtual on Oracle Cloud Infrastructure Configure IPv6 Gateway Address Using Cloud Shell Configure IPv6 Gateway Address Using Cloud Shell In OCI, each subnet has a unique IPv6 gateway address which you must configure in ASAv for IPv6 traffic to work. This gateway address is retrieved from the subnet details running an OCI command in the cloud shell. Step 1 Go to OCI > Open CloudShell (OCI Cloud Terminal) . Step 2 Execute following command to get the IPv6 details from the subnet: oci network subnet get –subnet_id Step 3 From the command result find the ipv6-virtual-router-ip key. Step 4 Copy the value of this key and use it as required. Create the ASA Virtual Instance on OCI You deploy the ASA virtual on OCI via a Compute instance using the Cisco ASA virtual firewall (ASA virtual) offering on the Oracle Cloud Marketplace. You select the most appropriate machine shape based on characteristics such as the number of CPUs, amount of memory, and network resources. Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Marketplace > Applications. Step 3 Search Marketplace for “Cisco ASA virtual firewall (ASAv)” and choose the offering. Step 4 Review the Terms and Conditions, and check the I have reviewed and accept the Oracle Terms of Use and the Partner terms and conditions.check box. Step 5 Click Launch Instance. Step 6 Enter a descriptive Name for your instance, for example, ASAv-9-15. Step 7 ClickChange Shape and select the shape with the number of oCPUs, the amount of RAM, and the number of interfaces required for the ASA virtual; for example, VM.Standard2.4 (see Table 24: Supported Compute Shapes for ASAVirtual, on page 221). Step 8 From the Virtual Cloud Network drop-down, choose the Management VCN. Step 9 From the Subnet drop-down, choose the Management subnet if it''s not autopopulated. Step 10 Check Use Network Security Groups to Control Traffic and choose the security group you configured for the Management VCN. Step 11 Click the Assign a Public Ip Address radio button. Step 12 Under Add SSH keys, click the Paste Public Keys radio button and paste the SSH key. Linux-based instances use an SSH key pair instead of a password to authenticate remote users. A key pair consists of a private key and public key. You keep the private key on your computer and provide the public key when you create an instance. See Managing Key Pairs on Linux Instances for guidelines. Step 13 Click the Show Advanced Options link to expand the options. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 229Deploy the ASA Virtual on Oracle Cloud Infrastructure Attach the Interfaces Step 14 (Optional) Under Initialization Script, click the Paste Cloud-Init Script radio button to provide a day0 configuration for the ASA virtual. The day0 configuration is applied when the ASA virtual is launched. The following example shows a sample day0 configuration you can copy and paste in the Cloud-Init Script field: See the ASAConfiguration Guides and the ASACommand Reference for complete information on the ASA commands. Important When you copy text from this example, you should validate the script in a third-party text editor or validation engine to prevent format errors and remove invalid Unicode characters. !ASA Version 9.18.1 interface management0/0 management-only nameif management security-level 100 ip address dhcp setroute ipv6 enable ipv6 address dhcp default no shut ! same-security-traffic permit inter-interface same-security-traffic permit intra-interface ! crypto key generate rsa modulus 2048 ssh 0 0 management ssh ::/0 management ssh timeout 60 ssh version 2 username admin nopassword privilege 15 username admin attributes service-type admin http server enable http 0 0 management aaa authentication ssh console LOCAL Step 15 Click Create. What to do next Monitor the ASA virtual instance, which shows the state as Provisioning after you click the Create button. Important It’s important to monitor the status. As soon as the ASA virtual instance goes from Provisioning to Running state you need to attach the VNICs as required before the ASA virtual boot completes. Attach the Interfaces The ASA virtual enters the Running state with one VNIC attached (see Compute > Instances > Instance Details > Attached VNICs). This is referred to as the Primary VNIC, and maps to the Management VCN. Before the ASA virtual completes the first boot, you need to attach the VNICs for the other VCN subnets you created previously (inside, outside) so that the VNICs are correctly detected on ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 230Deploy the ASA Virtual on Oracle Cloud Infrastructure Add Route Rules for the Attached VNICs Step 1 Select your newly launched ASA virtual instance. Step 2 Choose Attached VNICs > Create VNIC. Step 3 Enter a descriptive Name for your VNIC, for example Inside. Step 4 Select the VCN from the Virtual Cloud Network drop-down. Step 5 Select your subnet from the Subnet drop-down. Step 6 CheckUse Network Security Groups to Control Traffic and choose the security group you configured for the selected VCN. Step 7 Check Skip Source Destination Check Network Security Groups to Control Traffic. Step 8 (Optional) Specify a Private IP Address. This is only required if you want to choose a particular IP for the VNIC. If you do not specify an IP, OCI will assign an IP address from the CIDR block you assigned to the subnet. If you are configuring IPv6 address, then select and assign unique IPv6 address to each interface. Step 9 Click Save Changes to create the VNIC. Step 10 Repeat this procedure for each VNIC your deployment requires. Add Route Rules for the Attached VNICs Add route table rules to the inside and outside route tables. Step 1 Choose Networking > Virtual Cloud Networks > and click the default route table associated with the VCN (inside or outside). Step 2 Click Add Route Rules. Step 3 From the Target Type drop-down, select Private IP. Step 4 From the Destination Type drop-down, select CIDR Block. Step 5 Enter the Destination IPv4 CIDR Block, for example, 0.0.0.0/0. Step 6 Enter the Destination IPv6 CIDR Block, for example, [::/0]. Step 7 Enter the private IP address of the VNIC in the Target Selection field. If you did not explicitly assign an IP address to the VNIC, you can find the auto-assigned IP address from the VNIC details (Compute > Instances > Instance Details > Attached VNICs). Step 8 Click Add Route Rules. Step 9 Repeat this procedure for each VNIC your deployment requires. Note Separate routing rules required for ASA Virtual (Static and DHCP) configuration. ipv6 route Example • ipv6 route inside 2603:c020:5:5800::/64 fe80::200:17ff:fe96:921b Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 231Deploy the ASA Virtual on Oracle Cloud Infrastructure Access the ASA Virtual Instance on OCI • ipv6 route outside 2603:c020:6:ba00::/64 fe80::200:17ff:fe21:748c Access the ASA Virtual Instance on OCI You can connect to a running instance by using a Secure Shell (SSH) connection. • Most UNIX-style systems include an SSH client by default. • Windows 10 and Windows Server 2019 systems should include the OpenSSH client, which you''ll need if you created your instance using the SSH keys generated by Oracle Cloud Infrastructure. • For other Windows versions you can download PuTTY, the free SSH client from http://www.putty.org. Prerequisites You''ll need the following information to connect to the instance: • The public IP address of the instance. You can get the address from the Instance Details page in the Console. Open the navigation menu. Under Core Infrastructure, go to Compute and click Instances. Then, select your instance. Alternatively, you can use the Core Services API ListVnicAttachments and GetVnic operations. • The username and password of your instance. • The full path to the private key portion of the SSH key pair that you used when you launched the instance. For more information about key pairs, see Managing Key Pairs on Linux Instances. Note You can log in to the ASA virtual instance using the credentials specified in the day0 configuration, or by using the SSH key pair you created during the instance launch. Connect to the ASA Virtual Instance Using SSH To connect to the ASA virtual instance from a Unix-style system, log in to the instance using SSH. Step 1 Use the following command to set the file permissions so that only you can read the file: $ chmod 400 Where: is the full path and name of the file that contains the private key associated with the instance you want to access. Step 2 Use the following SSH command to access the instance. $ ssh –i @ Where: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 232Deploy the ASA Virtual on Oracle Cloud Infrastructure Connect to the ASA Virtual Instance Using OpenSSH is the full path and name of the file that contains the private key associated with the instance you want to access. is the username for the ASA virtual instance. is your instance IP address that you retrieved from the Console. is your instance management interface IPv6 address. Connect to the ASA Virtual Instance Using OpenSSH To connect to the ASA virtual instance from a Windows system, log in to the instance using OpenSSH. Step 1 If this is the first time you are using this key pair, you must set the file permissions so that only you can read the file. Do the following: a) In Windows Explorer, navigate to the private key file, right-click the file, and then click Properties. b) On the Security tab, click Advanced. c) Ensure that the Owner is your user account. d) ClickDisable Inheritance, and then selectConvert inherited permissions into explicit permissions on this object. e) Select each permission entry that is not your user account and click Remove. f) Ensure that the access permission for your user account is Full control. g) Save your changes. Step 2 To connect to the instance, open Windows PowerShell and run the following command: $ ssh –i @ Where: is the full path and name of the file that contains the private key associated with the instance you want to access. is the username for the ASA virtual instance. is your instance IP address that you retrieved from the Console. Connect to the ASA Virtual Instance Using PuTTY To connect to the ASA virtual instance from a Windows system using PuTTY: Step 1 Open PuTTY. Step 2 In the Category pane, select Session and enter the following: • Host Name (or IP address): @ Where: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 233Deploy the ASA Virtual on Oracle Cloud Infrastructure Troubleshooting is the username for the ASA virtual instance. is your instance public IP address that you retrieved from the Console. • Port: 22 • Connection type: SSH Step 3 In the Category pane, expand Window, and then select Translation. Step 4 In the Remote character set drop-down list, select UTF-8. The default locale setting on Linux-based instances is UTF-8, and this configures PuTTY to use the same locale. Step 5 In the Category pane, expand Connection, expand SSH, and then click Auth. Step 6 Click Browse, and then select your private key. Step 7 Click Open to start the session. If this is your first time connecting to the instance, you might see a message that the server''s host key is not cached in the registry. Click Yes to continue the connection. Troubleshooting Problem SSH—ASA Virtual with IPv6 is not working • Solution Verify if the route for ::/0 via Internet Gateway is present in the VPC Route Table. • Solution Verify if the Port 22 is allowed in the security Group associated with the Management Subnet or Interface. • Solution Verify via IPv4 SSH session whether Management interface is configured with IPv6 address. • Solution Check for "ssh config" in the ASA Virtual and all required config is provided as part of day0 or configured later. Problem East-West traffic not working. • Solution Verify in the EC2 > Instance > Networking, whether “Change source/destination check” is stopped. • Solution Verify routes are properly configured on Inside/Outside Linux. • Solution Add the proper routes in ASA Virtual in case of manual IPv6 addressing. • Solution Check ”show asp drop” for any packet drops and act accordingly. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 234C H A P T E R 11 Deploy the ASA Virtual Auto Scale Solution on OCI • Use Case , on page 235 • Prerequisites, on page 236 • Preparation of the ASA Configuration File, on page 241 • Deploy the Auto Scale Solution, on page 247 • Validate Deployment, on page 252 • Upgrade, on page 252 • Delete Autoscale Configuration from OCI, on page 253 Use Case The use case for this ASA virtual – OCI Autoscale solution is shown in the Use Case diagram. Internet-facing load balancer has public ip address with ports enabled using Listener and Target Group combination. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 235Deploy the ASA Virtual Auto Scale Solution on OCI Prerequisites Figure 53: Use Case Diagram Port based bi-furcation can be implemented for network traffic. This can be achieved through NAT rules. This configuration example is explained in the following sections. Prerequisites Permission and Policies Following are the OCI permissions and policies that you require to implement the solution: 1. Users and Group Note You must be an OCI User or a Tenancy Administrator to create the Users and Groups. Create Oracle Cloud Infrastructure user accounts and a group to which the user accounts belong. If the relevant group with user accounts exist, you need not create them. For instructions on creating users and groups, see Creating Groups and Users. 2. Group Policies You need to create the policies and then map them to the group. To create the policies, go to OCI > Identity & Security > Policies > Create Policy. Create and add the following policies to the desired group: • Allow group to use metrics in compartment Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 236Deploy the ASA Virtual Auto Scale Solution on OCI Prerequisites • Allow group to manage alarms in compartment • Allow group to manage ons-topics in compartment • Allow group to inspect metrics in compartment • Allow group to read metrics in compartment • Allow group to use tag-namespaces in compartment • Allow group to read log-groups in compartment • Allow group to use instance-pools compartment • Allow group to use cloud-shell in tenancy • Allow group to read objectstorage-namespace in tenancy • Allow group to manage repos in tenancy Note You can create policies at tenancy level as well. It is at your discretion how you want to provide all the permissions. 3. Permission for Oracle Functions To enable a Oracle-Function to access another Oracle Cloud Infrastructure resource, include the function in a dynamic group, and then create a policy to grant the dynamic group access to that resource. 4. Create Dynamic Group To create dynamic groups, go to OCI > Identity & Security > Dynamic Group > Create Dynamic Group Specify the following rule while creating the dynamic group: ALL {resource.type = ''fnfunc'', resource.compartment.id = ''''} For more details on dynamic groups, see: • https://docs.oracle.com/en-us/iaas/Content/Functions/Tasks/functionsaccessingociresources.htm • https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/managingdynamicgroups.htm 5. Create Policy for Dynamic Group To add policy, go to OCI > Identity & Security > Policies > Create Policy. Add the following policy to the group: Allow dynamic-group to manage all-resources in compartment Download files from GitHub ASA virtual – OCI Autoscale solution is delivered as a GitHub repository. You can pull or download the files from the repository. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 237Deploy the ASA Virtual Auto Scale Solution on OCI Prerequisites Python3 Environment A make.py file can be found in the cloned repository. This program compresses the oracle functions and template files into a Zip file; copy them to a target folder. In order to do these tasks, the Python 3 environment should be configured. Note This python script can be used only on Linux environment. Infrastructure Configuration The following must be configured: 1. VCN Create VCN as required for your ASA virtual application. Create VCN with the Internet Gateway having at least one of the subnet attached with route to internet. For information on creating VCN, see https://docs.oracle.com/en-us/iaas/Content/GSG/Tasks/ creatingnetwork.htm. 2. Application Subnets Create subnets as required for your ASA virtual application. To implement the solution as per this use case, ASA virtual instance requires 3 subnets for its operation. ASA virtualthreat defense virtual also supports traffic between subnets using associated routes tables, that is, the traffic from one subnet to other under the same VPC can be routed or controlled through the firewalls. For information on creating subnet, see https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingVCNs_topic-Overview_of_VCNs_and_Subnets.htm#. 3. Outside Subnet Subnet should have route with ''0.0.0.0/0'' to Internet Gateway. This subnet contains the Outside interface of Cisco ASA virtual and the Internet-facing Load balancer. Ensure that the NAT Gateway is added for outbound traffic. For more information, see the following documents: • https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingIGs.htm • https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/NATgateway.htm#To_create_a_NAT_ gateway 4. Inside Subnet This is similar to the Application Subnets, with or without NAT/Internet gateway. Note For ASA virtual health probes, you can reach the metadata server (169.254.169.254) through Port 80. 5. Management Subnet Management subnet should be public so that it supports SSH accessibility to the ASA virtual. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 238Deploy the ASA Virtual Auto Scale Solution on OCI Prerequisites 6. Security Groups- Network Security Group for ASA virtual Instance Configure the security group for ASA virtual instances that addresses the following requirements: • The Oracle Functions(in sameVCN) perform SSH connections to ASA virtual’s management address. • Admin hosts might need SSH access to ASA virtual instances. • ASA virtual initiates communication with CSSM/Satellite servers for licensing. 7. Object Storage Namespace This object storage namespace is used for hosting static website, having configuration.txt file. You must create a pre-authenticated requests for the configuration.txt file. This pre-authenticated URL is used during the template deployment. Note Ensure that the following configurations that are uploaded are accessible by the ASA virtual instances through HTTP URL. When ASA virtual is booted, it executes the following command$ copy /noconfirm disk0:Connfiguration.txt This command enables ASA virtual launch to be configured with configuration.txt file. 8. Upload configuration.txt file To create a pre-authenticated request URL of the ASA virtual config file: a. Click Buckets > Create Bucket. b. Click Upload. c. When the config file is uploaded, choose Create Pre-Authenticated Request as shown in the figure below. Note The config file should be accessible from the oracle-function now. Network Configuration 1. Inbound traffic Make sure that address is correct in configuration.txt as mentioned in Step 2. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 239Deploy the ASA Virtual Auto Scale Solution on OCI Encrypt Password 2. Outbound Traffic • Make sure that address is correct in configuration.txt. as mentioned in Step 2. • Make sure there is one NAT Gateway in your Outside VCN. • Make sure to add same address in route table of your Outside VCN, destined through NAT gateway, as shown in the example figure below: Encrypt Password Note For more information on this procedure, see Create Vaults and Secrets. Password for ASA virtual is used to configure all the ASA virtual instances being used while autoscaling and it is used to retrieve the CPU usage data of the ASA virtual instances. Therefore, you need to save and process the password every now and then. Owing to the frequent changes and vulnerability, editing or saving the password in the plain-text format is not allowed. Password must be in an encrypted format only. To obtain password in encrypted form: Step 1 Create Vault. OCI Vault provides services to create and save master encryption keys safely, and methods for encryption and decryption in using them. So Vault should be created (if not having already) in the same compartment as the rest of the autoscale solution. Go to OCI > Identity & Security > Vault > Choose or Create New Vault . Step 2 Create Master Encryption Key. One master encryption key is needed to encrypt the plain text password. Go to OCI > Identity & Security > Vault > Choose or Create Key Choose any of the keys from any of the given algorithm with any bit of length. a. AES – 128, 192, 256 b. RSA – 2048, 3072, 4096 c. ECDSA – 256, 384, 521 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 240Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File Figure 54: Create Key Step 3 Create encrypted password. a. Go to OCI > Open CloudShell (OCI Cloud Terminal) b. Execute following command by replacing as your password. echo -n '''' | base64 c. From the selected Vault, copy cryptographic endpoint and master encryption key OCID. Replace the following values, and then execute the encrypt command: • KEY_OCID with Your key’s OCID • Cryptographic_Endpoint_URL with Your vault’s cryptographic endpoint URL • Password with Your password Encrypt Command oci kms crypto encrypt --key-id Key_OCID --endpoint Cryptographic_Endpoint_URL --plaintext d. Copy ciphertext from output of the above command and use it as required. Preparation of the ASA Configuration File Ensure that the Application is either deployed or its deployment plan is available. Step 1 Collect the following input parameters before deployment: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 241Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File Parameter Data Type Description tenancy_ocid String OCID of the tenancy to which your account belongs. To know how to find your tenancy OCID, see here. The tenancy OCID looks something like this - ocid1.tenancy.oc1.. compartment_id String TheOCID of the compartment in which to create the resources. Example: ocid1.compartment.oc1.. compartment_name String Name of the compartment region String The unique identifier of the region in which you want the resources to be created. Example: us-phoenix-1, us-ashburn-1 lb_size String A template that determines the total pre-provisioned bandwidth (ingress plus egress) of the external and internal load balancer. Supported values: 100Mbps, 10Mbps, 10Mbps-Micro, 400Mbps, 8000Mbps Example: 100Mbps availability_domain Comma separated value Example: Tpeb:PHX-AD-1 Note Execute oci iam availability-domain list command in the Cloud Shell to get the availability domain names. min_and_max_instance_count comma separated value The minimum and the maximum number of instances that you would want to retain in the instance pool. Example: 1,5 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 242Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File Parameter Data Type Description autoscale_group_prefix String The prefix to be used to name all the resources that are created using the template. For example, if the resource prefix is given as ''autoscale'', all the resources are named as follows - autoscale_resource1, autoscale_resource2 etc. asav_config_file_url URL The URL of the configuration file uploaded to the object storage to be used to configure the ASA virtual. Note Pre-Authenticated Request URL of the configuration file has to be given Example: https://objectstorage.. oraclecloud.com// oci-asav-configuration.txt mgmt_subnet_ocid String OCID of the Management subnet that is to be used. inside_subnet_ocid String OCID of the Inside subnet that is to be used. outside_subnet_ocid String OCID of the Outside subnet that is to be used. mgmt_nsg_ocid String OCID of the Management subnet network security group that is to be used. inside_nsg_ocid String OCID of the Inside subnet network security group that is to be used. outside_nsg_ocid String OCID of the Outside subnet network security group that is to be used. elb_listener_port comma separated Values List of the communication ports for the external load balancer listener. Example: 80 ilb_listener_port comma separated Values List of the communication ports for the internal load balancer listener. Example: 80 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 243Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File Parameter Data Type Description health_check_port String The backend server port of load balancer against which the health check is executed. Example: 8080 instance_shape String The shape of the instance to be created. The shape determines the number of CPUs, amount of memory, and other resources allocated to the instance. Supported shapes :"VM.Standard2.4" & "VM.Standard2.8" lb_bs_policy String The load balancer policy to be used for the internal and external load balancer’s backend set. To know more about how load balancer policies work, see here. Supported values: "ROUND_ROBIN", "LEAST_CONNECTIONS", "IP_HASH" image_name String The name of the marketplace image to be used for creating the instance configuration. Default value : "Cisco ASA virtual firewall (ASAv)" Note If the user wants to deploy custom image, user has to configure the custom_image_ocid parameter. image_version String The Version of the ASA virtual image available in OCI Marketplace to be used. Currently, 9.15.1.15 and 9.16.1 versions are available. Default value : "Cisco ASA virtual firewall (ASAv)" scaling_thresholds Comma separated value The CPU usage thresholds to be used for scale-in and scale-out. Specify the scale-in and scale-out threshold values as comma separated input. Example : 15,50 where, 15 is the scale-in threshold and 50 is the scale-out threshold. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 244Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File Parameter Data Type Description custom_image_ocid String OCID of the custom image to be used to create instance configuration if the marketplace image is not to be used. Note custom_image_ocid is optional parameter asav_password String The password for ASA virtual in the encrypted form, to SSH into the ASA virtual for configuration. Use configuration guide for the instructions on how to encrypt password or see here. cryptographic_endpoint String Cryptographic endpoint is a URL, that is used for decrypting password. It can be found in the Vault. master_encryption_key_id String The OCID of key with which the password was encrypted. It can be found in the Vault. Profile Name It is the User’s profile name in OCI. It can be found under profile section of the user. Example: oracleidentitycloudservice/ @.com Object Storage Namespace It is unique identifier created at the time of Tenancy creation. You can find this value in OCI > Administration > Tenancy Details Authorization Token This is used as password for docker login which authorizes to push Oracle-Functions into the OCI container registry. To procure the token, go to OCI > Identity > Users > User Details > Auth Tokens > Generate Token. Step 2 Configure Objects, Licensing, NAT rule for Load Balancer health probes and Access Policies. ! Default route via outside route outside 0.0.0.0 0.0.0.0 2 ! Health Check Configuration object network metadata-server host 169.254.169.254 object service health-check-port service tcp destination eq object service http-port Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 245Deploy the ASA Virtual Auto Scale Solution on OCI Preparation of the ASA Configuration File service tcp destination eq route inside 169.254.169.254 255.255.255.255 1 ! Health check NAT nat (outside,inside) source static any interface destination static interface metadata-server service health-check-port http-port nat (inside,outside) source static any interface destination static interface metadata-server service health-check-port http-port ! Outbound NAT object network inside-subnet subnet object network external-server host nat (inside,outside) source static inside-subnet interface destination static interface external-server ! Inbound NAT object network outside-subnet subnet object network http-server-80 host nat (outside,inside) source static outside-subnet interface destination static interface http-server-80 ! dns domain-lookup outside DNS server-group DefaultDNS ! License Configuration call-home profile license destination transport-method http destination address http debug menu license 25 production license smart feature tier standard throughput level licence smart register idtoken force ! These health probe connections and data plane configuration should be allowed on Access policy. Step 3 Update configuration.txt file with the configuration details. Step 4 Upload configuration.txt file to the user created object storage space and create the pre-authenticated request for the uploaded file. Note Ensure that pre-authenticated request URL of configuration.txt is used in the stack deployment. Step 5 Create Zip files. A make.py file can be found in the cloned repository. Execute the python3 make.py build command to create the zip files. The target folder has the following files. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 246Deploy the ASA Virtual Auto Scale Solution on OCI Deploy the Auto Scale Solution Note If you are deploying the autoscale solution using cloud shell, update the easy_deploy/deployment_parameters.json file before executing the python3 make.py build. For updating, refer Step 1 and Deploy Oracle Functions. Deploy the Auto Scale Solution After completing the pre-requisite steps for deployment, start creating the OCI stack. You can perform a Manual Deployment or perform Deploy Autoscale Using Cloud Shell. Deployment scripts and templates for your version are available in the GitHub repository. Manual Deployment End-to-end Autoscale solution deployment consist of three steps: Deploy Terraform Template-1 Stack , Deploy Oracle Functions, and then Deploy Terraform Template-2. Deploy Terraform Template-1 Stack Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Developer Service > Resource Manager > Stack > Create Stack ChooseMy Configuration, and then select the Terraform template1.zip file in the target folder as TerraformConfiguration Source as shown in the figure below. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 247Deploy the ASA Virtual Auto Scale Solution on OCI Deploy Oracle Functions Step 3 In the Transform version drop-down list, select 0.13.x or 0.14.x. Step 4 In the next step, enter all the details as collected in Step 1. Note Enter valid input parameters, otherwise stack deployment may fail in further steps. Step 5 In the next step, choose Terraform Actions > Apply. Post successful deployment, proceed to deploy the Oracle functions. Deploy Oracle Functions Note This step must be performed only after successful Terraform Template-1 deployment. In OCI, Oracle Functions are uploaded as Docker Images, which are saved into the OCI container registry. Oracle Functions are needed to be pushed into one of the OCI Application (created in Terraform Template-1) at the time of deployment. Step 1 Open OCI Cloud Shell. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 248Deploy the ASA Virtual Auto Scale Solution on OCI Deploy Oracle Functions Step 2 Upload deploy_oracle_functions_cloudshell.py and Oracle-Functions.zip. From the Cloud Shell''s hamburger menu, choose Upload. Step 3 Verify files using the ls command. Step 4 Run python3 Deploy_Oracle_Functions.py -h. The deploy_oracle_functions_cloudshell.py script requires some input parameters whose details can be found using help argument, as shown in figure below. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 249Deploy the ASA Virtual Auto Scale Solution on OCI Deploy Oracle Functions To run the script pass the following arguments: Table 25: Arguments and Details Argument Particulars Application Name It is the name of OCI Application created by Terraform Template-1 deployment. Its value is obtained by combining “autoscale_group_prefix” given in Template-1 and suffix “_application”. Region Identifier Region identifier is the region codeword fixed in the OCI for different regions. Example: ''us-phoenix-1'' for Phoenix or “ap-melbourne-1” for Melbourne. To get the list of all region with their region identifiers, go to OCI > Administration > Region Management. Profile Name It is simple User’s profile name in OCI. Example: oracleidentitycloudservice/@.com The name can be found under profile section of the user. Compartment OCID It is the compartment’s OCID (Oracle Cloud Identifier). Compartment OCID where user have the OCI Application. Go to OCI > Identity > Compartment > Compartment Details. Object Storage Namespace It is unique identifier created at the time of Tenancy creation. Go to OCI > Administration > Tenancy Details. Authorization Token This is used as password for docker login which authorizes it to push Oracle-Functions into the OCI container registry. Specify the token in quotes in the deployment script. Go to OCI > Identity > Users > User Details > Auth Tokens > Generate Token. For some reason, if you are not able to see User Details then clickDeveloper services >Functions. Go to the application created by Terraform Template-1. Click Getting Started, and choose Cloud Shell Setup and among the steps you will find the link to generate auth token as shown below. Step 5 Run the python3 Deploy_Oracle_Functions.py command by passing valid input arguments. It will take some time to deploy all the functions. You can then remove the file and close the Cloud Shell. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 250Deploy the ASA Virtual Auto Scale Solution on OCI Deploy Terraform Template-2 Deploy Terraform Template-2 Template 2 deploys the resources related to alarm creation, including alarms, ONS topics for invoking function. The deployment of template 2 is similar to Terraform Template-1 deployment. Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Developer Service > Resource Manager > Stack > Create Stack. Select Terraform template template2.zip in the target folder as source of Terraform configuration. Step 3 In next step, click Terraform Actions > Apply. Deploy Autoscale Using Cloud Shell To avoid the deployment overhead, you can invoke the easy, end-to-end deployment script to deploy the autoscale solution (terraform template1, template2 and oracle functions). Step 1 Upload the asav_autoscale_deploy.zip file in the target folder to the cloud shell and extract the files. Step 2 Make sure you have updated the input parameters in the deployment_parameters.json before executing the python3 make.py build command. Step 3 To start the autoscale solution deployment, run the python3 oci_asav_autoscale_deployment.py command on the cloud shell. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 251Deploy the ASA Virtual Auto Scale Solution on OCI Validate Deployment It will take approximately 10-15 minutes for the solution deployment to complete. If there is any error during the solution deployment, error log is saved. Validate Deployment Validate if all resources are deployed and the Oracle Functions are connected with Alarm&Events. By default, instance pool has minimum and maximum number of instances as zero. You can edit the instance pool in OCI UI with the minimum and maximum number that you want. This will trigger new ASA virtual instances. We recommend that you launch only one instance and check for its workflow, validate its behaviour to ensure that it is working as it is expected. Post this validation, you can deploy the actual requirements of ASA virtual. Note Specify the minimum number of ASA virtual instances as Scale-In protected to avoid their removal by OCI scaling policies. Upgrade Upgrade Autoscale Stack No support for upgrade in this release. Stacks should be re-deployed. Upgrade ASA Virtual VMs No support for upgrade for ASA virtual VMs in this release. The Stack should be re-deployed with the required ASA virtual image. Instance Pool 1. To change minimum and maximum number of instances in the Instance Pool: Click Developer Services > Function > Application Name(created by Terraform Template 1) > Configuration. Change the min_instance_count and max_instance_count respectively. 2. Deletion/Termination of Instance is not equal to Scale-in. If any instance in the Instance Pool is deleted/terminated due to external action and not the scale-in action, instance pool automatically initiates a new instance to recover. 3. Max_instance _count defines threshold limit for Scale-out action, but it can be surpassed by changing the instance count of the Instance Pool through the UI. Ensure that the instance count from UI is less than max_instance_count set in OCI Application. Else, increase the threshold accordingly. 4. Reducing the count of instances in Instance Pool directly from the application does not perform the clean-up actions set programmatically. Due to which backends will not be drained and removed from both the load balancers, if ASA virtual has license, it will be lost. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 252Deploy the ASA Virtual Auto Scale Solution on OCI Load Balancer Backend Sets 5. Due to some reasons, if ASA virtual instance is unhealthy, not responding and unreachable through SSH for some definite period of time, instance is removed from the instance pool forcefully, any license may be lost. Oracle Functions • Oracle Functions are actually docker images. These images are saved into root directory of OCI Container registry. These images should not be deleted as it will also delete the function that are used in the Autoscale solution. • OCI Application created by Terraform template-1, contains crucial environmental variables, which are required by Oracle Functions to work properly. Neither the value nor the format of these environment variables should be changed, unless it is mandated. Any changes made are reflected with new instances only. Load Balancer Backend Sets In OCI, Load Balancer attachment to instance pool is only supported using primary interface that is configured as management interface in ASA virtual. Hence, inside interface is connected to Internal Load Balancer’s backend set; outside interface is connected to External load balancer’s backend set. These IPs are not automatically added or removed from backend set. The Autoscale solution programmatically handles both of this task. But in case of any external action, maintenance or troubleshooting, there could be situation demanding manual effort to operate on them. As per requirements, more ports can be opened on Load Balancer using listener and backend sets. Upcoming instances IPs are automatically added to the backend set, however already existing instances IPs should be manually added. Adding Listener in Load Balancer To add some port as listener in Load Balancer, go to OCI > Networking > Load Balancer > Listener > Create Listener. Register a backend to Backend Set In order to register an ASA virtual instance to Load Balancer, ASA virtual instance Outside interface IP should be configured as a backend in the Backend Set of External Load Balancer. Inside interface IP should be configured as backend in Backend set of Internal Load Balancer. Ensure that the port you are using has been added into the listener. Delete Autoscale Configuration from OCI Stacks deployed using terraform can be deleted in the samemanner, using ResourceManager in OCI. Deletion of stack removes all the resources created by it and all the information associated with these resources are removed permanently. Note In case of stack deletion, it is recommended to make the Minimum number of instances in Instance pool to 0, wait for instances to be terminated. This will help removal of all instances and won’t leave any residue. You can perform a Manual Deletion or use Delete Autoscale Using Cloud Shell . Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 253Deploy the ASA Virtual Auto Scale Solution on OCI Manual Deletion Manual Deletion The end-to-end autoscale solution deletion consist of three steps: Delete Terraform Template-2 Stack, Delete Oracle-Functions, and then Delete Terraform Template-1 Stack . Delete Terraform Template-2 Stack To delete the Autoscale configuration, you must begin with Terraform Template-2 stack deletion. Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Developer Services > Resource Manager > Stack. Step 3 Select the stack created by Terraform Template-2, then select Destroy in Terraform Actions drop-down menu as shown in the figure below: Destroy Job is created which takes some time to remove resources one after another. You can delete the stack after the destroy job is completed. as shown in the figure below: Step 4 Proceed to delete the Oracle functions. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 254Deploy the ASA Virtual Auto Scale Solution on OCI Delete Oracle-Functions Delete Oracle-Functions The Oracle-Function deployment is not a part of Terraform Template Stack deployment, it is uploaded separately using Cloud Shell. Hence, its deletion is also not supported by Terraform Stack deletion. You must delete all the Oracle-Functions inside the OCI application created by Terraform Template-1. Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Developer Services > Functions. Choose the application name that was created in Template-1 stack. Step 3 Inside this application visit each function and delete it. Delete Terraform Template-1 Stack Note Template-1 Stack deletion will only succeed after deleting all Oracle-Functions. Same as Terraform Template-2 Deletion. Step 1 Log into the OCI portal. The region is displayed in the upper right corner of your screen. Make sure you are in the intended region. Step 2 Choose Developer Services > Resource Manager > Stack. Step 3 Select the stack created by Terraform Template-2, then click Destroy in Terraform Actions drop-down menu. Destroy Job will be created which will take some time to remove resources one after another. Step 4 After the destroy job is completed, you can delete the stack from More Actions drop-down menu as shown in the figure below. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 255Deploy the ASA Virtual Auto Scale Solution on OCI Delete Autoscale Using Cloud Shell Post successful deletion of Terraform Template-1 stack, you must verify whether all the resources are deleted and there is no residue of any kind. Delete Autoscale Using Cloud Shell User can use the script to delete the stacks and oracle functions by executing the python3 oci_asav_autoscale_teardown.py command in the cloud shell. If the stacks are deployed manually, update the stack id of the stack1 and stack2, and update the application id in the teardown_parameters.json file. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 256C H A P T E R 12 Deploy the ASA Virtual on Google Cloud Platform You can deploy the ASA virtual on the Google Cloud Platform (GCP). • Overview, on page 257 • Prerequisites, on page 259 • Guidelines and Limitations, on page 260 • Sample Network Topology, on page 260 • Deploy the ASA Virtual on Google Cloud Platform, on page 261 • Access the ASA Virtual Instance on GCP, on page 264 • CPU Usage and Reporting, on page 266 Overview GCP lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google. The ASA virtual runs the same software as physical ASAs to deliver proven security functionality in a virtual form factor. The ASA virtual can be deployed in the public GCP. It can then be configured to protect virtual and physical data center workloads that expand, contract, or shift their location over time. GCP Machine Type Support Select the Google virtual machine type and size to meet your ASA virtual needs. The ASA virtual supports the following General-purpose NI, N2 and Compute-optimized C2 GCP machine types: Table 26: Supported Compute-Optimized Machine Types Compute-Optimized Machine Types Attributes vCPUs Memory (GB) c2-standard-4 4 16 c2-standard-8 8 32 c2-standard-16 16 64 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 257Deploy the ASA Virtual on Google Cloud Platform Overview Table 27: Supported General Purpose Machine Types Machine Type Attributes vCPUs Memory (GB) n1-standard-4 4 15 n1-standard-8 8 30 n1-standard-16 16 60 n2-standard-4 4 16 n2-standard-8 8 32 n2-standard-16 16 64 n1-highcpu-8 8 7.2 n1-highcpu-16 16 14.4 n2-highcpu-8 8 8 n2-highcpu-16 16 16 n2-highmem-4 4 32 n2-highmem-8 8 64 • The ASA virtual requires a minimum of 3 interfaces. • The maximum supported vCPUs is 16. • The Memory-Optimized machine type is not supported You create an account on GCP, launch an ASA virtual instance using the ASA virtual firewall (ASA virtual) offering on the GCP Marketplace, and choose a GCP machine type. C2 Compute-Optimized Machine Type Limitations The Compute-Optimized C2 machine types have the following restrictions: • You cannot use regional persistent disks with compute-optimized machine types. For more information, see the Google documentation Adding or resizing regional persistent disks. • Subject to different disk limits than general-purpose and memory-optimized machine types. For more information, see the Google documentation Block storage performance. • Available only in select zones and regions. For more information, see the Google documentation Available regions and zones. • Available only on select CPU platforms. For more information, see the Google documentation CPU platforms. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 258Deploy the ASA Virtual on Google Cloud Platform Prerequisites Performance Tiers for ASA virtual The ASA virtual supports performance-tiered licensing that provides different throughput levels and VPN connection limits based on deployment requirements. Performance Tier Instance Type (Core/RAM) Rate Limit RA VPN Session Limit ASAv5 c2-standard-4 100 Mbps 50 4 core/16 GB ASAv10 c2-standard-4 1 Gbps 250 4 core/16 GB ASAv30 c2-standard-4 2 Gbps 750 4 core/16 GB ASAv50 c2-standard-8 7.6 Gbps 10,000 8 core/32 GB ASAv100 c2-standard-16 16 Gbps 20,000 16 core/64 GB Prerequisites • Create a GCP account at https://cloud.google.com. • Create your GCP project. See the Google documentation, Creating Your Project. • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Licenses: Smart Software Licensing. • Interface requirements: • Management interface—Used to connect the ASA virtual to the ASDM; can’t be used for through traffic. • Inside interface—Used to connect the ASA virtual to inside hosts. • Outside interface—Used to connect the ASA virtual to the public network. • Communications paths: • Public IPs for access into the ASA virtual. • For ASA virtual system requirements, see Cisco Secure Firewall ASA Compatibility. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 259Deploy the ASA Virtual on Google Cloud Platform Guidelines and Limitations Guidelines and Limitations Supported Features The ASA virtual on GCP supports the following features: • Deployment in the GCP Virtual Private Cloud (VPC) • Maximum of 16 vCPUs per instance • Routed mode (default) • Licensing – Only BYOL is supported Unsupported Features The ASA virtual on GCP does not support the following: • IPv6 • Instance-level IPv6 setting is not supported on GCP • Only the load balancer can accept IPv6 connections, and proxy them over IPv4 to GCP Instances • Jumbo Frames • ASA virtual native HA • Autoscale • Transparent/inline/passive modes Sample Network Topology The following figure shows the recommended network topology for the ASA virtual in Routed Firewall Mode with 3 subnets configured in GCP for the ASA virtual (management, inside, and outside). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 260Deploy the ASA Virtual on Google Cloud Platform Deploy the ASA Virtual on Google Cloud Platform Figure 55: Sample ASA Virtual on GCP Deployment Deploy the ASA Virtual on Google Cloud Platform You can deploy the ASA virtual on the Google Cloud Platform (GCP). Create VPC Networks Before you begin The ASA virtual deployment requires three networks which you must create prior to deploying the ASA virtual. The networks are as follows: • Management VPC for the management subnet. • Inside VPC for the inside subnet. • Outside VPC for the outside subnet. Additionally, you set up the route tables and GCP firewall rules to allow traffic flow through the ASA virtual. The route tables and firewall rules are separate from those that are configured on the ASA virtual itself. Name the GCP route tables and firewall rules according to associated network and functionality. See Sample Network Topology, on page 260. Step 1 In the GCP console, choose Networking > VPC network > VPC networks , then click Create VPC Network. Step 2 In the Name field, enter the descriptive name for your VPC network, for example, vpc-asiasouth-mgmt. Step 3 From the Subnet creation mode, click Custom. Step 4 In the Name field under New subnet, enter the desired name, for example, vpc-asiasouth-mgmt. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 261Deploy the ASA Virtual on Google Cloud Platform Create the Firewall Rules Step 5 From the Region drop-down list, select the region appropriate for your deployment. All three networks must be in the same region. Step 6 In the IP address range field, enter the first network''s subnet in CIDR format, such as 10.10.0.0/24. Step 7 Accept the defaults for all other settings, then click Create. Step 8 Repeat steps 1-7 to create the remaining two networks in your VPC. Create the Firewall Rules You apply the firewall rules for the management interface (to allow SSH and HTTPS connections) while deploying the ASA virtual instance, see Create the ASA Virtual Instance on GCP, on page 262. According to your requirements, you can also create firewall rules for the inside and outside interfaces. Step 1 In the GCP console, choose Networking > VPC network > Firewall, then click Create Firewall Rule. Step 2 In the Name field, enter a descriptive name for your firewall rule, for example, vpc-asiasouth-inside-fwrule. Step 3 From the Network drop-down list, select the name of the VPC network for which you are creating the firewall rule, for example, asav-south-inside. Step 4 From the Targets drop-down list, select the option applicable for your firewall rule, for example, All instances in the network. Step 5 In the Source IP ranges field, enter the source IP address ranges in CIDR format, for example, 0.0.0.0/0. Traffic is only allowed from sources within these IP address ranges. Step 6 Under Protocols and ports, select Specified protocols and ports. Step 7 Add your security rules. Step 8 Click Create. Create the ASA Virtual Instance on GCP Complete the following steps to deploy an ASA virtual instance using the Cisco ASA virtual firewall (ASA virtual) offering from the GCP Marketplace. Step 1 Log into to the GCP Console. Step 2 Click Navigation menu > Marketplace. Step 3 Search the Marketplace for “Cisco ASA virtual firewall (ASAv)” and choose the offering. Step 4 Click Launch. Step 5 Add a unique Deployment name for the instance. Step 6 Select the Zone where you want to deploy the ASA virtual. Step 7 Select the appropriate Machine type. For a list of supported machine types, see Overview, on page 257. Step 8 (Optional) Paste the public key from the SSH key pair under SSH key (optional). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 262Deploy the ASA Virtual on Google Cloud Platform Create the ASA Virtual Instance on GCP The key pair consists of a public key that GCP stores and a private key file that the user stores. Together they allow you to connect to your instance securely. Be sure to save the key pair to a known location, as it will be required to connect to the instance. Step 9 Choose whether to allow or block the project-wide SSH keys to access this instance. See the Google documentation Allowing or blocking project-wide public SSH keys from a Linux instance. Step 10 (Optional) Under Startup script, provide the day0 configuration for your ASA virtual. The day0 configuration is applied during the firstboot of the ASA virtual. The following example shows a sample day0 configuration you can copy and paste in the Startup script field: See the ASAConfiguration Guides and the ASACommand Reference for complete information on the ASA commands. Important When you copy text from this example, you should validate the script in a third-party text editor or validation engine to prevent format errors and remove invalid Unicode characters. !ASA Version 9.15.1 interface management0/0 management-only nameif management security-level 100 ip address dhcp setroute no shut ! same-security-traffic permit inter-interface same-security-traffic permit intra-interface ! crypto key generate rsa modulus 2048 ssh 0 0 management ssh timeout 60 ssh version 2 username admin password cisco123 privilege 15 username admin attributes service-type admin ! required config end dns domain-lookup management dns server-group DefaultDNS name-server 8.8.8.8 Step 11 Keep the default Boot disk type and Boot disk size in GB for the provisioned disk space. Step 12 Configure the interfaces under Network interfaces. • management • inside • outside Note You cannot add interfaces to an instance after you create it. If you create the instance with an improper interface configuration, you must delete the instance and recreate it with the proper interface configuration. a) From the Network drop-down list, select a VPC network, for example, vpc-asiasouth-mgmt. b) From the External IP drop-down list, select the appropriate option. For themanagement interface, select theExternal IP toEphemeral. This is optional for inside and outside interfaces. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 263Deploy the ASA Virtual on Google Cloud Platform Access the ASA Virtual Instance on GCP c) Click Done. Step 13 Apply the firewall rules under Firewall. • Check the Allow TCP port 22 traffic from the Internet (SSH access) check box to allow SSH. • Check the Allow HTTPS traffic from the Internet (ASDM access) check box to allow HTTPS connections. Step 14 Click More to expand the view and make sure that IP Forwarding is set to On. Step 15 Click Deploy. View the instance details from the VM instance page of the GCP console. You’ll find the internal IP address, external IP address, and controls to stop and start the instance. You need to stop the instance if you need to edit it. Access the ASA Virtual Instance on GCP Make sure that you have already enabled a firewall rule to allow SSH (TCP connections through port 22) during deployment. See Create the ASA Virtual Instance on GCP, on page 262 for more information. This firewall rule enables access to the ASA virtual instance and allows you to connect to the instance using the following methods. • External IP • Any other SSH client or third-party tools • Serial console • Gcloud command line See the Google documentation, Connecting to instances for more information. Note You can log in to the ASA virtual instance using the credentials specified in the day0 configuration, or by using the SSH key pair you created during the instance launch. Connect to the ASA Virtual Instance Using an External IP The ASA virtual instance is assigned with an internal IP and an external IP. You can use the external IP to access the ASA virtual instance. Step 1 In the GCP console, choose Compute Engine > VM instances. Step 2 Click the ASA virtual instance name to open the VM instance details page. Step 3 Under the Details tab, click the drop-down menu for the SSH field. Step 4 Select the desired option from the SSH drop-down menu. You can connect to the ASA virtual instance using the following method. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 264Deploy the ASA Virtual on Google Cloud Platform Connect to the ASA Virtual Instance Using SSH • Any other SSH client or third-party tools—See the Google documentation, Connecting using third-party tools for more information. Note You can log in to the ASA virtual instance using the credentials specified in the day0 configuration, or by using the SSH key pair you created during the instance launch. Connect to the ASA Virtual Instance Using SSH To connect to the ASA virtual instance from a Unix-style system, log in to the instance using SSH. Step 1 Use the following command to set the file permissions so that only you can read the file: $ chmod 400 Where: is the full path and name of the file that contains the private key associated with the instance you want to access. Step 2 Use the following SSH command to access the instance. $ ssh –i @ Where: is the full path and name of the file that contains the private key associated with the instance you want to access. is the username for the ASA virtual instance. is your instance IP address that you retrieved from the Console. is your instance management interface IPv6 address. Connect to the ASA Virtual Instance Using the Serial Console Step 1 In the GCP console, choose Compute Engine > VM instances. Step 2 Click the ASA virtual instance name to open the VM instance details page. Step 3 Under the Details tab, click Connect to serial console. See the Google documentation, Interacting with the serial console for more information. Connect to the ASA Virtual Instance Using Gcloud Step 1 In the GCP console, choose Compute Engine > VM instances. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 265Deploy the ASA Virtual on Google Cloud Platform CPU Usage and Reporting Step 2 Click the ASA virtual instance name to open the VM instance details page. Step 3 Under the Details tab, click the drop-down menu for the SSH field. Step 4 Click View gcloud command > Run in Cloud Shell. The Cloud Shell terminal window opens. See the Google documentation, gcloud command-line tool overview, and gcloud compute ssh for more information. CPU Usage and Reporting The CPU Utilization report summarizes the percentage of the CPU used within the time specified. Typically, the Core operates on approximately 30 to 40 percent of total CPU capacity during nonpeak hours and approximately 60 to 70 percent capacity during peak hours. vCPU Usage in the ASA Virtual The ASA virtual vCPU usage shows the amount of vCPUs used for the data path, control point, and external processes. The GCP reported vCPU usage includes the ASA virtual usage as described: • ASA Virtual idle time • %SYS overhead used for the ASA virtual machine • Overhead of moving packets between vSwitches, vNICs, and pNICs. This overhead can be quite significant. CPU Usage Example The show cpu usage command can be used to display CPU utilization statistics. Example Ciscoasa#show cpu usage CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1% The following is an example in which the reported vCPU usage is substantially different: • ASA Virtual reports: 40% • DP: 35% • External Processes: 5% • ASA (as ASA Virtual reports): 40% • ASA idle polling: 10% • Overhead: 45% Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 266Deploy the ASA Virtual on Google Cloud Platform GCP CPU Usage Reporting The overhead is used to perform hypervisor functions and to move packets between NICs and vNICs using the vSwitch. GCP CPU Usage Reporting Click the instance name on GCP Console and then click on the tab Monitoring. You will be able to see the CPU usage percentage. Compute Engine lets you export detailed reports of your Compute Engine usage to a Google Cloud Storage bucket using the usage export feature. Usage reports provide information about the lifetime of your resources. For example, you can see how many VM instances in your project are running an n2-standard-4 machine type and how long each instance has been running. You can also review the storage space of a persistent disk, and information about other Compute Engine features. ASA Virtual and GCP Graphs There are differences in the CPU % numbers between the ASA Virtual and GCP: • The GCP graph numbers are always higher than the ASA Virtual numbers. • GCP calls it %CPU usage; the ASA Virtual calls it %CPU utilization. The terms “%CPU utilization” and “%CPU usage” mean different things: • CPU utilization provides statistics for physical CPUs. • CPU usage provides statistics for logical CPUs, which is based on CPU hyperthreading. But because only one vCPU is used, hyperthreading is not turned on. GCP calculates the CPU % usage as follows: Amount of actively used virtual CPUs, specified as a percentage of the total available CPUs This calculation is the host view of the CPU usage, not the guest operating system view, and is the average CPU utilization over all available virtual CPUs in the virtual machine. For example, if a virtual machine with one virtual CPU is running on a host that has four physical CPUs and the CPU usage is 100%, the virtual machine is using one physical CPU completely. The virtual CPU usage calculation is Usage in MHz / number of virtual CPUs x core frequency Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 267Deploy the ASA Virtual on Google Cloud Platform ASA Virtual and GCP Graphs Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 268C H A P T E R 13 Deploy the ASA Virtual Auto Scale Solution on GCP • Overview, on page 269 • Download the Deployment Package, on page 271 • Auto Scale Solution Components, on page 271 • Prerequisites, on page 274 • Deploy the Auto Scale Solution, on page 280 • Auto Scale Logic, on page 285 • Logging and Debugging, on page 285 • Guidelines and Limitations, on page 286 • Troubleshooting, on page 287 Overview The following sections describe how the components of the auto scale solution work for the ASA virtual on GCP. About the Auto Scale Solution ASA virtual auto scale for GCP is a complete serverless implementation that makes use of serverless infrastructure provided by GCP (Cloud Functions, Load Balancers, Pub/Sub, Instance Groups, etc.). Some of the key features of the ASA virtual auto scale for GCP implementation include: • GCP Deployment Manager template-based deployment. • Support for scaling metrics based on CPU. • Support for ASA virtual deployment and multi-availability zones. • Completely automated configuration automatically applied to scaled-out ASA virtual instances. • Support for Load Balancers and multi-availability zones. • Cisco provides an auto scale for GCP deployment package to facilitate the deployment. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 269Deploy the ASA Virtual Auto Scale Solution on GCP Auto Scale Use Case Auto Scale Use Case The ASA virtual auto scale for GCP is an automated horizontal scaling solution that positions an ASA virtual instance group sandwiched between a GCP Internal load balancer (ILB) and a GCP External load balancer (ELB). • The ELB distributes traffic from the Internet to ASA virtual instances in the instance group; the firewall then forwards traffic to the application. • The ILB distributes outbound Internet traffic from an application to ASA virtual instances in the instance group; the firewall then forwards traffic to the Internet. • A network packet will never pass through both (internal & external) load balancers in a single connection. • The number of ASA virtual instances in the scale set will be scaled and configured automatically based on load conditions. Figure 56: ASA Virtual Auto Scale Use Case Scope This document covers the detailed procedures to deploy the serverless components for the ASA virtual Auto Scale for GCP solution. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 270Deploy the ASA Virtual Auto Scale Solution on GCP Download the Deployment Package Important • Read the entire document before you begin your deployment. • Make sure the prerequisites are met before you start deployment. • Make sure you follow the steps and order of execution as described herein. Download the Deployment Package The ASA virtual Auto Scale for GCP solution is a GCP Deployment Manager template-based deployment that makes use of the serverless infrastructure provided by GCP (Cloud Functions, Load Balancers, Pub/Sub, Instance Groups, etc.). Download the files required to launch the ASA virtual auto scale for GCP solution. Deployment scripts and templates for your ASA version are available in the GitHub repository. Attention Note that Cisco-provided deployment scripts and templates for auto scale are provided as open source examples, and are not covered within the regular Cisco TAC support scope. Auto Scale Solution Components The following components make up the ASA virtual auto scale for GCP solution. Deployment Manager • Treat your configuration as code and perform repeatable deployments. Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using YAML. You can also use Python or Jinja2 templates to parameterize the configuration and allow the reuse of common deployment paradigms. • Create configuration files that define the resources. The process of creating those resources can be repeated over and over with consistent results. See https://cloud.google.com/deployment-manager/docs for more information. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 271Deploy the ASA Virtual Auto Scale Solution on GCP Auto Scale Solution Components Figure 57: Deployment Manager View Managed Instance Group in GCP A Managed Instance Group (MIG) creates each of its managed instances based on the instance template and optional stateful configuration that you specify. See https://cloud.google.com/compute/docs/instance-groups for more information. Figure 58: Instance Group Features Target Utilization Metrics • The following diagram alongside shows the target utilization metrics. Only average CPU utilization metrics are used in making autoscaling decisions. • The autoscaler continuously collects usage information based on the selected utilization metric, compares actual utilization to your desired target utilization, and uses this information to determine whether the group needs to remove instances (Scale In) or add instances (Scale Out). • The target utilization level is the level at which you want to maintain your virtual machine (VM) instances. For example, if you scale based on CPU utilization, you can set your target utilization level at 75% and Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 272Deploy the ASA Virtual Auto Scale Solution on GCP Auto Scale Solution Components the autoscaler will maintain the CPU utilization of the specified group of instances at or close to 75%. The utilization level for each metric is interpreted differently based on the autoscaling policy. See https://cloud.google.com/compute/docs/autoscaler for more information. Figure 59: Target Utilization Metrics Serverless Cloud Functions You use serverless Google Cloud functions for setting the SSH Password, enable Password, and Changing the Hostname when the instance comes up in the Instance Group Manager. • When a new ASA virtual instance comes up in the instance group during Scale Out, you need to set the SSH Password, enable Password, and change the Hostname because you cannot always monitor the Scale Out process. • Cloud functions are triggered through a Cloud Pub/Sub Topic during the Scale Out process. You also have a Log Sink with a filter that is exclusive to the addition of instances while Scale Out. Serverless License Deregistering using Cloud Functions • While the instances are getting deleted during Scale In, you need to deregister the license from the ASA virtual instance. • Cloud functions are triggered through a Cloud Pub/Sub Topic. Particularly for the deletion process, you have a Log Sink with a filter that is exclusive to the deletion of instances while Scale In. • Cloud Function, when triggered, will SSH into the deleting ASA virtual instance and run the command for license deregistration. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 273Deploy the ASA Virtual Auto Scale Solution on GCP Prerequisites High-Level Overview of Autoscale Solution Figure 60: Autoscale Solution Overview Prerequisites GCP Resources GCP Project An existing or newly created project is required to deploy all the components of this solution. Networking Make sure three VPCs are available/created. An auto scale deployment will not create, alter, or manage any networking resources. The ASA virtual requires 3 network interfaces, thus your virtual network requires 3 subnets for: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 274Deploy the ASA Virtual Auto Scale Solution on GCP Prepare the ASA Configuration File • Management traffic • Inside traffic • Outside traffic Figure 61: VPC Network View Firewall Firewall rules that allow inter VPC communication and also allow health probes are required to be created. You must note the firewall tags which are used later in the deployment manager template. The following ports should be open in the Network Security Group to which the subnets are connected: • SSH(TCP/22) — Required for the health probe between the Load Balancer and ASA virtual. Required for communication between the serverless functions and ASA virtual. • Application-specific protocol/ports — Required for any user applications (for example, TCP/80, etc.). Prepare the ASA Configuration File Prepare an ASA virtual configuration file which will be put into the deployment manager jinja configuration file. This configuration will be used as a startup script in the instance template for ASA virtual in the project. The configuration file should have the following (at a minimum): • Set DHCP IP assignment to all the interfaces. • Nic0 should be marked as ‘outside’ because GCP Load Balancer forwards traffic only to nic0. • Nic0 will be used to SSH to ASA virtual as it only supports IP forwarding. • Enable SSH on the outside interface in ASA configuration. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 275Deploy the ASA Virtual Auto Scale Solution on GCP Prepare the ASA Configuration File • Create NAT configuration to forward traffic from outside to inside interface. • Create Access policy to allow desired traffic. • For the health status of resources, their health probes should be redirected to the metadata server using proper NAT rules. The following is a sample ASA configuration file for reference only. !ASA Version 9.15.1.10 !Interface Config interface G0/0 nameif inside security-level 100 ip address dhcp setroute no shutdown interface G0/1 nameif management security-level 50 ip address dhcp setroute no shutdown interface M0/0 no management-only nameif outside security-level 0 ip address dhcp setroute no shutdown ! same-security-traffic permit inter-interface ! !Due to some constraints in GCP, !"GigabitEthernet0/0" will be used as a Management interface !"Management0/0" will be used as a data interface crypto key generate rsa modulus 2048 ssh 0.0.0.0 0.0.0.0 management ssh version 2 ssh timeout 60 aaa authentication ssh console LOCAL ssh authentication publickey {{ properties["publicKey"] }} username admin privilege 15 username admin attributes service-type admin ! required config end dns domain-lookup management dns server-group DefaultDNS name-server 8.8.8.8 ! access-list all extended permit ip any any access-list out standard permit any4 access-group all global ! Objects object network metadata host 169.254.169.254 object network ilb host $(ref.{{ properties["resourceNamePrefix"] }}-ilb-ip.address) object network hc1 subnet 35.191.0.0 255.255.0.0 object network hc2 subnet 130.211.0.0 255.255.63.0 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 276Deploy the ASA Virtual Auto Scale Solution on GCP Build the GCP Cloud Function Package object network elb host $(ref.{{ properties["resourceNamePrefix"] }}-elb-ip.address) object network appServer host 10.61.2.3 object network defaultGateway subnet 0.0.0.0 0.0.0.0 ! Nat Rules nat (inside,outside) source dynamic hc1 ilb destination static ilb metadata nat (inside,outside) source dynamic hc2 ilb destination static ilb metadata nat (inside,outside) source dynamic defaultGateway interface ! object network appServer nat (inside,outside) static $(ref.{{ properties["resourceNamePrefix"] }}-elb-ip.address) object network defaultGateway nat (outside,inside) dynamic interface ! Route Add route inside 0.0.0.0 0.0.0.0 10.61.1.1 2 route management 0.0.0.0 0.0.0.0 10.61.3.1 3 license smart register idtoken Build the GCP Cloud Function Package The ASA virtual GCP auto scale solution requires that you build two archive files that deliver the cloud functions in the form of a compressed ZIP package. • scalein-action.zip • scaleout-action.zip See the auto scale deployment instructions for information on how to build the scalein-action.zip and scaleout-action.zip packages. These functions are as discrete as possible to carry out specific tasks and can be upgraded as needed for enhancements and new release support. Input Parameters The following table defines the template parameters and provides an example. Once you decide on these values, you can use these parameters to create the ASA virtual device when you deploy the GCP Deployment Manager template into your GCP project. Table 28: Template Parameters Parameter Name Allowed Values/Type Description Resource Creation Type resourceNamePrefix String All the resources are New created with name containing this prefix. Example: demo-test region Valid regions supported Name of the region where by GCP project will be deployed. [String] Example: us-central1 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 277Deploy the ASA Virtual Auto Scale Solution on GCP Input Parameters Parameter Name Allowed Values/Type Description Resource Creation Type serviceAccountMailId String [ Email Id] Email address that identifies the service account. vpcConnectorName String Name of the connector that handles the traffic between your serverless environment and your VPC network. Example: demo-test-vpc-connector bucketName String Name of the GCP storage bucket where the cloud function ZIP package will be uploaded. Example: demo-test-bkt cpuUtilizationTarget Decimal (0,1] The average CPU utilization of the VMs in the instance group the autoscaler should maintain. Example: 0.5 healthCheckFirewallRuleName String Tag of the firewall rule Existing that allows packets from health check probe IP ranges. Example: demo-test-healthallowall insideFirewallRuleName String Tag of the firewall rules Existing that allows communication in Inside VPC. Example: demo-test-inside-allowall insideVPCName String Name of Inside VPC. Existing Example: demo-test-inside insideVPCSubnet String Name of Inside subnet. Existing Example: demo-test-inside-subnt Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 278Deploy the ASA Virtual Auto Scale Solution on GCP Input Parameters Parameter Name Allowed Values/Type Description Resource Creation Type machineType String Machine type for the ASA virtual VM. Example: e2-standard-4 maxASACount Integer The maximum ASA virtual instances allowed in the instance group. Example: 3 mgmtFirewallRuleName String Tag of the firewall rules which allows communication in Management VPC. Example: demo-test-mgmt-allowall mgmtVPCName String Name of Management VPC. Example: demo-test-mgmt mgmtVPCSubnet String Name of Management Subnet. Example: demo-test-mgmt-subnt minASACount Integer The minimum ASA virtual instances available in the Instance Group at any given time. Example: 1 outsideFirewallRuleName String Tag of the firewall rules which allows communication in outside VPC. Example: demo-test-outside-allowall outsideVPCName String Name of Outside VPC. Example: demo-test-outside outsideVPCSubnet String Name of Outside Subnet. Example: demo-test-outside-subnt Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 279Deploy the ASA Virtual Auto Scale Solution on GCP Deploy the Auto Scale Solution Parameter Name Allowed Values/Type Description Resource Creation Type publicKey String SSH key of the ASA virtual VM. sourceImageURL String Image of the ASA virtual which is to be used in the project. Example: https://www.googleapis.com/ compute/v1/projects/ cisco-public/global/ images/ cisco-asav-9-15-1-15 Application server IP String Internal IP address of the address inside Linux machine. Example: 10.61.1.2 Inside VPC Gateway IP String Gateway of Inside VPC. address Example: 10.61.1.1 Management VPC String Gateway of Management Gateway IP address VPC. Example: 10.61.3.1 Deploy the Auto Scale Solution Step 1 Clone the Git repository to a local folder. git clone git_url -b branch_name Example: Step 2 Create the bucket in gcloud CLI. gsutil mb -c nearline gs://bucket_name Example: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 280Deploy the ASA Virtual Auto Scale Solution on GCP Deploy the Auto Scale Solution Step 3 Build compressed Zip packages: a) Create compressed Zip packages consisting of the following files from the folders scalein_action and scaleout_action. • main.py • basic_functions.py requirements.txt b) Rename the compressed Zip packages to scaleout-action.zip and scalein-action.zip. Note Navigate inside the folder, select the files, right-click, and select ‘compress | archive’ to make a .zip that GCP can read. Step 4 Upload the compressed Zip packages (scaleout-action.zip and scalein-action.zip) to the Cloud Editor workspace. Step 5 Upload the following files from the deployment manager template to the Cloud Editor workspace. • asav_autoscale.jinja • asav_autoscale_params.yaml • pre_deployment.jinja • pre_deployment.yaml Step 6 Copy the compressed Zip packages to the Bucket Storage. • gsutil cp scaleout-action.zip gs://bucket_name • gsutil cp scalein-action.zip gs://bucket_name Example: Step 7 Create VPC and Subnet for inside, outside, and management interfaces. In the management VPC, you need to have /28 subnet, for example, 10.8.2.0/28. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 281Deploy the ASA Virtual Auto Scale Solution on GCP Deploy the Auto Scale Solution Step 8 You need three firewall rules for the interfaces inside, outside, and management. Also, you should have a firewall rule to allow the health check probes. Step 9 Update the parameters in the Jinja and YAML files for the Pre-Deployment and ASA virtual Autoscale deployment. a) Open the asav_autoscale_params.yaml file and update the following parameters: • resourceNamePrefix: • region: • serviceAccountMailId: • publicKey: • insideVPCName: • insideVPCSubnet: • outsideVPCName: • outsideVPCSubnet: • mgmtVPCName: • mgmtVPCSubnet: • insideFirewallRuleName: • outsideFirewallRuleName: • mgmtFirewallRuleName: • healthCheckFirewallRuleName: • machineType: Note For the ASA virtual auto scale, the cpuUtilizationTarget: 0.5 parameter is set and you can edit it according to your requirements. This value signifies 50% CPU usage of all the ASA virtual Instance Group. b) Open the asav_autoscale.jinja file and update the following parameters. • host: • route inside 0.0.0.0 0.0.0.0: 2 • route management 0.0.0.0 0.0.0.0: 3 • license smart register idtoken: c) Open the pre_deployment.yaml file and update the following parameters. • resourceNamePrefix: • region: • serviceAccountMailId: • vpcConnectorName: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 282Deploy the ASA Virtual Auto Scale Solution on GCP Deploy the Auto Scale Solution • bucketName: Step 10 Create three secrets for the following using the Secret Manager GUI. See https://console.cloud.google.com/security/ secret-manager. • asav-en-password • asav-new-password • asav-private-key Step 11 Create the VPC connector. gcloud beta compute networks vpc-access connectors create --region --subnet= Example: gcloud beta compute networks vpc-access connectors create demo-vpc-connector --region us-central1 --subnet=outside-connect-28 Create request issued for: [demo-vpc-connector] Waiting for operation [projects/asavgcp-poc-4krn/locations/us-central1/operations/ 10595de7-837f-4c19-9396-0c22943ecf15] to complete...done. Created connector [demo-vpc-connector]. Step 12 Deploy the pre-deployment YAML configuration. gcloud deployment-manager deployments create --config pre_deployment.yaml Example: gcloud deployment-manager deployments create demo-predeployment --config pre_deployment.yaml The fingerprint of the deployment is b''9NOy0gsTPgg16SqUEVsBjA=='' Waiting for create [operation-1624383045917-5c55e266e596d-4979c5b6-66d1025c]...done. Create operation operation-1624383045917-5c55e266e596d-4979c5b6-66d1025c completed successfully Step 13 Create the ASA virtual auto scale deployment. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 283Deploy the ASA Virtual Auto Scale Solution on GCP Deploy the Auto Scale Solution gcloud deployment-manager deployments create --config asav_autoscale_params.yaml Example: gcloud deployment-manager deployments create demo-asav-autoscale --config asav_autoscale_params.yaml The fingerprint of the deployment is b''1JCQi7Il-laWOY7vOLza0g=='' Waiting for create [operation-1624383774235-5c55e51d79d01-1a3acf92-4f3daf16]...done. Create operation operation-1624383774235-5c55e51d79d01-1a3acf92-4f3daf16 completed successfully. Step 14 Create a route for ILB to forward the packets from the inside application to the Internet. gcloud beta compute routes create --network= --priority=1000 --destination-range=0.0.0.0/0 --next-hop-ilb= --next-hop-ilb-region= Example: gcloud beta compute routes create demo-ilb --network=sdt-test-asav-inside --priority=1000 --destination-range=0.0.0.0/0 --next-hop-ilb=demo-asav-fr-ilb --next-hop-ilb-region=us-central1 Created [https://www.googleapis.com/compute/beta/projects/asavgcp-poc-4krn/global /routes/demo-ilb]. Step 15 Create Cloud Router and Cloud NAT. gcloud compute routers create --project= --region --network= --advertisement-mode=custom gcloud compute routers nats create --router= --nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips --region= Example: gcloud compute routers create demo-cloud-router --project=asavgcp-poc-4krn --region us-central1 --network=sdt-test-asav-outside --advertisement-mode=custom Creating router [demo-cloud-router]...done. gcloud compute routers nats create demo-cloud-nat --router=demo-cloud-router --nat-all-subnet-ip-ranges Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 284Deploy the ASA Virtual Auto Scale Solution on GCP Auto Scale Logic --auto-allocate nat-external-ips --region=us-central1 Creating NAT [demo-cloud-nat] in router [demo-cloud-router]...done. Auto Scale Logic • The autoscaler treats the target CPU utilization level as a fraction of the average use of all vCPUs over time in the instance group. • If the average utilization of your total vCPUs exceeds the target utilization, the autoscaler adds more VM instances. If the average utilization of your total vCPUs is less than the target utilization, the autoscaler removes instances. • For example, setting a 0.75 target utilization tells the autoscaler to maintain an average utilization of 75% among all vCPUs in the instance group. • Only CPU utilization metrics are used in scaling decisions. • This logic is based on the assumption that load balancer will try to equally distribute connections across all ASAs, and on average, all ASAs should be loaded equally. Logging and Debugging Logs of cloud functions can be viewed as follows. • Scale Out function logs Figure 62: Scale Out Function Logs Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 285Deploy the ASA Virtual Auto Scale Solution on GCP Guidelines and Limitations • Scale In function log Figure 63: Scale In Function Log Guidelines and Limitations • Only IPv4 is supported. • Supported licensing is BYOL only. PAYG is not available for ASA virtual on GCP. • The external Load Balancer is created by the template, and therefore, any specific DNS requirements for Load Balancer''s public IP are out of the scope. • An assumption is made that the application is behind a user-created Load Balancer, and the ASA virtual will route all traffic to this Load Balancer (instead of directly sending traffic to a specific application IP). • Details about the need for TAGs, redundancy, and Load Balancer affinity configurations are not considered. • ASA virtual credentials are visible to you as: • Clear text in the serverless code. • In all the instances in the Instance Group. • In the Instance Template, if you are using a shared GCP account. Such sensitive data can be protected using the public key service in GCP. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 286Deploy the ASA Virtual Auto Scale Solution on GCP Troubleshooting Important Cisco recommends tracking the ASA virtual registration with the licensing server periodically to check if the scaled-out ASAs are registering with the licensing server as expected, and scaled-in ASA virtual instances are getting removed from the license server). Troubleshooting The following are common error scenarios and debugging tips for ASA virtual auto scale for GCP: • main.py not found—Make sure that the Zip package is made only from the files. You can go to cloud functions and check the file tree. There should not be any folder. • Error while deploying the template—Make sure that all the parameters values within “<>” are filled in. jinja and .yaml as well, or the deployment by the same name exists already. • Google Function cannot reach ASA virtual—Make sure that the VPC connector is created and the same name is mentioned in the YAML parameter file. • Authentication Failed while SSH-ing ASA virtual—Make sure that the Public and Private key pair is correct. • License Registration Failed—Make sure that the License ID token is correct. Also, ensure that the Cloud NAT is created and ASA virtual is able to reach tools.cisco.com. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 287Deploy the ASA Virtual Auto Scale Solution on GCP Troubleshooting Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 288C H A P T E R 14 Deploy the ASA Virtual on OpenStack You can deploy the ASA virtual on OpenStack. • Overview, on page 289 • Prerequisites for the ASA Virtual and OpenStack, on page 289 • Guidelines and Limitations, on page 290 • System Requirements, on page 291 • Sample Network Topology, on page 292 • Deploy the ASA Virtual, on page 293 Overview You can deploy the ASA virtual in an OpenStack environment. OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds, and is tightly integrated with the KVM hypervisor. Enabling OpenStack platform support for ASA virtual allows you to run ASA virtual on open source cloud platforms. OpenStack uses a KVM hypervisor to manage virtual resources. ASA virtual devices are already supported on KVM hypervisor. Therefore, there is no extra addition of kernel packages or drivers to enable OpenStack support. Prerequisites for the ASA Virtual and OpenStack • Download the ASA virtual qcow2 file from software.cisco.com and put it on your Linux host: http://www.cisco.com/go/asa-software • ASA virtual supports deployment on opensource OpenStack environment and Cisco VIM managed OpenStack environment. Set up the OpenStack environment according to the OpenStack guidelines. • See the opensource OpenStack document: Stein Release - https://docs.openstack.org/project-deploy-guide/openstack-ansible/stein/overview.html Queens Release - https://docs.openstack.org/project-deploy-guide/openstack-ansible/queens/ overview.html Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 289Deploy the ASA Virtual on OpenStack Guidelines and Limitations • See the Cisco Virtualized Infrastructure Manager (VIM) OpenStack document: Cisco Virtualized Infrastructure Manager Documentation, 3.4.3 to 3.4.5 • License the ASA virtual. Until you license the ASA virtual, it will run in degraded mode, which allows only 100 connections and throughput of 100 Kbps. See Licenses: Smart Software Licensing. • Interface requirements: • Management interface • Inside and outside interfaces • Communications paths: • Management interface—Used to connect the ASA virtual to the ASDM; can’t be used for traffic. • Inside interface (required)—Used to connect the ASA virtual to inside hosts. • Outside interface (required)—Used to connect the ASA virtual to the public network. • Communications paths: • Floating IPs for access into the ASA virtual. • Minimum supported ASA virtual version: • ASA 9.16.1 • For OpenStack requirements, see System Requirements. • For ASA virtual system requirements, see Cisco Secure Firewall ASA Compatibility. Guidelines and Limitations Supported Features The ASA virtual on OpenStack supports the following features: • Deployment of ASA virtual on the KVM hypervisor running on a compute node in your OpenStack environment. • OpenStack CLI • Heat template-based deployment • OpenStack Horizon dashboard • Routed mode (default) • Licensing – Only BYOL is supported • ASA virtual management using the CLI and ASDM • Drivers - VIRTIO, VPP, and SRIOV • IPv6 (version 9.19 and later) Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 290Deploy the ASA Virtual on OpenStack System Requirements Unsupported Features The ASA virtual on OpenStack does not support the following: • Autoscale • OpenStack releases other than the OpenStack Stein and Queens releases • Operating systems other than the Ubuntu 18.04 version and Red Hat Enterprise Linux (RHEL) 7.6 System Requirements The OpenStack environment must conform to the following supported hardware and software requirements. Table 29: Hardware and Software Requirements Category Supported Versions Notes Server UCS C240 M5 2 UCS servers are recommended, one each for os-controller and os-compute nodes. Driver VIRTIO, IXGBE, I40E These are the supported drivers. Operating System Ubuntu Server 18.04 This is the recommended OS on UCS servers. OpenStack Version Stein release Details of the various OpenStack releases are available at: https://releases.openstack.org/ Table 30: Hardware and Software Requirements for Cisco VIM Managed OpenStack Category Supported Versions Notes Server Hardware UCS C220-M5/UCS C240-M4 5 UCS servers are recommended, three each for os-controller and Two ormore for os-compute nodes. Drivers VIRTIO, SRIOV, and VPP These are the supported drivers. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 291Deploy the ASA Virtual on OpenStack Sample Network Topology Category Supported Versions Notes Cisco VIM Version Cisco VIM 3.4.4 See Cisco Virtualized Infrastructure Supported on: Manager Documentation, 3.4.3 to 3.4.5 for more information. • Operating System - Red Hat Enterprise Linux 7.6 Details of the various OpenStack releases are available at • OpenStack version - https://releases.openstack.org/. OpenStack 13.0 (Queens Release) Cisco VIM 4.2.1 See CiscoVirtualized Infrastructure Supported on: Manager Documentation, 4.2.1 for more information. • Operating System - Red Hat Enterprise Linux 8.2 Details of the various OpenStack releases are available at • OpenStack version - https://releases.openstack.org/. OpenStack 16.1 (Train Release) Figure 64: OpenStack Platform Topology OpenStack platform topology shows the general OpenStack setup on two UCS servers. Sample Network Topology The following figure shows the recommended network topology for the ASA virtual in Routed Firewall Mode with 3 subnets configured in OpenStack for the ASA virtual (management, inside, and outside). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 292Deploy the ASA Virtual on OpenStack Deploy the ASA Virtual Figure 65: Sample ASA Virtual on OpenStack Deployment Deploy the ASA Virtual Cisco provides sample heat templates for deploying the ASA virtual. Steps for creating the OpenStack infrastructure resources are combined in a heat template (deploy_os_infra.yaml) file to create networks, subnets, and router interfaces. At a high-level, the ASA virtual deployment steps are categorized into the following sections. • Upload the ASA virtual qcow2 image to the OpenStack Glance service. • Create the network infrastructure. • Network • Subnet • Router interface • Create the ASA virtual instance. • Flavor • Security Groups • Floating IP • Instance You can deploy the ASA virtual on OpenStack using the following steps. Upload the ASA Virtual Image to OpenStack Copy the qcow2 image (asav-.qcow2) to the OpenStack controller node, and then upload the image to the OpenStack Glance service. Before you begin Download the ASA virtual qcow2 file from Cisco.com and put it on your Linux host: http://www.cisco.com/go/asa-software Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 293Deploy the ASA Virtual on OpenStack Create the Network Infrastructure for OpenStack and ASA Virtual Note A Cisco.com login and Cisco service contract are required. Step 1 Copy the qcow2 image file to the OpenStack controller node. Step 2 Upload the ASA virtual image to the OpenStack Glance service. root@ucs-os-controller:$ openstack image create --public --disk- format qcow2 --container-format bare --file ./ Step 3 Verify if the ASA virtual image upload is successful. root@ucs-os-controller:$ openstack image list Example: root@ucs-os-controller:$ openstack image list+--------------------------------------+-------------------+--------+ | ID | Name | Status |+--------------------------------------+-------------------+--------+ | 06dd7975-0b6e-45b8-810a-4ff98546a39d | asav--image | active |+--------------------------------------+-------------------+--------+ The uploaded image and its status is displayed. What to do next Create the network infrastructure using the deploy_os_infra.yaml template. Create the Network Infrastructure for OpenStack and ASA Virtual Before you begin Heat template files are required to create the network infrastructure and the required components for ASA virtual, such as flavor, networks, subnets, router interfaces, and security group rules: • deploy_os_infra.yaml • env.yaml Templates for your ASA virtual version are available from the GitHub repository at: • https://github.com/CiscoDevNet/cisco-asav Important Note that Cisco-provided templates are provided as open source examples, and are not covered within the regular Cisco TAC support scope. Check GitHub regularly for updates and ReadMe instructions. Step 1 Deploy the infrastructure heat template file. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 294Deploy the ASA Virtual on OpenStack Create the ASA Virtual Instance on OpenStack root@ucs-os-controller:$ openstack stack create -e -t Example: root@ucs-os-controller:$ openstack stack create infra-stack -e env.yaml -t deploy_os_infra.yaml Step 2 Verify if the infrastructure stack is created successfully. root@ucs-os-controller:$ openstack stack list What to do next Create the ASA virtual instance on OpenStack. Create the ASA Virtual Instance on OpenStack Use the sample ASA virtual heat template to deploy ASA virtual on OpenStack. Before you begin A heat template is required to deploy the ASA virtual on OpenStack: • deploy_asav.yaml Templates for your ASA virtual version are available from the GitHub repository at: • https://github.com/CiscoDevNet/cisco-asav Important Note that Cisco-provided templates are provided as open source examples, and are not covered within the regular Cisco TAC support scope. Check GitHub regularly for updates and ReadMe instructions. Step 1 Deploy the ASA virtual heat template file (deploy_asav.yaml) to create the ASA virtual instance. root@ucs-os-controller:$ openstack stack create asav-stack -e env.yaml-t deploy_asav.yaml Example: +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | id | 14624af1-e5fa-4096-bd86-c453bc2928ae | | stack_name | asav-stack | | description | ASAvtemplate | | creation_time | 2020-12-07T14:55:05Z | | updated_time | None | | stack_status | CREATE_IN_PROGRESS | | stack_status_reason | Stack CREATE started | +---------------------+--------------------------------------+ Step 2 Verify that your ASA virtual stack is created successfully. root@ucs-os-controller:$ openstack stack list Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 295Deploy the ASA Virtual on OpenStack Create the ASA Virtual Instance on OpenStack Example: +--------------------------------------+-------------+----------------------------------+-----------------+----------------------+------+ | ID | Stack Name | Project | Stack Status | Creation Time | Updated Time | +--------------------------------------+-------------+----------------------------------+-----------------+----------------------+--------------+ | 14624af1-e5fa-4096-bd86-c453bc2928ae | asav-stack | 13206e49b48740fdafca83796c6f4ad5 | CREATE_COMPLETE | 2020-12-07T14:55:05Z | None | | 198336cb-1186-45ab-858f-15ccd3b909c8 | infra-stack | 13206e49b48740fdafca83796c6f4ad5 | CREATE_COMPLETE | 2020-12-03T10:46:50Z | None | +--------------------------------------+-------------+----------------------------------+-----------------+----------------------+--------------+ Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 296C H A P T E R 15 Deploy the ASAv on Nutanix This chapter describes the procedures to deploy the ASAv to a Nutanix environment. • Overview, on page 297 • How to Deploy the ASAv on Nutanix, on page 300 Overview The Cisco Adaptive Security Virtual Appliance (ASAv) brings full firewall functionality to virtualized environments to secure data center traffic and multitenant environments. You can deploy the ASAv on Nutanix. Guidelines and Limitations Important The ASAv deploys with a disk storage size of 8 GB. It is not possible to change the resource allocation of the disk space. Review the following guidelines and limitations before you deploy the ASAv. Recommended vNIC The following vNIC is recommended for optimum performance. VirtIO—A para-virtualized network driver that supports 10 Gbps operation but also requires CPU cycles. CPU Pinning CPU pinning is required for the ASAv to function in a Nutanix environment; see Enable CPU Pinning, on page 55. Failover for High Availability For failover deployments, make sure that the standby unit has the same license entitlement; for example, both units should have 2 Gbps entitlement. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 297Deploy the ASAv on Nutanix Guidelines and Limitations Important You must add the data interfaces to each ASAv in the same order when creating a high availability pair. If the exact same interfaces are added to each ASAv, but in a different order, you may see errors at the ASAv console, which could impact the failover functionality. General Guidelines • The maximum number of interfaces supported is ten. You will receive an error message if you attempt to add more than ten interfaces Note • By default the ASAv configures the management interface and inside interface on the same subnet. • When you are modifying the network interfaces, you must turn off the ASAv device. • By default, the ASAv assumes that you configured both the management and inside interfaces on the different subnet. The management interface has “IP address DHCP setroute” and the Default Gateway is provided by DHCP. • The ASAv must be powered up on first boot with at least three interfaces. Your system will not deploy without three interfaces. • The ASAv supports a total of 10 interfaces—one management interface (nic0) and a maximum of nine network interfaces (nic1-9) for data traffic. The network interfaces for data traffic can follow any order. Note The minimum number of network interfaces for ASAv are three data interfaces. • For the console access, terminal server is supported through telnet. • The following are the supported vCPU and memory parameters: CPUs Memory ASAv Platform Size License Type 1 2 GB 1vCPU/2 GB (default) 1G (ASAv10) 4 8 GB 4vCPU/8 GB 2G (ASAv30) 8 16 GB 8vCPU/16 GB 10G (ASAv50) 16 32 GB 16vCPU/32 GB 20G (ASAv100) Supported Features • Routed mode (Default) • Transparent mode Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 298Deploy the ASAv on Nutanix Guidelines and Limitations Note Service chain in a multi-node cluster is not supported in transparent mode. See the following concordance of Network Adapters, Source Networks, and Destination Networks for ASAv interfaces: Network Adapter Source Network Destination Network Function vnic0 Management0-0 Management0/0 Management vnic1 GigabitEthernet0-1 GigabitEthernet0/1 Outside vnic2 GigabitEthernet0-2 GigabitEthernet0/2 Inside vnic3-9 Data Data Data ASAv on Proxmox VE Proxmox Virtual Environment (VE) is an open-source server virtualization platform that can manage Nutanix virtual machines. Proxmox VE also provides a web-based management interface. When you deploy the ASAv on Proxmox VE, you need to configure the VM to have an emulated serial port. Without the serial port, the ASAv will go into a loop during the startup process. All management tasks can be done using the Proxmox VE web-based management interface. Note For advanced users who are used to the comfort of the Unix shell or Windows Powershell, Proxmox VE provides a command line interface to manage all the components of your virtual environment. This command line interface has intelligent tab completion and full documentation in the form of UNIX man pages. To have the ASAv start properly, the VM needs to have a serial device configured: 1. In the main management center, select the ASAv VM in the left navigation tree. 2. Power off the virtual machine. 3. Choose Hardware > Add > Network Device and add a serial port. 4. Power on the virtual machine. 5. Access the ASAv VM using Xterm.js. See the Proxmox Serial Terminal page for information on how to setup and activate the terminal on the guest/server. Unsupported Features • ASAv on Nutanix AHV does not support hot-plugging of interface. Do not try to add or remove interfaces when the ASAv is powered on. • Nutanix AHV does not support Single Root I/O Virtualization (SR-IOV) or Data Plane Development Kit-Open vSwitch (DPDK-OVS). Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 299Deploy the ASAv on Nutanix System Requirements Note Nutanix AHV supports in-guest DPDK using VirtIO. For more information, refer to DPDK support on AHV. Related Documentation • Nutanix Release Notes • Nutanix Field Installation Guide • Hardware Support on Nutanix • Virtio-Net Multi-Queue support on Nutanix AHV System Requirements ASA Version 9.16.2 ASAv Memory, vCPU, and Disk Sizing The specific hardware used for ASAv deployments can vary, depending on the number of instances deployed and usage requirements. Each instance of the ASAv requires a minimum resource allocation—amount of memory, number of CPUs, and disk space—on the server. ASAv Licenses • Configure all license entitlements for the security services from the ASAv CLI. • See ASAv: Configure Smart Software Licensing in the Cisco ASA Configuration Guide for more information about how to manage licenses. Nutanix Components and Versions Component Version Nutanix Acropolis Operating System (AOS) 5.15.5 LTS and later Nutanix Cluster Check (NCC) 4.0.0.1 Nutanix AHV 20201105.12 and later How to Deploy the ASAv on Nutanix Step Task More Information 1 Review the prerequisites. Prerequisites, on page 301 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 300Deploy the ASAv on Nutanix Prerequisites Step Task More Information 2 Upload the ASAv qcow2 file to the Nutanix Upload the QCOW2 File to Nutanix, on page 301 environment. 3 Prepare a Day 0 configuration file with the Prepare the Day 0 Configuration File, on page 302 initial configuration data that gets applied at the time of deploying a virtual machine. 4 Deploy the ASAv on Nutanix. Deploy the ASA Virtual, on page 303 5 Launch the ASAv. Launch the ASA Virtual , on page 305 Prerequisites • Download the ASAv qcow2 file from Cisco.com and put it on your Linux host: http://www.cisco.com/go/asa-software Note A Cisco.com login and Cisco service contract are required. • For ASA software and ASAv HyperFlex compatibility, see Cisco ASA Compatibility. Upload the QCOW2 File to Nutanix To deploy ASAv to the Nutanix environment, you must create an image from the qcow2 disk file in the Prism Web Console. Before you begin Download the qcow2 disk file from Cisco.com: https://software.cisco.com/download/navigator.html Step 1 Log in to the Nutanix Prism Web Console. Step 2 Click the gear icon to open the Settings page. Step 3 Click Image Configuration from the left pane. Step 4 Click Upload Image. Step 5 Create the image. a. Enter a name for the image. b. From the Image Type drop-down list, choose DISK. c. From the Storage Container drop-down list, choose the desired container. d. Specify the location of the qcow2 disk file. You can either specify a URL (to import the file from a web server) or upload the file from your workstation. e. Click Save. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 301Deploy the ASAv on Nutanix Prepare the Day 0 Configuration File Step 6 Wait until the new image appears in the Image Configuration page. Prepare the Day 0 Configuration File You can prepare a Day 0 configuration file before you deploy the ASAv. This file is a text file that contains the initial configuration data that gets applied at the time a virtual machine is deployed. If you deploy with a Day 0 configuration file, the process allows you to perform the entire initial setup for ASAv appliance. In the file, you can specify the following: • A hostname for the system. • A new administrator username and password for the admin account. • The initial firewall mode; sets the initial firewall mode, either routed or transparent. If you plan to manage your deployment using the local, you can only enter routed for the firewall mode. You cannot configure transparent firewall mode interfaces using the ASAv device manager. • ASDM to enable: • http server enable • access-group all global • http 0.0.0.0 0.0.0.0 management • Access List • Name-Server • Network settings that allow the appliance to communicate on your management network. Note You can either upload the Day 0 configuration file or copy and paste the content in the text box provided. Step 1 Create a new text file using a text editor of your choice. Step 2 Enter the configuration details in the text file as shown in the following sample: Example: ASA Version 9.16.2 ! console serial interface management0/0 nameif management security-level 100 ip address 192.168.1.2 255.255.255.0 no shutdown interface gigabitethernet0/0 nameif inside security-level 100 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 302Deploy the ASAv on Nutanix Deploy the ASA Virtual ip address 10.1.1.2 255.255.255.0 no shutdown interface gigabitethernet0/1 nameif outside security-level 0 ip address 198.51.100.2 255.255.255.0 no shutdown http server enable http 192.168.1.0 255.255.255.0 management crypto key generate rsa modulus 1024 username AdminUser password paSSw0rd ssh 192.168.1.0 255.255.255.0 management aaa authentication ssh console LOCAL The first line should begin with the ASA version. The day0-config should be a valid ASA configuration. The best way to generate the day0-config is to copy the relevant parts of a running config from an existing ASA or ASAv. The order of the lines in the day0-config is important and should match the order seen in an existing show running-config command output. Day0-config possible configuration: • Hostname • Domain name • Administrative password • Interfaces • IP addresses • Static routes • DHCP server • Network address translation rules Note The content of the Day 0 configuration file must be in JSON format. You must validate the text using a JSON validator tool. Step 3 Save the file as day0-config.txt. Step 4 Select the Custom Script option. Step 5 Either you upload the day0-config.txt file or copy and paste the file in the text box provided. Step 6 Repeat steps 1–3 to create unique default configuration files for each ASAv that you want to deploy. Deploy the ASA Virtual Before you begin Ensure that the image of the ASAv that you plan to deploy is appearing on the Image Configuration page. Step 1 Log in to the Nutanix Prism Web Console. Step 2 From the main menu bar, click the View drop-down list, and choose VM. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 303Deploy the ASAv on Nutanix Deploy the ASA Virtual Step 3 On the VM Dashboard, click Create VM. Step 4 Do the following: a. Enter a name for the ASAv instance. b. (Optional) Enter a description for the ASAv instance. c. Select the timezone that you want the ASAv instance to use. Step 5 Enter the compute details. a. Enter the number of virtual CPUs to allocate to the ASAv instance. b. Enter the number of cores that must be assigned to each virtual CPU. c. Enter the amount of memory (in GB) to allocate to the ASAv instance. Step 6 Attach a disk to the ASAv instance. a. Under Disks, click Add New Disk. b. From the Type drop-down list, choose DISK. c. From the Operation drop-down list, choose Clone from Image Service. d. From the Bus Type drop-down list, choose SATA. e. From the Image drop-down list, choose the image that you want to use. f. Click Add. Step 7 Configure at least three virtual network interfaces. Under Network Adapters (NIC), click Add New NIC, select a network, and click Add. Repeat this process to add more network interfaces. The ASAv on Nutanix supports a total of ten interfaces—One management interface and a maximum of nine network interfaces for data traffic. The interface-to-network assignments must be ordered as follows: • vnic0—Management interface (required) • vnic1—Outside interface (required) • vnic2—Inside interface (required) • vnic3-9—Data interface (optional) Step 8 Configure affinity policy for the ASAv. Under VM Host Affinity, click Set Affinity, select the hosts, and click Save. Select more than one host to ensure that the VM can run even if there is a node failure. Step 9 If you have prepared a Day 0 configuration file, do the following: a. Select Custom Script. b. Click Upload A File, and choose the Day 0 configuration file day0-config.txt or copy and paste the content into a text box. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 304Deploy the ASAv on Nutanix Launch the ASA Virtual Note All the other custom script options are not supported in release. Step 10 Click Save to deploy the ASAv instance. The instance appears in the VM table view. Step 11 In the VM table view, select the newly created instance, and click Power On. Launch the ASA Virtual Once the VM is powered on, select theASAv-VM >Launch Consolewith predefined username and password using day0-config file for you to access it. Note To change any of these settings for a virtual device after you complete the initial setup, you must use the CLI. Step 1 Click on Launch Console to access the deployed ASAv. Step 2 At the asav login prompt, log in with the day0-config username and the password. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 305Deploy the ASAv on Nutanix Launch the ASA Virtual Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 306C H A P T E R 16 Deploy the ASAv on Cisco HyperFlex HyperFlex systems deliver hyperconvergence for any application, and anywhere. HyperFlex with Cisco Unified Computing System (Cisco UCS) technology that is managed through the Cisco Intersight cloud operations platform can power applications and data anywhere, optimize operations from a core datacenter to the edge and into public clouds, and therefore increase agility through accelerating DevOps practices. This chapter describes how the ASAv functions within a Cisco HyperFlex environment, including feature support, system requirements, guidelines, and limitations. Important The minimum memory requirement for the ASAv is 2GB. If your current ASAv runs with less than 2GB of memory, you cannot upgrade to 9.13(1)+ from an earlier version without increasing the memory of your ASAv VM. You can also redeploy a new ASAv VM with the latest version. • Guidelines and Limitations, on page 307 • Deploy the ASA Virtual, on page 311 • Upgrade the vCPU or Throughput License, on page 316 • Performance Tuning, on page 318 Guidelines and Limitations You can create and deploy multiple instances of the ASAv Cisco HyperFlex on a VMware vCenter server. The specific hardware used for ASAv deployments can vary, depending on the number of instances deployed and usage requirements. Each virtual appliance you create requires a minimum resource allocation—memory, number of CPUs, and disk space—on the host machine. Important The ASAv deploys with a disk storage size of 8 GB. It is not possible to change the resource allocation of the disk space. Review the following guidelines and limitations before you deploy the ASAv. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 307Deploy the ASAv on Cisco HyperFlex Guidelines and Limitations Recommended vNICs For optimal performance, we recommend that you use vmxnet3 vNIC. This vNIC is a para-virtualized network driver that supports 10 Gbps operation but also requires CPU cycles. In addition, when using vmxnet3, disable Large Receive Offload (LRO) to avoid poor TCP performance. OVF File Guidelines • asav-vi.ovf—For deployment on vCenter • The ASAv OVF deployment does not support localization (installing the components in non-English mode). Be sure that the VMware vCenter and the LDAP servers in your environment are installed in an ASCII-compatible mode. • You must set your keyboard to United States English before installing the ASAv and for using the VM console. Failover for High Availability Guidelines For failover deployments, make sure that the standby unit has the same license entitlement; for example, both units should have the 2 Gbps entitlement. Important When creating a high availability pair using ASAv, you must add the data interfaces to each ASAv in the same order. If you have added the exact same interfaces are added to each ASAv, but in different order, you might see errors at the ASAv console. Failover functionality may also be affected. IPv6 Guidelines You cannot specify IPv6 addresses for the management interface when you first deploy the ASAv OVF file using the VMware vSphere Web Client; you can later add IPv6 addressing using ASDM or the CLI. vMotion Guidelines • VMware requires you to use only shared storage if you are using vMotion. During ASAv deployment, if you have a host cluster you can either provision storage locally (on a specific host) or on a shared host. However, if you try to vMotion the ASAv to another host, using local storage will produce an error. Memory and vCPU Allocation for Throughput and Licensing • The memory allocated to the ASAv is sized specifically for the throughput level. Do not change the memory setting or any vCPU hardware settings in theEdit Settings dialog box unless you are requesting a license for a different throughput level. Under-provisioning can affect performance. Note If you need to change the memory or vCPU hardware settings, use only the values documented in Licensing for the ASA Virtual, on page 1. Do not use the VMware-recommendedmemory configurationminimum, default, andmaximum values. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 308Deploy the ASAv on Cisco HyperFlex System Requirements CPU Reservation • By default the CPU reservation for the ASAv is 1000MHz. You can change the amount of CPU resources allocated to the ASAv by using the shares, reservations, and limits settings. Edit Settings > Resources > CPU. Lowering the CPU Reservation setting from 1000 MHz can be done if the ASAv can perform its required purpose while under the required traffic load with the lower setting. The amount of CPU used by an ASAv depends on the hardware platform it is running on as well as the type and amount of work it is doing. You can view the host’s perspective of CPU usage for all of your virtual machines from the CPU Usage (MHz) chart, located in the Home view of the Virtual Machine Performance tab. Once you establish a benchmark for CPU usage when the ASAv is handling typical traffic volume, you can use that information as input when adjusting the CPU reservation. For More information, see the link CPU Performance Enhancement Advice • You can view the resource allocation and any resources that are over- or under-provisioned using the ASAvshow vm > show cpu commands or the ASDM Home > Device Dashboard > Device Information > Virtual Resources tab or the Monitoring > Properties > System Resources Graphs > CPU pane Transparent Mode on UCS B and C Series Hardware Guidelines MAC flaps have been observed in some ASAv configurations running in transparent mode on Cisco UCS B (Compute Nodes) and C (Converged Nodes) Series hardware. When MAC addresses appear from different locations you will get dropped packets. The following guidelines help to prevent MAC flaps when you deploy the ASAv in transparent mode in VMware environments: • VMware NIC teaming—If deploying the ASAv in transparent mode on UCS B or C Series, the port groups used for the inside and outside interfaces must have only 1 Active uplink, and that uplink must be the same. Configure VMware NIC teaming in vCenter. • ARP inspection—Enable ARP inspection on the ASAv and statically configure the MAC and ARP entry on the interface that you expect to receive it on. See the Cisco ASA Series General Operations Configuration Guide for information about ARP inspection and how to enable it. System Requirements Configurations and Clusters for HyperFlex HX-Series Configurations Clusters HX220c converged nodes • Flash cluster • Minimum of 3-node Cluster (Databases, VDI, VSI) Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 309Deploy the ASAv on Cisco HyperFlex System Requirements Configurations Clusters HX240c converged nodes • Flash cluster • Minimum of 3-node Cluster (VSI: IT/Biz Apps, Test/Dev) HX220C and Edge (VDI, VSI, ROBO) • Hybrid cluster HX240C (VDI, VSI, Test/Dev) • Minimum of 3-node Cluster B200 + C240/C220 Compute bound apps/VDI Deployment options for the HyperFlex HX-Series: • Hybrid Cluster • Flash Cluster • HyperFlex HX Edge • SED drives • NVME Cache • GPUs For HyperFlex HX cloud powered management option, refer to the Deploying HyperFlex Fabric Interconnect-attached Clusters section in the Cisco HyperFlex Systems Installation Guide. HyperFlex Components and Versions Component Version VMware vSphere 7.0.2-18426014 HyperFlex Data Platform 4.5.2a-39429 Supported Features • Deployment Modes—Routed (Standalone), Routed (HA), and Transparent • ASAv native HA • Jumbo frames • VirtIO • HyperFlex Data Center Clusters (excluding Stretched Clusters) • HyperFlex Edge Clusters • HyperFlex All NVMe, All Flash and Hybrid converged nodes • HyperFlex Compute-only Nodes Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 310Deploy the ASAv on Cisco HyperFlex Deploy the ASA Virtual Unsupported Features ASAv running with SR-IOV has not been qualified with HyperFlex. Note HyperFlex supports SR-IOV, but requires a PCI-e NIC in addition to the MLOM VIC Deploy the ASA Virtual Step Task More Information 1 Review the Guidelines and Limitations. Guidelines and Limitations, on page 307 2 Review the prerequisites. Prerequisites for the ASAv and Cisco HyperFlex, on page 311 3 Download the OVF file from cisco.com. Download and Unpack the ASAv Software, on page 312 4 Deploy the ASAv on Cisco HyperFlex. Deploy the ASAv on Cisco HyperFlex to vSphere vCenter, on page 312 5 Access the ASAv Console. Access the ASAv Console, on page 315 Prerequisites for the ASAv and Cisco HyperFlex You can deploy the ASAv on Cisco HyperFlex using the VMware vSphere Web Client, vSphere standalone client, or the OVF tool. See Cisco ASA Compatibility for system requirements. Security Policy for a vSphere Standard Switch For a vSphere switch, you can edit Layer 2 security policies and apply security policy exceptions for port groups used by the ASAv interfaces. See the following default settings: • Promiscuous Mode: Reject • MAC Address Changes: Accept • Forged Transmits: Accept Youmay need to modify these settings for the following ASAv configurations. See the vSphere documentation for more information. Table 31: Port Group Security Policy Exceptions Routed Firewall Mode Transparent Firewall Mode Security Exception No Failover Failover No Failover Failover Promiscuous Mode Accept Accept Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 311Deploy the ASAv on Cisco HyperFlex Download and Unpack the ASAv Software Routed Firewall Mode Transparent Firewall Mode Security Exception No Failover Failover No Failover Failover MAC Address Accept Accept Changes Forged Transmits Accept Accept Accept Download and Unpack the ASAv Software Before you begin You must have at least one network configured in vSphere (for management) before you deploy the ASAv. Step 1 Download the ZIP file from Cisco.com, and save it to your local disk: https://www.cisco.com/go/asa-software Note A Cisco.com login and Cisco service contract are required. Step 2 Unzip the file into a working directory. Do not remove any files from the directory. The following files are included: • asav-vi.ovf—For vCenter deployments. • boot.vmdk—Boot disk image. • disk0.vmdk—ASAv disk image. • day0.iso—An ISO containing a day0-config file and optionally an idtoken file. • asav-vi.mf—Manifest file for vCenter deployments. Deploy the ASAv on Cisco HyperFlex to vSphere vCenter Use this procedure to deploy the ASAv on HyperFlex to VMware vSphere vCenter. You can use the VMware Web Client (or vSphere Client) to deploy and configure virtual machines. Before you begin You must have at least one network configured in vSphere (for management) before you deploy the ASAv on HyperFlex. Before ASAv to be installed on the HyperFlex cluster, the HyperFlex cluster and shared datastore must be created. See the HyperFlex configuration guide for more information. Step 1 Log in to the vSphere Web Client. Step 2 Using the vSphere Web Client, deploy the OVF template file that you downloaded earlier by clicking ACTIONS > Deploy OVF Template. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 312Deploy the ASAv on Cisco HyperFlex Deploy the ASAv on Cisco HyperFlex to vSphere vCenter The Deploy OVF Template wizard appears. Step 3 Browse your file system for the OVF template source location, and then click NEXT. Step 4 Review the OVF Template Details page and verify the OVF template information (product name, version, vendor, download size, size on disk, and description), and then click NEXT. Step 5 The End User License Agreement page appears. Review the license agreement packaged with the OVF template (VI templates only), click Accept to agree to the terms of the licenses and click NEXT. Step 6 On the Name and Location page, enter a name for this deployment and select a location in the inventory (Shared datastore or cluster) on which you want to deploy the HyperFlex, and then click NEXT. The name must be unique within the inventory folder and can contain up to 80 characters. The vSphere Web Client presents the organizational hierarchy of managed objects in inventory views. Inventories are the hierarchal structure used by vCenter Server or the host to organize managed objects. This hierarchy includes all of the monitored objects in vCenter Server. Step 7 Navigate to, and select the resource pool where you want to run the ASAv HyperFlex and click NEXT. Note This page appears only if the cluster contains a resource pool. For the compute resource pool, we only recommend the cluster for best performance Step 8 Select aDeployment Configuration. Choose one of the three supported vCPU/memory values from theConfiguration drop-down list, and click NEXT. Step 9 Select a Storage location to store the virtual machine files, and then click NEXT. On this page, select the datastores (The datastore is HX cluster shared datastore that created with HX connect) that is already configured on the destination cluster. The virtual machine configuration file and virtual disk files are stored on the datastore. Select a datastore large enough to accommodate the virtual machine and all of its virtual disk files. Step 10 On the Network Mapping page, map the networks specified in the OVF template to networks in your inventory, and then select NEXT. Ensure the Management0-0 interface is associated with a VM Network that is reachable from the Internet. Non-management interfaces are configurable from either a ASAv Mangement Centre or a ASAv Device Manager, depending on your management mode. Important ASAv on HyperFlex now defaults to vmxnet3 interfaces when you create a virtual device. Previously, the default was e1000. If you are using e1000 interfaces, we strongly recommend you to switch. The vmxnet3 device drivers and network processing are integrated with the HyperFlex, so they use fewer resources and offer better network performance. The networks may not be in alphabetical order. If it is too difficult to find your networks, you can change the networks later from the Edit Settings dialog box. After you deploy, right-click the instance, and choose Edit Settings. However, the network mapping page does not show the IDs (only Network Adapter IDs). See the following concordance of Network Adapter, and Source Networks and Destination Networks for interfaces (note these are the default vmxnet3 interfaces): Table 32: Source to Destination Network Mapping—VMXNET3 Network Adapter ID ASAv Interface ID Network Adapter 1 Management 0/0 Network Adapter 2 GigabitEthernet 0/0 Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 313Deploy the ASAv on Cisco HyperFlex Deploy the ASAv on Cisco HyperFlex to vSphere vCenter Network Adapter ID ASAv Interface ID Network Adapter 3 GigabitEthernet 0/1 Network Adapter 4 GigabitEthernet 0/2 Network Adapter 5 GigabitEthernet 0/3 Network Adapter 6 GigabitEthernet 0/4 Network Adapter 7 GigabitEthernet 0/5 Network Adapter 8 GigabitEthernet 0/6 Network Adapter 9 GigabitEthernet 0/7 Network Adapter 10 GigabitEthernet 0/8 You can have a total of 10 interfaces when you deploy the ASAv. For data interfaces, make sure that the Source Networks map to the correct Destination Networks, and that each data interface maps to a unique subnet or VLAN. You do not have to use all interfaces; for interfaces you do not intend to use, they can remain disabled within the configuration. Step 11 On the Properties page, set the user-configurable properties packaged with the OVF template (VI templates only): • Password—Set the password for admin access. • Network—Set the network information, including the Fully Qualified Domain Name (FQDN), DNS, search domain, and network protocol (IPv4 or IPv6). • Management Interface—Set the management configuration and then click the drop down selectDHCP/Manual and set the ip configuration for the management interface. • Firewall Mode—Set the initial firewall mode. Click the drop-down arrow for Firewall Mode and choose one of the two supported modes, either Routed or Transparent. Step 12 ClickNEXT. In theReady to Complete section, review and verify the displayed information. To begin the deployment with these settings, click Finish. To make any changes, click Back to navigate back the previous dialog boxes. (Optional) check the Power on after deployment option to power on the VM, then click Finish. After you complete the wizard, the vSphere Web Client processes the virtual machine; you can see the Initialize OVF deployment status in the Global Information area Recent Tasks pane. When it is finished, you see the Deploy OVF Template completion status. The ASAv instance appears under the specified data center in the Inventory. Starting the new VM could take up to 30 minutes. Note You require Internet access to successfully register the ASAv HyperFlex with the Cisco Licensing Authority. You might need to perform additional configuration after deployment to achieve Internet access and successful license registration. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 314Deploy the ASAv on Cisco HyperFlex Access the ASAv Console Access the ASAv Console In some cases with ASDM, you may need to use the CLI for troubleshooting. By default, you can access the built-in VMware vSphere console. Alternatively, you can configure a network serial console, which has better capabilities, including copy and paste. • Use the VMware vSphere Console • Configure a Network Serial Console Port Use the VMware vSphere Console For initial configuration or troubleshooting, access the CLI from the virtual console provided through the VMware vSphere Web Client. You can later configure CLI remote access for Telnet or SSH. Before you begin For the vSphere Web Client, install the Client Integration Plug-In, which is required for ASA virtual console access. Step 1 In the VMware vSphere Web Client, right-click the ASA virtual instance in the Inventory, and choose Open Console. Or you can click Launch Console on the Summary tab. Step 2 Click in the console and press Enter. Note: Press Ctrl + Alt to release the cursor. If the ASA virtual is still starting up, you see bootup messages. When the ASA virtual starts up for the first time, it reads parameters provided through the OVF file and adds them to the ASA virtual system configuration. It then automatically restarts the boot process until it is up and running. This double boot process only occurs when you first deploy the ASA virtual. Note Until you install a license, throughput is limited to 100 Kbps so that you can perform preliminary connectivity tests. A license is required for regular operation. You also see the following messages repeated on the console until you install a license: Warning: ASAv platform license state is Unlicensed. Install ASAv platform license for full functionality. You see the following prompt: ciscoasa> This prompt indicates that you are in user EXEC mode. Only basic commands are available from user EXEC mode. Step 3 Access privileged EXEC mode: Example: ciscoasa> enable The following prompt appears: Password: Step 4 Press the Enter key to continue. By default, the password is blank. If you previously set an enable password, enter it instead of pressing Enter. The prompt changes to: Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 315Deploy the ASAv on Cisco HyperFlex Configure a Network Serial Console Port ciscoasa# All nonconfiguration commands are available in privileged EXEC mode. You can also enter configuration mode from privileged EXEC mode. To exit privileged mode, enter the disable, exit, or quit command. Step 5 Access global configuration mode: ciscoasa# configure terminal The prompt changes to the following: ciscoasa(config)# You can begin to configure the ASA virtual from global configuration mode. To exit global configuration mode, enter the exit, quit, or end command. Configure a Network Serial Console Port For a better console experience, you can configure a network serial port singly or attached to a virtual serial port concentrator (vSPC) for console access. See the VMware vSphere documentation for details about each method. On the ASA virtual, you must send the console output to a serial port instead of to the virtual console. This procedure describes how to enable the serial port console. Step 1 Configure a network serial port in VMware vSphere. See the VMware vSphere documentation. Step 2 On the ASA virtual, create a file called “use_ttyS0” in the root directory of disk0. This file does not need to have any contents; it just needs to exist at this location: disk0:/use_ttyS0 • From ASDM, you can upload an empty text file by that name using the Tools > File Management dialog box. • At the vSphere console, you can copy an existing file (any file) in the file system to the new name. For example: ciscoasa(config)# cd coredumpinfo ciscoasa(config)# copy coredump.cfg disk0:/use_ttyS0 Step 3 Reload the ASA virtual. • From ASDM, choose Tools > System Reload. • At the vSphere console, enter reload. The ASA virtual stops sending to the vSphere console, and instead sends to the serial console. Step 4 Telnet to the vSphere host IP address and the port number you specified when you added the serial port; or Telnet to the vSPC IP address and port. Upgrade the vCPU or Throughput License The ASAv uses a throughput license, which affects the number of vCPUs you can use. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 316Deploy the ASAv on Cisco HyperFlex Upgrade the vCPU or Throughput License If you want to increase (or decrease) the number of vCPUs for your ASAv, you can request a new license, apply the new license, and change the VM properties in VMware to match the new values. Note The assigned vCPUs must match the ASAv Virtual CPU license or throughput license. The RAM must also be sized correctly for the vCPUs. When upgrading or downgrading, be sure to follow this procedure and reconcile the license and vCPUs immediately. The ASAv does not operate properly when there is a persistent mismatch. Step 1 Request a new ASAv Virtual CPU license or throughput license. Step 2 Apply the new license. For failover pairs, apply new licenses to both units. Step 3 Do one of the following, depending on whether you use failover: • Failover—In the vSphere Web Client, power off the standby ASAv. For example, click the ASAv and then click Power Off the virtual machine, or right-click the ASAv and choose Shut Down Guest OS. • No Failover—In the vSphereWeb Client, power off the ASAv. For example, click the ASAv and then click Power Off the virtual machine, or right-click the ASAv and choose Shut Down Guest OS. Step 4 Click the ASAv, and then click Edit Virtual machine settings (or right-click the ASAv and choose Edit Settings). The Edit Settings dialog box appears. Step 5 Refer to the CPU and memory requirements in Licensing for the ASA Virtual, on page 1 to determine the correct values for the new vCPU license. Step 6 On the Virtual Hardware tab, for the CPU, choose the new value from the drop-down list. Step 7 For the Memory, enter the new value for the RAM. Step 8 Click OK. Step 9 Power on the ASAv. For example, click Power On the Virtual Machine. Step 10 For failover pairs: a. Open a console to the active unit or launch ASDM on the active unit. b. After the standby unit finishes starting up, failover to the standby unit: • ASDM: Choose Monitoring > Properties > Failover > Status, and click Make Standby. • CLI: failover active c. Repeat Steps 3 through 9 for the active unit. What to do next See Licensing for the ASA Virtual, on page 1 for more information. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 317Deploy the ASAv on Cisco HyperFlex Performance Tuning Performance Tuning The ASAv is a high-performance appliance but may require tuning of the Cisco HyperFlex to achieve the best results. The following is the best practice and recommendation for facilitating the best performance of the ASAv in a HyperFlex environment. Enabling Jumbo Frames A larger MTU allows you to send larger packets. Larger packets might be more efficient for your network. See the following guidelines: • Matching MTUs on the traffic path—We recommend that you set the MTU on all ASAv interfaces and other device interfaces along the traffic path to be the same. Matching MTUs prevents intermediate devices from fragmenting the packets. • Accommodating jumbo frames—You can set the MTU up to 9198 bytes. The maximum is 9000 for the ASAv. This procedure explains how to enable jumbo frames in the following environment: HyperFlex Cluster on the vSphere 7.0.1 > VMware vSphere vSwitch> Cisco UCS Fabric Interconnects (FI). Step 1 Change the MTU settings of the ASAv host where you have deployed the ASAv. a. Connect to the vCenter Server using the vSphere Web Client. b. In the Advanced System Settings of your HyperFlex host, set the value of the configuration parameter—Net.Vmxnet3NonTsoPacketGtMtuAllowed to 1. c. Save the changes and reboot the host. For more information, see https://kb.vmware.com/s/article/1038578. Step 2 Change the MTU settings of the VMware vSphere vSwitch. a. Connect to the vCenter Server using the vSphere Web Client. b. Edit the properties of the VMware vSphere vSwitch, and set the value of MTU to 9000. Step 3 Change the MTU settings of the Cisco UCS Fabric Interconnects (FI). a. Log in to the Cisco UCS Management console. b. To Edit QoS System Class, choose LAN > LAN Cloud > QoS System Class. Under the General tab, set the value of MTU to 9216. c. To edit your vNIC, choose LAN > Policies > root > Sub-Organizations Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 318Deploy the ASAv on Cisco HyperFlex Enabling Jumbo Frames vNIC Templates . Under the General tab, set the value of MTU to 9000. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 319Deploy the ASAv on Cisco HyperFlex Enabling Jumbo Frames Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 320C H A P T E R 17 Configure the ASA Virtual The ASA virtual deployment preconfigures ASDM access. From the client IP address you specified during deployment, you can connect to the ASA virtual management IP address with a web browser. This chapter also describes how to allow other clients to access ASDM and also how to allow CLI access (SSH or Telnet). Other essential configuration tasks covered in this chapter include the license installation and common configuration tasks provided by wizards in ASDM. • Start ASDM, on page 321 • Perform Initial Configuration Using ASDM, on page 322 • Advanced Configuration, on page 323 Start ASDM Step 1 On the PC that you specified as the ASDM client, enter the following URL: https://asa_ip_address/admin The ASDM launch window appears with the following buttons: • Install ASDM Launcher and Run ASDM • Run ASDM • Run Startup Wizard Step 2 To download the Launcher: a) Click Install ASDM Launcher and Run ASDM. b) Leave the username and password fields empty (for a new installation), and clickOK. With no HTTPS authentication configured, you can gain access to ASDM with no username and the enable password, which is blank by default. If you enabled HTTPS authentication, enter your username and associated password. c) Save the installer to your PC, and then start the installer. The ASDM-IDM Launcher opens automatically after installation is complete. d) Enter the management IP address, leave the username and password blank (for a new installation), and then click OK. If you enabled HTTPS authentication, enter your username and associated password. Step 3 To use Java Web Start: a) Click Run ASDM or Run Startup Wizard. b) Save the shortcut to your computer when prompted. You can optionally open it instead of saving it. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 321Configure the ASA Virtual Perform Initial Configuration Using ASDM c) Start Java Web Start from the shortcut. d) Accept any certificates according to the dialog boxes that appear. The Cisco ASDM-IDM Launcher appears. e) Leave the username and password blank (for a new installation), and then click OK. If you enabled HTTPS authentication, enter your username and associated password. Perform Initial Configuration Using ASDM You can perform initial configuration using the following ASDM wizards and procedures. • Run the Startup Wizard • (Optional) Allow Access to Public Servers Behind the ASA virtual • (Optional) Run VPN Wizards • (Optional) Run Other Wizards in ASDM For CLI configuration, see the Cisco Secure Firewall ASA Series CLI configuration guides. Run the Startup Wizard Run the Startup Wizard to customize the security policy to suit your deployment. Step 1 Choose Wizards > Startup Wizard. Step 2 Customize the security policy to suit your deployment. You can set the following: • Hostname • Domain name • Administrative passwords • Interfaces • IP addresses • Static routes • DHCP server • Network address translation rules • and more ... (Optional) Allow Access to Public Servers Behind the ASA Virtual The Configuration > Firewall > Public Servers pane automatically configures the security policy to make an inside server accessible from the Internet. As a business owner, you might have internal network services, Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 322Configure the ASA Virtual (Optional) Run VPN Wizards such as a web and FTP server, that need to be available to an outside user. You can place these services on a separate network behind the ASA virtual, called a demilitarized zone (DMZ). By placing the public servers on the DMZ, any attacks launched against the public servers do not affect your inside networks. (Optional) Run VPN Wizards You can configure VPN using the following wizards (Wizards > VPN Wizards): • Site-to-Site VPN Wizard—Creates an IPsec site-to-site tunnel between the ASA virtual and another VPN-capable device. • AnyConnect VPNWizard—Configures SSL VPN remote access for the Cisco AnyConnect VPN client. Secure Client provides secure SSL connections to the ASA for remote users with full VPN tunneling to corporate resources. You can configure the ASA policy to download the Secure Client to remote users when they initially connect through a browser. With Secure Client 3.0 and later, the client can run either the SSL or IPsec IKEv2 VPN protocol. • Clientless SSL VPN Wizard—Configures clientless SSL VPN remote access for a browser. Clientless, browser-based SSL VPN lets users establish a secure, remote-access VPN tunnel to the ASA using a web browser. After authentication, users access a portal page and can access specific, supported internal resources. The network administrator provides access to resources by users on a group basis. ACLs can be applied to restrict or allow access to specific corporate resources. • IPsec (IKEv1 or IKEv2) Remote Access VPN Wizard—Configures IPsec VPN remote access for the Cisco IPsec client. For information on how to configure an ASA virtual IPsec Virtual Tunnel Interface (VTI) connection to Azure, see Configure ASA IPsec VTI Connection to Azure. (Optional) Run Other Wizards in ASDM You can run other wizards in ASDM to configure failover with high availability, VPN cluster load balancing, and packet capture. • High Availability and Scalability Wizard—Configure failover or VPN load balancing. • Packet Capture Wizard—Configure and run packet capture. The wizard runs one packet capture on each of the ingress and egress interfaces. After capturing packets, you can save the packet captures to your PC for examination and replay in the packet analyzer. Advanced Configuration To continue configuring your ASA virtual, see Navigating the Cisco Secure Firewall ASA Series Documentation. Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 323Configure the ASA Virtual Advanced Configuration Cisco Secure Firewall ASA Virtual Getting Started Guide, 9.20 324">
To view the full page, please visit: Cisco Secure Firewall ASA Virtual - BYOL Product Userguide

Cisco Secure Firewall ASA Virtual - BYOL

Virtual firewalls seamlessly extend Cisco's industry-leading on-premise security to the cloud. Ideal for remote worker and multi-tenant environments, Cisco ASAv provides scalable VPN options including remote-access, site-to-site, clientless, and more.
Buy now