- Overview
- Guides
- Getting Cat9K Setup
- Docker Applications Development
- ThousandEyes Application Hosting
- Getting started with Docker Applications Deployment
- Application Hosting Configuration
- Build Docker applications Using Docker Toolchain
- Open Source Application Deployment
- Cisco ASAc Application Deployment
- Introduction
- Getting Started
- Prerequisites
- Version Compatability
- Known Limitations
- Catalyst Switch Configuration
- Enable IOX
- Check IOX Services Are Running
- Check IOX Apphosting Infra Resource Availability
- Configuration Files
- Day0 Configuration File
- Interface Configuration File
- Configuration Profiles
- ASAc Interface Mapping
- ASAc Management
- ASAc Life Cycle Management
- ASAc Policy Management
- App Life Cycle Management With DNAC
- App Life Cycle Management With CLI
- App Installation
- App Uninstallation
- Download Link
- Licensing
- Upgrade
- High Availability
- Community and Support
- Third Party Application Deployment
- Learn More
- Developer Resources
- Community and Support
Prerequisites
The following are the prerequisites for this solution.
Cisco Catalyst 9300 series - 9300, 9300L, 9300LM, 9300X Switch up and running. It is recommended to run ASAc on 9300x for better scale and performance.
Cisco Catalyst pluggable USB 3.0 SSD-120G or SSD-240G storage.
Cisco ASAv/ASAc Subscription license.
DNAC (Digital Networking Architecture Center )-Advantage license for Catalyst 9300 series switches for appHosting functionality.
Optional
- Recommend Catalyst Center for automating the ASAc life cycle management at scale.
- Recommend CDO for ASAc security policy management and event logging at scale. (Requires CDO license)
Version Compatability
Platform | Version |
---|---|
Catalyst 9300/L/LM/X | 17.12.0.2 |
ASAc | 9.20.2 |
DNAC | 2.3.0.7 |
Known Limitations
Following are the known limitations of the ASAc on Catalyst series switches.
- Transparent mode is not supported on ASAc Firewall when hosted on Catalyst 9300, only routed mode is supported.
- On-prem Management of ASAc instances with CSM manager is not supported.
- Jumbo frames are not supported on ASAc on Catalyst 9300 series switches.
- ASAc supports Stateless HA on Catalyst 9300 stack. It takes around 90 to 120 seconds for the ASAc on standby to start processing the traffic on failover.
- When ASAc is hosted on 9300, 9300L and 9300LM catalyst series switches, another application cannot be hosted.
- Catalyst 9300X series switches can host another application like ThousandEves along with ASAc. However, the performance of these two applications may vary when they both run simultaneously.
- The ASAc interface IP configs and day0 configurations should be passed as files in the DNAC application hosting workflow. The ASAc interface IP configurations in DNAC UI will be ignored.
- The DNAC application hosting workflow expects the VLANs to be created on the switch before they are allowed on the AppGig Interface.
Catalyst Switch Configuration
Following is the configuration required on the Cat9k host for hosting the ASAc app.
Enable IOX
Enable the IOX on the Cat9k host with the below CLI.
Copy9300X(config)#iox
Check IOX Services Are Running
Check the IOX services are running with the below CLI.
Below listed IOX services needs to be in running for hosting the ASAc app.
Sync Status can be Enabled or Disabled.
Copy 9300X#show iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) : Running
IOx service (HA) : Running
IOx service (IOxman) : Running
IOx service (Sec storage) : Running
Libvirtd 5.5.0 : Running
Dockerd v19.03.13-ce : Running
Sync Status : Disabled
Check IOX Apphosting Infra Resource Availability
Check IOX infra details with the below CLI.
The "Quota" value should be "7400(Units)" for hosting the ASAc app.
Copy 9300X#show app-hosting infra
IOX version: 2.11.0.0
App signature verification: disabled
CAF Health: Stable
Internal working directory: /vol/usb1/iox
Application Interface Mapping
AppGigabitEthernet Port # Interface Name Port Type Bandwidth
1 AppGigabitEthernet1/0/1 KR Port - Internal 10G
2 AppGigabitEthernet1/0/2 KR Port - Internal 10G
CPU:
Quota: 25(Percentage)
Available: 0(Percentage)
Quota: 7400(Units)
Available: 0(Units)
Configuration Files
ASAc requires day0 and the interface-config files for the deployment.
Day0 Configuration File
Day0 configuration should be copied under usbflash1:/iox_host_data_share/
folder as usbflash1:/iox_host_data_share/day0-config
Here is a sample day0-config file.
Copy interface management 0/0
nameif management
ip address dhcp setroute
security-level 100
no shut
username admin password password1
aaa authentication ssh console LOCAL
aaa authentication http console LOCAL
aaa authentication telnet console LOCAL
ssh 0.0.0.0 0.0.0.0 management
no ssh stack ciscossh
telnet 0.0.0.0 0.0.0.0 management
http server enable
http 0.0.0.0 0.0.0.0 management
crypto key generate rsa modulus 2048
Interface Configuration File
Interface configuration file should be copied under usbflash1:/iox_host_data_share/
folder as usbflash1:/iox_host_data_share/interface-config
Here is a sample interface-config file.
Copy [interface0]
iface_id = eth0;
uio_driver = afpacket;
[interface1]
iface_id = eth1;
uio_driver = afpacket;
[interface2]
iface_id = eth2;
uio_driver = afpacket;
Note:
- The interface configuration filename should not have any extensions.
- A minimum of 3 interfaces need to be configured for management, inside and outside.
- Up to 10 logical interfaces can be created.
Configuration Profiles
ASAc can be deployed with the following two configuration.
- 2vCPU/ 1 CPU cores and 2GB memory on C9300 series switches.
- 4vCPU / 2 CPU cores and 8GB memory on C9300X series switches.
Here is the sample configuraton required on the C9300 series switch for installing ASAc with 2 vCPU and 2GB memory.
Copy 9300X#show running-config | sec <ASAc app name>
app-hosting appid <ASAc app name>
app-vnic AppGigabitEthernet port <Appgig port number> trunk
vlan <vlan number> guest-interface 1
vlan <vlan number> guest-interface 2
app-vnic management guest-interface 0
app-resource docker
run-opts 2 "--cap-add=NET_ADMIN --device=/dev/net/tun:/dev/net/tun"
run-opts 3 "-v /vol/usb1/iox_host_data_share/:/mnt/disk0/interface-config
-v /vol/usb1/iox_host_data_share:/asac-day0-config"
run-opts 4 "-e ASAC_MEMORY=2048M -e ASAC_CPUS=2 -e ASA_DOCKER=1 -e ASAC_CAT9K=1
-e ASAC_DEALER_ENDPOINT=localhost:5555"
Here is the sample configuraton required on the C9300x series switch for installing ASAc with 4 vCPU and 8GB memory.
Copy 9300X#show running-config | sec <ASAc app name>
app-hosting appid <ASAc app name>
app-vnic AppGigabitEthernet port <Appgig port number> trunk
vlan <vlan number> guest-interface 1
vlan <vlan number> guest-interface 2
app-vnic management guest-interface 0
app-resource docker
run-opts 2 "--cap-add=NET_ADMIN --device=/dev/net/tun:/dev/net/tun"
run-opts 3 "-v /vol/usb1/iox_host_data_share/:/mnt/disk0/interface-config
-v /vol/usb1/iox_host_data_share:/asac-day0-config"
run-opts 4 "-e ASAC_MEMORY=8192M -e ASAC_CPUS=4 -e ASA_DOCKER=1 -e ASAC_CAT9K=1
-e ASAC_DEALER_ENDPOINT=localhost:5555"
ASAc app configuration files are mounted in the following two locations.
- /mnt/disk0/interface-config
- /asac-day0-config
Note: To modify the run opts, stop and deactivate the app. After changing the run opts, activate and start the app again.
ASAc Interface Mapping
Here is the ASAc interface configuration Mapping
guest-interface | Asac interface |
---|---|
eth0 (guest-interface 0) | Management 0/0 |
eth1 (guest-interface 1) | GigabitEthernet0/0 |
eth2 (guest-interface 2) | GigabitEthernet0/1 |
eth3 (guest-interface 3) | GigabitEthernet0/2 |
eth4 (guest-interface 4) | GigabitEthernet0/3 |
eth5 (guest-interface 5) | GigabitEthernet0/4 |
eth6 (guest-interface 6) | GigabitEthernet0/5 |
eth7 (guest-interface 7) | GigabitEthernet0/6 |
eth8 (guest-interface 8) | GigabitEthernet0/7 |
eth9 (guest-interface 9) | GigabitEthernet0/8 |
ASAc Management
ASAc Life Cycle Management
ASAc life cycle management can be done with DNAC or CLI. ASAc life cycle management involves, install, activate, start, stop, uninstall and upgrade of the ASAc.
ASAc Policy Management
ASAc policy management can be done with ASDM (Adaptive security device manager) or CDO (Cisco Defense Orchestrator). ASAc policy management involves, enforcing configuration policies and event logging.
ASAc Policy Management With CDO
For cloud managed, CDO can be used for configuration and policy management of ASAc.
The configuraton and policy management of ASAc through CDO is same as in ASAv
ASAc Policy Management With ASDM
For on prem, ASDM can be used for the policy management of the ASAc.
The configuraton and policy management of ASAc through ASDM is same as in ASAv.
App Life Cycle Management With DNAC
ASAc can be installed through DNAC, by passing the day0 and interface configuration files. Here are the steps for installing the ASAc through DNAC.
On board Cat9k host on to DNAC.
In the "Configure App" menu, provide the "Interface Name" and the "Address Type" as "Dynamic" for interfaces to be configured. "Address Type" should be always "Dynamic". Providing the static ip addresses from this menu is not supported. However, interface configuration like ip address etc can be passed throug the day0 configuration file.
Note: The maximum number of supported interfaces is 10, including the Management interface.
Upload the "interface-config" file through "Upload App Data" menu option. Please refer to the interface-config section above for the interface configuration details.
Note: The interface configuration file name should be "interface-config" and shouldn't have any extenstions.
Upload the "day0-config" file through "Upload App Data" menu option. Please refer to the Day0-config section above for the day0 configuration details.
The day0 configuration file name should be "day0-config" and shouldn't have any extenstions.
Install the app. Once the app is installed, app goes to "RUNNING" state.
App Life Cycle Management With CLI
App Installation
ASAc app can be installed through CLI by following the below steps.
- Copy the ASAc image to the usbflash1 on the Cat9k host
Copy e.g: Device#copy scp:<ASAc image location> usbflash1:
- Install the app with the below CLI. After installing app goes to "DEPLOYED" state.
Copy app-hosting install appid <appid name> package <asac package-path>
e.g: Device#app-hosting install appid asac_app package usbflash1:ASAc-9.18.2.150-app-SPA.tar
- Activate the app with the below CLI. After activating app goes to "ACTIVATED" state.
Copy app-hosting activate appid <appid name>
e.g: Device# app-hosting activate appid asac_app
asac_app activated successfully
Current state is: ACTIVATED
- Start the app with the below CLI. After starting app goes to "RUNNING" state.
Copy app-hosting start appid <appid name>
e.g: Device# app-hosting start appid asac_app
asac_app started successfully
Current state is: RUNNING
- Connect to the app with the below CLI.
Copy app-hosting connect appid <appid name> session
e.g: Device# app-hosting connect appid asac_app session
sh-5.1#
- Get into the app shell command line with the below CLI.
Copy sh-5.1# lina_cli
ciscoasa>
App Uninstallation
ASAc app can be uninstalled through CLI by following the below steps.
- Stop the app with the below CLI. After stopping, app goes to "STOPPED" state.
Copy app-hosting stop appid <appid name>
e.g: Device# app-hosting stop appid asac_app
Current state is: STOPPED
- Deactivate the app with the below CLI. After deactivating, app goes to "DEPLOYED" state.
Copy e.g:Device#app-hosting deactivate appid asac_app
asac_app deactivated successfully
Current state is: DEPLOYED
- Uninstall the app with the below CLI.
Copy e.g: Device#app-hosting uninstall appid asac_app
Download Link
The ASAc image(for Catalyst 93xx switches) can be downloaded using this link.