FTD vs ASA — Architecture Comparison
Objective
Compare the architectures of FTD (Firepower Threat Defense) and ASA (Adaptive Security Appliance), understand the design trade-offs, and learn how basic interface and routing tasks are performed on each platform. This matters in production because choosing FTD vs ASA affects management model, feature set (NGFW, IPS, URL/AV), and performance scaling — for example, in a data center that requires high-throughput IPsec VPN and simple stateful firewalling, ASA may be sufficient; in a campus or branch where deep inspection (AV/IPS) and unified policy are required, FTD is the right choice.
Real-world scenario: NHPREP is deploying a perimeter firewall stack for two sites. Site A needs classic stateful firewalling with many VPN peers and predictable CLI-driven automation; Site B needs integrated IPS, URL/AV, and centralized policy via a management system. We will compare architectures and perform representative platform tasks so you can decide which platform fits each site.
Note: This lesson focuses on architecture comparison and basic platform tasks. Later lessons will cover hands-on NGFW features and management integration.
Topology & Device Table
ASCII topology diagram — every interface shows the IP address used in this lesson:
Device Table
| Device | Interface | IP Address | Subnet Mask | Role |
|---|---|---|---|---|
| FW-ASA (1010 running ASA) | GigabitEthernet0/0 | 203.0.113.2 | 255.255.255.0 | Outside (Internet) |
| FW-ASA (1010 running ASA) | GigabitEthernet0/1 | 10.10.10.1 | 255.255.255.0 | Inside (LAN-A) |
| FW-FTD (1230 running FTD) | GigabitEthernet0/0 | 203.0.113.3 | 255.255.255.0 | Outside (Internet) |
| FW-FTD (1230 running FTD) | GigabitEthernet0/1 | 10.20.20.1 | 255.255.255.0 | Inside (LAN-B) |
| LAN-A PC | eth0 | 10.10.10.10 | 255.255.255.0 | Host behind ASA |
| LAN-B PC | eth0 | 10.20.20.10 | 255.255.255.0 | Host behind FTD |
Key Concepts (theory before CLI)
-
Architecture separation: ASA historically is a CLI-driven, modular OS focused on stateful firewalling and VPN termination. FTD integrates ASA-style firewalling with threat inspection (NGFW) and IPS engines — think of FTD as ASA + Firepower services unified on a single image. In production, FTD is used when you need deep packet inspection and centralized policy; ASA is chosen when you need a lighter-weight, scriptable firewall with predictable CLI behavior.
-
Management plane vs data plane: ASA exposes an extensive CLI for configuration; changes are applied locally or via ASDM. FTD moves much of the configuration semantics to a management system (FMC or FDM). The FTD local CLI is limited — many policy changes are intended to come from the management plane. In production, this matters because automation and orchestration tools must target the correct management API: ASA (CLI/SSH) vs FTD (FMC API / FDM / REST).
-
Feature placement and packet flow: On ASA, packets traverse the ASA kernel where NAT, ACL, and stateful inspection occur. On FTD, packets may traverse unified pipeline stages for access-control, IPS, and content inspection (AV/URL). Enabling NGFW features increases CPU/accelerator usage and changes latency/throughput profiles — in a data center, you must plan for core/accelerator capacities (for example, the 1230/1240/1250 series have different throughput and accelerator counts).
-
Hardware and scaling differences: The Secure Firewall 1200 series family shows model differences (1230/1240/1250) — CPU cores, RAM, SFP+/10GE options, and NGFW/IPS throughput vary. In production, choose the model by expected concurrent sessions, new connections per second, and VPN throughput (datasheet values are used to dimension deployments).
-
Protocol behavior and timers: On ASA, when you apply an ACL to an interface, the ASA kernel immediately filters traffic per ACL; the ASA maintains connection state and times out idle connections using default timers (e.g., TCP 24 hours established by default — consult platform for exact timers). On FTD, IPS/AV engines may reassemble packets for inspection, adding latency; also, FTD uses centralized policy application which can take time to deploy from FMC to device.
Analogy: Think of ASA like a focused bouncer at a club door — quick checks, lets known patrons through. FTD is the bouncer plus a security scanner and a database check — more thorough, but slightly slower for each guest.
Step-by-step configuration
We keep this lesson focused on representative, minimal tasks that demonstrate differences: configure interfaces and basic routing/NAT on ASA using CLI, and show the equivalent on FTD using the local FDM (Firepower Device Manager) style commands and verification (note: FTD is typically managed by FMC; we demonstrate a local management path for clarity). Each step includes commands, explanation, why it matters, and verification.
Step 1: Configure interfaces on the ASA appliance
What we are doing: Assign IP addresses and nameif/security-levels for outside and inside interfaces on the ASA. In production this is the minimal requirement for traffic to pass and for policy application; ASA uses nameif and security-levels to make access-control decisions.
ciscoasa# configure terminal
ciscoasa(config)# interface GigabitEthernet0/0
ciscoasa(config-if)# nameif outside
ciscoasa(config-if)# security-level 0
ciscoasa(config-if)# ip address 203.0.113.2 255.255.255.0
ciscoasa(config-if)# no shutdown
ciscoasa(config-if)# exit
ciscoasa(config)# interface GigabitEthernet0/1
ciscoasa(config-if)# nameif inside
ciscoasa(config-if)# security-level 100
ciscoasa(config-if)# ip address 10.10.10.1 255.255.255.0
ciscoasa(config-if)# no shutdown
ciscoasa(config-if)# exit
ciscoasa(config)# exit
What just happened: Each interface was given a logical name (nameif) and security-level. ASA uses security-levels to permit traffic from higher to lower security interfaces by default (inside → outside allowed), while traffic from lower to higher requires explicit ACLs. The IP addresses place the ASA in the same subnets as the Internet gateway (203.0.113.1) and the inside LAN. The no shutdown ensures the interfaces are administratively up.
Real-world note: The ASA security-level model simplifies default allow/deny behavior for common perimeter deployments, which is why many datacenter edge designs use ASA for straightforward inside→outside traffic flows.
Verify:
ciscoasa# show interface ip brief
Name IP address Interface OK? Method Status Protocol
GigabitEthernet0/0 203.0.113.2 outside yes manual up up
GigabitEthernet0/1 10.10.10.1 inside yes manual up up
Step 2: Configure a static default route and NAT on the ASA
What we are doing: Add a default route pointing to the ISP gateway and configure PAT (dynamic NAT) so hosts from the inside can access the Internet. NAT is fundamental on perimeter firewalls to translate private addresses to a public IP.
ciscoasa# configure terminal
ciscoasa(config)# route outside 0.0.0.0 0.0.0.0 203.0.113.1
ciscoasa(config)# object network obj-inside-net
ciscoasa(config-network-object)# subnet 10.10.10.0 255.255.255.0
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface
ciscoasa(config-network-object)# exit
ciscoasa(config)# exit
What just happened: The default route sends unknown-destination traffic to the ISP. The network object defines the inside subnet and configures dynamic NAT to translate internal addresses to the ASA's outside IP when they exit the outside interface. On packet flow, when a packet from 10.10.10.10 reaches the ASA to go to 8.8.8.8, ASA rewrites the source to 203.0.113.2 and records the translation in the NAT table so return traffic is mapped back.
Real-world note: ASA PAT using the interface IP is the standard for small sites. For high-scale NAT or many public IPs, configure static NATs or use address pools to meet requirements.
Verify:
ciscoasa# show route
Codes: C - connected, S - static, R - RIP, O - OSPF, B - BGP
S* 0.0.0.0 0.0.0.0 [1/0] via 203.0.113.1, outside
C 203.0.113.0 255.255.255.0 is directly connected, GigabitEthernet0/0
C 10.10.10.0 255.255.255.0 is directly connected, GigabitEthernet0/1
ciscoasa# show nat
Translated source (real) Translated source (mapped) Type
10.10.10.10 203.0.113.2 dynamic PAT
Step 3: Configure interfaces on the FTD appliance (local FDM-style)
What we are doing: Assign IPs to the FTD outside and inside interfaces. FTD centralizes much policy in FMC, but basic network settings can be done locally via the device manager. This step mirrors Step 1 but on FTD.
ftd# configure network interface GigabitEthernet0/0 ipv4 203.0.113.3 255.255.255.0
ftd# configure network interface GigabitEthernet0/1 ipv4 10.20.20.1 255.255.255.0
ftd# configure network interface GigabitEthernet0/0 up
ftd# configure network interface GigabitEthernet0/1 up
What just happened: The FTD has its interfaces assigned and brought up. On FTD, these network properties are often stored in the management configuration and you typically push higher-level policies (Access Control, NAT) from FMC. Here we applied local interface addressing to create basic connectivity.
Real-world note: In enterprise deployments with FMC, interface addressing is commonly set either locally or via deployment templates; policy and inspection engines are usually centralized.
Verify:
ftd# show network interfaces
Interface IP Address Netmask Status
GigabitEthernet0/0 203.0.113.3 255.255.255.0 up
GigabitEthernet0/1 10.20.20.1 255.255.255.0 up
Step 4: Configure basic routing and demonstrate management model differences
What we are doing: Add a default route on the FTD and explain how policy/NAT differ between ASA and FTD.
ftd# configure network route ipv4 0.0.0.0 0.0.0.0 203.0.113.1
What just happened: The FTD now forwards unknown-destination traffic to the ISP. However, unlike the ASA where NAT syntax is local CLI-driven, on FTD you typically configure NAT and access control via FMC or FDM (Access Control Policy and NAT rules). The packet flow on FTD will pass through the FTD pipeline; if access control and NAT are not configured on the device (or via FMC), traffic may be dropped.
Real-world note: When migrating from ASA to FTD in production, plan for policy migration — ACLs and NAT need translation into access control policies and NAT rules in FMC/FDM.
Verify:
ftd# show route
Codes: C - connected, S - static
S* 0.0.0.0 0.0.0.0 203.0.113.1
C 203.0.113.0 255.255.255.0 is directly connected, GigabitEthernet0/0
C 10.20.20.0 255.255.255.0 is directly connected, GigabitEthernet0/1
Step 5: Verify basic connectivity and observe inspection differences
What we are doing: From each LAN host, verify Internet connectivity (ping) and inspect translation/connection state on each device. This demonstrates how ASA shows translations locally and how FTD requires inspecting NAT and policy objects (often via FMC).
On LAN-A PC (behind ASA), attempt ping to 8.8.8.8; verify NAT translation on ASA:
# From LAN-A PC
C:\> ping 8.8.8.8
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=20ms TTL=54
Reply from 8.8.8.8: bytes=32 time=21ms TTL=54
# On ASA show translation and conn
ciscoasa# show xlate
Global pat from inside:10.10.10.10/52445 to 8.8.8.8/53 type dynamic interface
On LAN-B PC (behind FTD), attempt ping to 8.8.8.8. If NAT and access-control are not configured on FTD or FMC, the ping may fail — demonstrating the management-model difference.
# From LAN-B PC
C:\> ping 8.8.8.8
Pinging 8.8.8.8 with 32 bytes of data:
Request timed out.
Request timed out.
# On FTD (if NAT configured via FMC this would show translations)
ftd# show nat
No NAT rules configured on device
What just happened: ASA performed PAT automatically using the interface NAT object we configured and shows translations in the xlate table. FTD did not perform NAT unless NAT rules were created via the device manager or FMC, so traffic was not translated and the ping failed. This underscores that FTD separates higher-level policy objects (NAT, Access Control) into a management plane.
Real-world note: Many operational outages during ASA→FTD migrations result from missing NAT or improperly migrated access-control policies — always validate NAT and access rules after migration.
Verification Checklist
- Check 1: ASA interfaces up and IPs assigned — verify with
show interface ip briefon ASA and confirm output shows GigabitEthernet0/0 203.0.113.2 up and GigabitEthernet0/1 10.10.10.1 up. - Check 2: ASA has default route to ISP — verify with
show routeon ASA and seeS* 0.0.0.0 0.0.0.0 via 203.0.113.1. - Check 3: FTD interfaces up and IPs assigned — verify with
show network interfaceson FTD and see GigabitEthernet0/0 203.0.113.3 up and GigabitEthernet0/1 10.20.20.1 up. - Check 4: FTD has default route — verify with
show routeand seeS* 0.0.0.0 0.0.0.0 203.0.113.1. - Check 5: NAT works on ASA — verify with
show xlateand ensure inside host is translated to 203.0.113.2. - Check 6: NAT/policy must be configured on FTD (via FMC/FDM) for Internet access — verify absence/presence with
show nator FMC GUI.
Common Mistakes
| Symptom | Cause | Fix |
|---|---|---|
| Inside hosts cannot reach Internet behind FTD | No NAT rules configured on FTD (no policy deployed from FMC/FDM) | Create NAT rules in FMC or FDM to translate inside addresses to the outside interface or a public IP, then deploy policy to device |
| ASA permits unintended inbound traffic | Missing ACLs on the outside interface; relying solely on security-levels | Apply explicit access-list to outside interface to control inbound flows; verify with show access-list |
| Policy changes on FTD not taking effect | Policy not deployed from FMC/FDM to the device | Deploy/push the access control/NAT policy to the managed device and verify push success |
| Unexpected throughput drop on FTD when IPS/AV enabled | Enabling NGFW/IPS requires CPU/accelerator cycles and may reduce throughput | Choose a platform sized for inspection load (reference device throughput metrics) or offload via hardware accelerators |
| Attempts to script ASA CLI against FTD | FTD management relies on FMC/FDM APIs, not the full ASA CLI | Use FMC/FDM REST APIs or the device's supported local CLI tools; understand the management model difference |
Key Takeaways
- ASA is a CLI-focused, mature stateful firewall with built-in NAT/ACL model and straightforward management; it is ideal where scriptable CLI automation and classic firewall behavior are required.
- FTD unifies firewalling with NGFW capabilities (IPS, AV, URL) and centralizes policy in FMC/FDM; this gives powerful inspection at the cost of moving policy control to a management plane.
- Packet flow differs: ASA applies stateful inspection and NAT in-kernel via CLI-configured objects; FTD applies unified pipeline inspection and expects NAT/Access Control policies to be managed centrally.
- In production, select ASA for predictable CLI-driven deployments or where minimal inspection is needed; select FTD when you require integrated threat inspection, centralized policy, and advanced NGFW features — but plan for capacity (throughput, cores, accelerators) and management-plane workflows.
Tip: When planning upgrades or migrations, perform a policy inventory from the ASA (ACLs, NAT, VPNs) and map these objects into FMC/FDM constructs. Validate NAT and access rules thoroughly before cutover.