Advanced NAT

For this post I'm gathering together the resources I read in regards to NAT on Fortinet Devices. I will update it further as I continue my studies


Network Address Translation (NAT) devices converts one set of IP's to another set of IP's. This is most commonly used to convert private IP addresses (as specified in RFC 1918) to public IP addresses that can be used on the internet and vice versa. NAT was originally outlined in RFC 1631, however the current RFC for NAT is RFC3022 (linked below).

The most common use of NAT can be found in home networks, where multiple private IP addresses are translated to a single public address - this is a process called Port Address Translation because different port numbers identify translations. These translations are most commonly completed dynamically but can also be statically set where required.

NAT has several forms:

  • Static NAT - This is when a private IP address is manually mapped to a public IP address. This is commonly used to expose services hosted within the network to external resources (i.e. a web server)
  • Dynamic NAT - As per the name, this is where private IPs are mapped to one or a range of IPs (usually public). This type of NAT has two subsets:
    • NAT Overload - AKA PAT - this is where multiple internal IPs are mapped to a single external IP address with sessions being assigned their own unique port number. Port numbers are a finite resource, in that each IP can only have 65,535 ports. This means that you are limited to that many sessions being represented by the one IP.
    • Overlapping NAT - This is when you translate a private IP for another private IP and is most commonly used in organizational mergers where the networks need to be combined, however they have overlapping IP ranges. This enables mergers and communication without the organizations having to readdress their networks from day one.


NAT on FortiGate

FortiGate firewalls support the following RFCs in regards to NAT

  • RFC 7857: Updates to Network Address Translation (NAT) Behavioral Requirements

  • RFC 6888: Common Requirements for Carrier-Grade NATs (CGNs)
  • RFC 6146: Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers
  • RFC 5508: NAT Behavioral Requirements for ICMP

  • RFC 5382: NAT Behavioral Requirements for TCP

  • RFC 4966: Reasons to Move the Network Address Translator - Protocol Translator (NAT-PT) to Historic Status
  • RFC 4787: Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
  • RFC 4380: Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs)
  • RFC 3948: UDP Encapsulation of IPsec ESP Packets
  • RFC 3022: Traditional IP Network Address Translator (Traditional NAT)

Comments

Popular posts from this blog

NSE8 Lab Study Resources - Narbik CCIE R&S v5.1 Foundations

Journey to the NSE8 - Change in tactic

Specifying a domain name suffix for DHCP clients on a FortiGate (FortiOS)