Most engineers think…
Most people treat FTD NAT as 'just NAT, like any router' and write a single overload rule for the whole inside network. That works until a VPN appears — then traffic silently vanishes and they blame the tunnel.
On Cisco Secure Firewall, NAT lives in the LINA data plane and is sorted into three ordered sections. Auto NAT (object NAT) is simple and source-only; Manual NAT (twice NAT) matches source and destination and is explicitly ordered. The engine walks Section 1 → Section 2 → Section 3 and stops at the first match. Miss that order — or forget a NAT-exempt rule above your PAT rule — and VPN-interesting traffic gets PATed and never enters the tunnel. Understanding sections and first-match is what separates 'it works' from 'I know why'.
① Auto NAT (object NAT) — the simple case
The first thing to fix: on FTD, NAT runs in the LINA data plane, not in Snort. Auto NAT — also called object NAT — is the easy starting point. You configure it on a network object: open the object, tick a NAT rule, and FTD translates that object's address.
Two limits define Auto NAT. It matches the source only — it cannot care about where the traffic is going — and you get one NAT rule per object. That is fine for the common cases: 'this server is always seen as this public IP' (static) or 'this whole subnet goes out as the outside interface' (PAT).
Auto NAT rules land in Section 2, and FTD automatically orders them most-specific-first — a /32 host rule is tried before a /24 subnet rule — so you do not hand-sort them. Simple in, simple out.
Where does NAT execute on a Cisco Secure Firewall (FTD) device?
② Manual / Twice NAT — source + destination
Manual NAT — the classic twice NAT — is the powerful one. It matches the source AND the destination (and optionally ports), so you can say 'when host A talks to subnet B, translate it this way; when it talks to subnet C, do something else'. That destination-awareness is exactly what Auto NAT lacks.
Why you reach for it
Manual NAT is what you use for identity NAT / NAT exemption, for policy NAT that depends on the destination, and any time order matters. Unlike Auto NAT, you place these rules explicitly: they go into Section 1 (before the auto rules) or Section 3 (after them), and within a section they run top-down, first match wins. You own the ordering.
Configured on a network object, matches source only, one rule per object, lands in Section 2 sorted most-specific-first. The simple case.
Matches source AND destination (and ports), explicitly ordered into Section 1 or Section 3, top-down first match. The powerful, policy-aware case.
FTD walks Section 1 (manual before-auto) → Section 2 (auto) → Section 3 (manual after-auto) and stops at the first match.
Translates an address to itself so VPN-interesting traffic is NOT PATed. Place it in Section 1, above the dynamic PAT rule.
In an interview, separate them cleanly: Auto/object NAT is on a network object, source-only, one rule per object, Section 2, auto-sorted. Manual/twice NAT is its own rule, source + destination, explicitly placed in Section 1 or 3, first match. Naming the section each lands in is the detail that signals real FTD knowledge.
What can Manual (twice) NAT do that Auto (object) NAT cannot?
③ NAT order — Sections 1, 2, 3 & first match
This is the section that wins interviews. FTD does not evaluate NAT rules in the order you happened to type them — it evaluates them by section. Section 1 = Manual NAT placed 'before auto' (top-down, first match). Section 2 = all Auto NAT, auto-sorted most-specific-first. Section 3 = Manual NAT placed 'after auto' (top-down, first match). The engine walks 1, then 2, then 3, and stops at the first matching rule.
That order is why NAT-exempt rules go in Section 1: they must be hit before the broad dynamic PAT rule that lives in Section 2, or the exemption never gets a chance.
The gotcha you must remember
FTD Access Control rules use the REAL (pre-NAT) IP addresses, not the mapped ones. So you permit the inside host by its private address even though it is being PATed to a public one. New engineers write ACP rules against the public IP, see drops, and chase the wrong thing.
FTD Access Control rules use the REAL (pre-NAT) IP, not the translated one. The classic mistake is permitting the public/mapped address in the access policy, then seeing drops. Permit the host by its real private address — NAT happens around the policy, not before it.
▶ Watch an inside packet get dynamic-PATed out — then break the VPN
How one outbound packet is translated, and the classic VPN failure caused by a missing NAT-exempt rule. Press Play for the healthy path, then Break it.
You add a dynamic PAT rule and a NAT-exempt rule for VPN traffic. Where must the exempt rule go so it wins?
④ Static, dynamic, PAT, identity NAT & hairpinning
Four translation types cover almost everything. Static NAT is a fixed 1:1 mapping, bidirectional — a published server keeps the same public IP both ways. Dynamic NAT hands out addresses from a pool, one real address to one mapped address at a time. Dynamic PAT (overload) is the workhorse: many hosts to one IP, multiplexed by source port — this is how a whole branch shares the outside interface address.
Identity NAT / NAT exemption translates an address to itself. Its job is to keep traffic out of PAT — critically for VPN-interesting traffic, which must reach the tunnel with its real source IP. Put the exemption (a twice/manual identity rule) in Section 1, above the PAT rule.
Finally, hairpin (U-turn) NAT lets traffic come in and go back out the same interface — handy when inside users reach a server by its public name, or two VPN spokes talk via the hub.
Vikram at a Hyderabad MSP faces this
He brings up a new site-to-site VPN to a partner. The tunnel negotiates fine, but no traffic to the partner's 192.168.50.0/24 subnet ever works.
The inside network has a broad dynamic PAT rule (Auto NAT, Section 2), and there is no NAT-exempt rule above it, so VPN-interesting traffic is PATed and stops matching the tunnel's interesting-traffic ACL.
Run packet-tracer for inside-host to 192.168.50.10: it shows the packet being PATed to the outside interface IP instead of being marked NAT-exempt and sent into the VPN.
FMC ▸ Devices ▸ NAT ▸ (policy) ▸ Add Manual NAT, place in Section 1Add a Manual (twice) identity-NAT rule — source inside-subnet, destination partner-subnet, translate each to itself, with 'no proxy ARP' and route-lookup as needed — placed in Section 1, above the PAT rule.
Re-run packet-tracer: the flow is now NAT-exempt and routed into the tunnel; the partner subnet is reachable and the tunnel shows encrypts/decrypts climbing.
Never assume a NAT rule fires. Run packet-tracer (FMC ▸ device ▸ Packet Tracer, or 'packet-tracer' on the CLI) with the real source, destination and port. It tells you exactly which NAT section and rule matched and whether the packet was exempted or PATed — that single read settles most NAT tickets.
A branch of 200 PCs must all reach the internet through the single outside interface IP. Which NAT type?
🤖 Ask the AI Tutor
Tap any question — instant, scoped to this lesson. No login, no waiting.
Pre-curated from vendor docs + community Q&A, scoped to this lesson. For a live prod issue, paste your export into chat.techclick.in.
📝 Wrap-up assessment — six more
You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.
🧠 In your own words
Type one line: why can a perfectly negotiated FTD VPN tunnel still carry no traffic? Then compare with the expert version.
🗣 Teach a friend
Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.
📖 Glossary
- LINA data plane
- The ASA-style forwarding engine inside the unified FTD image. NAT and VPN both run here; Snort handles deep inspection separately.
- Auto NAT (object NAT)
- NAT configured on a network object, matching the source only, one rule per object, placed in Section 2 and auto-sorted most-specific-first.
- Manual NAT (twice NAT)
- A standalone NAT rule matching source AND destination (and ports), explicitly placed in Section 1 (before auto) or Section 3 (after auto).
- NAT sections
- The three ordered buckets FTD evaluates: 1 manual before-auto, 2 auto, 3 manual after-auto. The engine stops at the first matching rule.
- Dynamic PAT (overload)
- Many inside hosts translated to one IP, multiplexed by source port — how a whole branch shares the outside interface address.
- Identity NAT / NAT exemption
- Translating an address to itself so traffic is not PATed — used to keep VPN-interesting traffic on its real source IP, placed in Section 1.
- Hairpin / U-turn NAT
- NAT that lets traffic enter and leave the same interface, e.g. inside users reaching a server by its public IP or spoke-to-spoke via a VPN hub.
- Real (pre-NAT) IP
- The original address before translation. FTD Access Control rules are written against the real IP, not the mapped/post-NAT address.
📚 Sources
- Cisco — Cisco Secure Firewall Management Center Device Configuration Guide: Network Address Translation (NAT). cisco.com
- Cisco — Secure Firewall Threat Defense: Auto NAT, Manual NAT and NAT rule order (Sections 1-3). cisco.com
- Cisco — FTD/FMC NAT: dynamic PAT, static NAT and identity NAT / NAT exemption for VPN. cisco.com
- Cisco — Secure Firewall: Access Control rules use real (pre-NAT) IP addresses. cisco.com
- Cisco — Use the packet-tracer tool to verify NAT and access decisions on Threat Defense. cisco.com
- Cisco Live / Tech Notes — Configure NAT exemption for site-to-site and remote-access VPN on FTD. cisco.com
What's next?
Got NAT? Next, go deep on VPN — site-to-site IKEv2/IPsec (policy-based vs route-based VTI), the IKE phases, and Remote Access with Cisco Secure Client — and see exactly where that NAT-exempt rule has to sit so the tunnel actually carries traffic.