Inleiding
In dit document wordt de NAT-functie beschreven op Nexus 9000-switches die zijn uitgerust met een Cisco Cloud-Scale ASIC waarop NX-OS-software wordt uitgevoerd.
Voorwaarden
Vereisten
Cisco raadt u aan vertrouwd te zijn met het Cisco Nexus Operating System (NX-OS) en de Nexus-architectuur voordat u verder gaat met de informatie die in dit document wordt beschreven.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- N9K-C93180YC-FX3
- nxos64-cs.10.4.3.F
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
NAT-ondersteuning op N9K
Terminologie
- NAT - NAT is een techniek die in netwerken wordt gebruikt om het bron- of bestemmings-IP-adres van IP-pakketten te wijzigen.
-
PAT - ook bekend als "Overloading NAT", delen meerdere interne IP-adressen één extern IP-adres, gedifferentieerd door unieke poortnummers.
-
TCP Aware NAT - TCP-aware NAT-ondersteuning stelt NAT-stroomvermeldingen in staat om overeen te komen met de status van TCP-sessies en dienovereenkomstig te worden gemaakt en verwijderd.
NAT TCAM-bron
Standaard worden er geen TCAM-vermeldingen toegewezen voor de NAT-functie op de Nexus 9000. U moet de TCAM-grootte voor de NAT-functie toewijzen door de TCAM-grootte van andere functies te verkleinen.
Er zijn drie soorten TCAM betrokken bij NAT-operaties:
NAT maakt gebruik van de TCAM NAT-regio voor pakketmatching op basis van IP-adres of poort.
Voor elke NAT/PAT-vermelding voor binnen- of externe bronadressen zijn twee NAT/TCAM-vermeldingen vereist.
Standaard is de ACL atomic update mode ingeschakeld, 60% van de niet-atomaire schaal nummer wordt ondersteund.
Voor elk NAT-inside-beleid met "x"-azen is een "x"-aantal vermeldingen vereist.
Voor elke geconfigureerde NAT-pool is één vermelding vereist.
De grootte van de TCP-NAT TCAM moet worden verdubbeld wanneer de modus voor automatisch bijwerken is ingeschakeld.
NAT-herschrijvingen en -vertalingen worden opgeslagen in de "NAT-herschrijftabel", die buiten de NAT-TCAM-regio bestaat. De 'NAT Rewrite Table' heeft een vaste grootte van 2048 vermeldingen voor Nexus 9300-EX/FX/FX2/9300C en 4096 vermeldingen voor Nexus 9300-FX3/GX/GX2A/GX2B/H2R/H1. Deze tabel wordt uitsluitend gebruikt voor NAT-vertalingen.
Voor elke statische NAT/PAT-vermelding voor binnen- of externe bronadressen is één vermelding voor de NAT-herschrijftabel vereist.
Voor meer informatie over TCAM op de Nexus 9000 kunt u verwijzen naar Classification TCAM met Cisco CloudScale ASIC's voor Nexus 9000 Series Switches Whitepaper.
Configuratie en verificatie
Topologie

N9K-NAT-configuratie
hardware access-list tcam region nat 1024
hardware access-list tcam region tcp-nat 100
ip nat translation max-entries 80
Opmerking: standaard is de maximale waarde voor dynamische nat-vertaling 80.
ip access-list TEST-NAT
10 permit ip 10.0.0.1/8 192.168.2.1/24
ip nat pool TEST 192.168.1.10 192.168.1.10 netmask 255.255.255.0
ip nat inside source list TEST-NAT pool TEST overload
Waarschuwing: De interfaceoverbelastingsoptie voor interne beleidsregels wordt niet ondersteund op de switches van de Cisco Nexus 9200, 9300-EX, 9300-FX 9300-FX2, 9300-FX3, 9300-FXP en 9300-GX voor zowel externe als interne beleidsregels
interface Vlan100
no shutdown
ip address 192.168.1.1/24
ip nat outside
interface Vlan100
no shutdown
ip address 192.168.1.1/24
ip nat outside
Verificatie
Inside-host Ping
Bron IP van het gegevenspakket: 10.0.0.1 Geconverteerd naar IP: 192.168.1.10
IP van bestemming: 192.168.2.1
Inside-host# ping 192.168.2.1 source 10.0.0.1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
64 bytes from 192.168.2.1: icmp_seq=0 ttl=63 time=0.784 ms
64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=0.595 m
NAT-vertaaltabelcontrole
N9K-NAT# show ip nat translations
icmp 192.168.1.10:60538 10.0.0.1:48940 192.168.2.1:0 192.168.2.1:0
icmp 192.168.1.10:60539 10.0.0.1:0 192.168.2.1:0 192.168.2.1:0
NAT-statistieken
N9K-NAT# show ip nat statistics
IP NAT Statistics
====================================================
Stats Collected since: Tue Sep 3 14:33:01 2024
----------------------------------------------------
Total active translations: 82 / Number of translations active in the system. This number is incremented each time a translation is created and is decremented each time a translation is cleared or times out.
No.Static: 0 / Total number of static translations present in the system.
No.Dyn: 82 / Total number of dynamic translations present in the system.
No.Dyn-ICMP: 2
----------------------------------------------------
Total expired Translations: 2
SYN timer expired: 0
FIN-RST timer expired: 0
Inactive timer expired: 2
----------------------------------------------------
Total Hits: 10475 / Total number of times the software does a translations table lookup and finds an entry.
Total Misses: 184884 / Total number of packet the software dropped Packet.
In-Out Hits: 10474 In-Out Misses: 184884
Out-In Hits: 1 Out-In Misses: 0
----------------------------------------------------
Total SW Translated Packets: 10559 / Total number of packets software does the translation.
In-Out SW Translated: 10558
Out-In SW Translated: 1
----------------------------------------------------
Total SW Dropped Packets: 184800 / Total number of packet the software dropped Packet.
In-Out SW Dropped: 184800
Out-In SW Dropped: 0
Address alloc. failure drop: 0
Port alloc. failure drop: 0
Dyn. Translation max limit drop: 184800 / Total number of packets dropped due to configured maximum number of dynamic translation entry limit reached. (ip nat translation max-entries <1-1023>)
ICMP max limit drop: 0
Allhost max limit drop: 0
----------------------------------------------------
Total TCP session established: 0
Total TCP session closed: 0
---------------------------------------------------
NAT Inside Interfaces: 1
Ethernet1/1
NAT Outside Interfaces: 1
Vlan100
----------------------------------------------------
Inside source list:
++++++++++++++++++++
Access list: TEST-NAT
RefCount: 82 / Number of current references to this access list.
Pool: TEST Overload
Total addresses: 1 / Number of addresses in the pool available for translation.
Allocated: 1 percentage: 100%
Missed: 0
Veelgestelde vragen
Wat gebeurt er als NAT TCAM uitgeput is?
Als de TCAM-bronnen zijn uitgeput, wordt het foutenlogboek gerapporteerd.
2024 Aug 28 13:26:56 N9K-NAT %ACLQOS-SLOT1-2-ACLQOS_OOTR: Tcam resource exhausted: Feature NAT outside [nat-outside]
2024 Aug 28 13:26:56 N9K-NAT %NAT-2-HW_PROG_FAILED: Hardware programming for NAT failed:Sufficient free entries are not available in TCAM bank(3)
Wat gebeurt er als de maximale inzendingen zijn bereikt?
Standaard zijn de max-items voor de NAT-vertaling 80. Zodra de dynamische NAT-vertaalitems de maximale limiet overschrijden, wordt het verkeer naar de CPU gepunteerd, wat resulteert in een foutenlogboek en -val.
Ping test failure:
Inside-host# ping 192.168.2.1 source 10.0.0.1 count unlimited interval 1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
Request 0 timed out
N9K-NAT Error log:
2024 Sep 5 15:31:33 N9K-NAT %NETSTACK-2-NAT_MAX_LIMIT: netstack [15386] NAT: Can't create dynamic translations, max limit reached - src:10.0.0.1 dst:192.168.2.1 sport:110 dport:110
Capture file from CPU:
N9K-NAT# ethanalyzer local interface inband limit-captured-frames 0
Capturing on 'ps-inb'
15 2024-09-05 15:32:44.899885527 10.0.0.1 → 192.168.2.1 UDP 60 110 → 110 Len=18
Waarom zijn sommige NAT-pakketten op de CPU gepunteerd?
Normaal gesproken zijn er twee scenario's waarin het verkeer naar de CPU kan worden geleid.
De eerste treedt op wanneer NAT-items nog niet zijn geprogrammeerd voor de hardware, op dit moment moet het verkeer worden verwerkt door de CPU.
Frequente hardware programmering legt druk op de CPU. Om de frequentie van het programmeren van NAT-vermeldingen in de hardware te verminderen, programmeert NAT vertalingen in batches van één seconde. De opdracht voor het maken van vertalingen vertraagt het instellen van de sessie.
Het tweede scenario omvat pakketten die naar de CPU worden verzonden voor verwerking tijdens de eerste fase van het vaststellen van een TCP-sessie en tijdens de beëindigingsinteracties daarvan.
Waarom werkt NAT zonder proxy-arp op de Nexus 9000?
Er is een functie genaamd nat-alias toegevoegd vanaf versie 9.2.X. Deze functie is standaard ingeschakeld en lost NAT ARP-problemen op. Tenzij u het handmatig uitschakelt, hoeft u ip-proxy-arp of ip local-proxy-arp niet in te schakelen.
NAT-apparaten bezitten Inside Global (IG) en Outside Local (OL)-adressen en zijn verantwoordelijk voor het reageren op ARP-verzoeken die naar deze adressen worden gestuurd. Wanneer het IG/OL-adressubnet overeenkomt met het subnet van de lokale interface, installeert NAT een IP-alias en een ARP-vermelding. In dit geval gebruikt het apparaat local-proxy-arp om te reageren op ARP-verzoeken.
De functie geen alias reageert op ARP-verzoeken voor alle vertaalde IP's uit een bepaald NAT-adresbereik van de pool als het adresbereik zich in hetzelfde subnet bevindt als de externe interface.
Hoe werkt add-route argument op N9K en waarom is het verplicht?
Op Cisco Nexus 9200- en 9300-EX-, -FX, -FX2-, -FX3-, -FXP- en -GX-platformopties is de optie voor het toevoegen van routes vereist voor zowel binnen- als extern beleid vanwege de ASIC-hardwarebeperking. Met dit argument voegt de N9K een hostroute toe. TCP NAT-verkeer van buiten naar binnen wordt naar de CPU gestuurd en kan zonder dit argument dalen.
Vóór:
192.168.1.0/24, ubest/mbest: 1/0, attached
*via 192.168.1.1, Vlan100, [0/0], 10:23:08, direct
192.168.1.0/32, ubest/mbest: 1/0, attached
*via 192.168.1.0, Null0, [0/0], 10:23:08, broadcast
192.168.1.1/32, ubest/mbest: 1/0, attached
*via 192.168.1.1, Vlan100, [0/0],10:23:08, local
Na:
192.168.1.2/32, ubest/mbest: 1/0
*via 10.0.0.2, [1/0], 00:02:48, nat >>route created by NAT feature
10.0.0.2/32, ubest/mbest: 1/0
*via 192.168.100.2, [200/0], 06:06:58, bgp-64700, internal, tag 64710
192.168.1.0/24, ubest/mbest: 1/0, attached
*via 192.168.1.1, Vlan100, [0/0], 20:43:08, direct
Waarom ondersteunt NAT maximaal 100 ICMP-vermeldingen
Normaal gesproken stroomt ICMP NAT time-out na het verstrijken van de geconfigureerde sampling-time-out en translatietime-out. Wanneer de ICMP NAT-stromen die in de switch aanwezig zijn, echter inactief worden, worden ze onmiddellijk na het verstrijken van de ingestelde sampling-time-out uitgeschakeld.
Vanaf Cisco NX-OS Release 7.0(3)I5(2) wordt hardwareprogrammering geïntroduceerd voor ICMP op Cisco Nexus 9300-switches. Daarom verbruiken de ICMP-items de TCAM-bronnen in de hardware. Omdat ICMP zich in de hardware bevindt, is de maximale limiet voor NAT-vertaling in Cisco Nexus-switches voor de platformreeks gewijzigd in 1024. Maximaal 100 ICMP-vermeldingen zijn toegestaan om de bronnen optimaal te gebruiken. Het is vast en er is geen optie om de maximale ICMP-vermeldingen aan te passen.
Gerelateerde informatie
Configuratiehandleiding voor Cisco Nexus 9000 Series NX-OS-interfaces, release 10.4(x)
Classificatie TCAM met Cisco CloudScale ASIC's voor Nexus 9000-serie Switches Whitepaper
Cisco Nexus 9000 Series NX-OS Gids voor geverifieerde schaalbaarheid