2.3 Destination NAT (DNAT), Virtual IPs (VIPs) & Central NAT
Key Takeaways
- Destination NAT (DNAT) translates the destination IP address (and optionally port) of incoming packets to expose internal servers to external networks.
- Virtual IPs (VIPs) are FortiOS objects used to implement DNAT, supporting 1:1 Static NAT, Port Forwarding (PAT), and Server Load Balancing (SLB).
- In policy-based NAT (default), a Virtual IP object must be selected as the Destination Address (dstaddr) in the firewall policy protecting the internal server.
- Central NAT decouples NAT rule definitions from security policies, using central-snat-map for source translation and central DNAT VIPs for destination translation.
- Enabling Central NAT under system settings hides built-in NAT controls from standard firewall policies across the target VDOM.
2.3 Destination NAT (DNAT), Virtual IPs (VIPs) & Central NAT
Destination Network Address Translation (DNAT) allows external users on public networks to access servers residing on internal private networks (such as DMZs or internal LANs) without exposing private IP structures. In FortiOS 7.6, DNAT is primarily implemented using Virtual IPs (VIPs). Understanding VIP types, port forwarding, policy integration, and the transition to Central NAT is essential for passing the FCP FortiGate Administrator exam.
1. Destination NAT Architecture & Virtual IPs (VIPs)
DNAT intercept incoming packets arriving on an external interface, inspects their destination IP address (and port), and replaces the destination IP with the private IP address of an internal real server.
[ External Client: 198.51.100.5 ] ---> ( Ingress port1: 203.0.113.50:8443 )
|
[ FortiGate VIP Matching ]
( DNAT: 203.0.113.50:8443 -> 192.168.10.100:443 )
|
[ Web Server: 192.168.10.100:443 ] <--- ( Egress port2: LAN/DMZ )
Virtual IP (VIP) Object Types
In FortiOS, DNAT constructs are created under config firewall vip. FortiGate supports four primary VIP deployment models:
- Static NAT (1:1 DNAT): Maps an external IP address (
extip) directly to an internal IP address (mappedip) across all ports. Incoming traffic targeted to any port onextipis forwarded to the corresponding port onmappedip. - Port Forwarding (PAT / DNAT with Port Translation): Maps an external IP address and specific external port (
extport) to an internal IP address and internal port (mappedport).- Example: External users connect to
203.0.113.50:8443. FortiGate translates the destination to192.168.10.100:443(internal HTTPS).
- Example: External users connect to
- Server Load Balancing (SLB) VIPs: Distributes incoming traffic across a farm of real servers (
config firewall vip->set type server-load-balance). Includes integrated health checks (HTTP, HTTPS, Ping, TCP) and balancing algorithms (Round Robin, Weighted, Least Connections). - VIP Groups (
config firewall vipgrp): Combines multiple VIP objects into a single group object. Allows administrators to bind multiple published services to a single firewall policy.
2. Policy-Based DNAT vs. Central NAT
FortiOS supports two architectural modes for handling address translation: Policy-Based NAT (the default mode) and Central NAT.
| Feature | Policy-Based NAT (Default) | Central NAT (central-nat enable) |
|---|---|---|
| NAT Configuration Site | Integrated directly inside individual firewall policies (set nat enable, set ippool, dstaddr VIP). | Separated into dedicated central tables (central-snat-map and Central DNAT VIPs). |
| Firewall Policy Role | Policy controls both security enforcement and NAT enablement. | Firewall policy enforces security controls only (Accept/Deny, UTM profiles). |
| VIP Policy Destination | Virtual IP object must be selected as dstaddr in the firewall policy. | Real internal server address (or mapped VIP) selected based on central lookup rules. |
| GUI Visibility | NAT toggle switch visible inside every firewall policy page. | NAT toggle switch hidden from firewall policy page; Central NAT sub-menu enabled. |
| Use Case | Standard branch and enterprise deployments with straightforward policy structures. | Large enterprises, MSSPs, environments migrating from Cisco/Palo Alto/Check Point. |
Policy-Based DNAT Workflow
When using default Policy-Based NAT:
- Create the VIP object under
config firewall vipspecifyingextip,mappedip, and optional port forwarding. - Create a firewall policy where:
srcintf: Ingress interface (e.g.,port1/ WAN).dstintf: Egress interface connected to real server (e.g.,port2/ DMZ).srcaddr:all(or restricted external sources).dstaddr: Must be the VIP Object Name (NOT the real internal IP).service: Matches the external service port (e.g., HTTP/HTTPS).
During packet processing, FortiGate performs destination address translation before checking the policy table so that the policy engine can evaluate the incoming packet against the VIP object specified in dstaddr.
3. Central NAT Architecture & Operation
In complex enterprise environments, coupling NAT rules directly inside security policies can create administrative friction. Central NAT cleanly separates security policy enforcement from NAT policy rules.
Enabling Central NAT
Central NAT is enabled per-VDOM via the CLI:
config system settings
set central-nat enable
end
WARNING: Enabling Central NAT hides the standard NAT toggles inside
config firewall policy. Existing policy-based NAT rules are converted or require Central SNAT map definitions.
Central SNAT Map (config firewall central-snat-map)
Source NAT policies are defined independently in the Central SNAT map. Each entry specifies source/destination interfaces, original source/destination addresses, and the desired IP Pool or interface NAT behavior:
config firewall central-snat-map
edit 1
set srcintf "port2"
set dstintf "port1"
set orig-addr "Corp_LAN_Subnet"
set dst-addr "all"
set nat-ippool "Sales_Overload_Pool"
next
end
4. CLI Configuration & Diagnostic Workflows
1. Creating a Port Forwarding VIP Object
config firewall vip
edit "Web_Server_8443_VIP"
set extip 203.0.113.50
set extintf "port1"
set portforward enable
set mappedip "192.168.10.100"
set extport 8443
set mappedport 443
set protocol tcp
next
end
2. Binding VIP to a Policy (Policy-Based NAT)
config firewall policy
edit 20
set name "Publish_Web_Server"
set srcintf "port1"
set dstintf "port2"
set srcaddr "all"
set dstaddr "Web_Server_8443_VIP"
set action accept
set schedule "always"
set service "HTTPS"
set utm-status enable
set av-profile "default"
next
end
3. Diagnostics & Debug Commands
- List Active Virtual IPs & Match Statistics:
diagnose firewall vip list - Inspect Session Table for DNAT Verification:
diagnose sys session filter dst 203.0.113.50diagnose sys session list - Check ARP Entries for VIP External IPs:
diagnose ip arp list
In standard Policy-Based NAT mode, which object must be selected as the Destination Address (dstaddr) in a firewall policy configured to permit access to an internal web server via DNAT?
An administrator enables Central NAT in a FortiGate VDOM using the command 'set central-nat enable' under system settings. What change occurs in the FortiGate administration UI and configuration engine?
Which VIP configuration parameter must be enabled to translate incoming connections on external port 8443 to internal server port 443?