11.0 Network Address Translation for IPv4

11.0.1 Introductie tot Network Address Translation for IPv4

Alle openbare IPv4-adressen die over het internet gaan, moeten zijn geregistreerd bij een regionaal internetregister (RIR). Organisaties kunnen openbare adressen leasen van een serviceprovider. De geregistreerde houder van een openbaar IP-adres kan dat adres toewijzen aan een netwerkapparaat.
Met een theoretisch maximum van 4,3 miljard adressen is de IPv4-adresruimte ernstig beperkt. Toen Bob Kahn en Vint Cerf in 1981 voor het eerst de reeks TCP/IP-protocollen, waaronder IPv4, ontwikkelden, hadden ze nooit gedacht wat het internet zou worden. In die tijd was de personal computer vooral een curiositeit voor hobbyisten, en het World Wide Web was nog meer dan een decennium verwijderd.
Met de verspreiding van personal computing en de komst van het World Wide Web werd het al snel duidelijk dat 4,3 miljard IPv4-adressen niet genoeg zouden zijn. De langetermijnoplossing was IPv6, maar er waren meer directe oplossingen nodig om uitputting aan te pakken. Voor de korte termijn werden verschillende oplossingen geïmplementeerd door de IETF, waaronder Network Address Translation (NAT) en RFC 1918 private IPv4-adressen. Het hoofdstuk bespreekt hoe NAT, in combinatie met het gebruik van privé-adresruimte, wordt gebruikt om zowel IPv4-adressen te behouden als efficiënter te gebruiken om netwerken van elke omvang toegang tot internet te geven.

11.1. NAT werking

11.1.1. NAT karakteristieken

11.1.1.1. IPv4 Private Address Space

Er zijn niet genoeg openbare IPv4-adressen om een uniek adres toe te wijzen aan elk apparaat dat met internet is verbonden. Netwerken worden gewoonlijk geïmplementeerd met behulp van privé-IPv4-adressen, zoals gedefinieerd in RFC 1918. Tabel 9-1 toont het prefix Classless Inter-Domain Routing (CIDR) en het bereik van adressen in RFC 1918. Het is waarschijnlijk dat de computer die u gebruikt om bekijk deze cursus krijgt een privéadres toegewezen.

KlasseCIDR voorvoegselRFC 1918 intern adresbereik
A10.0.0.0/810.0.0.0 to 10.255.255.255
B172.16.0.0/12172.16.0.0 to 172.31.255.255
C192.168.0.0/16192.168.0.0 to 192.168.255.255

Deze privéadressen worden binnen een organisatie of site gebruikt om apparaten lokaal te laten communiceren. Omdat deze adressen echter geen enkel bedrijf of organisatie identificeren, kunnen privé-IPv4-adressen niet via internet worden gerouteerd. Om een ​​apparaat met een privé IPv4-adres toegang te geven tot apparaten en bronnen buiten het lokale netwerk, moet het privéadres eerst worden vertaald naar een openbaar adres.

Zoals geïllustreerd in de volgenden afbeelding, biedt NAT de vertaling van privéadressen naar openbare adressen. Hierdoor kan een apparaat met een privé IPv4-adres toegang krijgen tot bronnen buiten hun privénetwerk, zoals die op internet.

Vertalen tussen privé en publiek

NAT in combinatie met privé IPv4-adressen is een nuttige methode gebleken om openbare IPv4-adressen te behouden. Een enkel, openbaar IPv4-adres kan worden gedeeld door honderden, zelfs duizenden apparaten, elk geconfigureerd met een uniek privé IPv4-adres.

Zonder NAT zou de uitputting van de IPv4-adresruimte ruim voor het jaar 2000 hebben plaatsgevonden. NAT heeft echter bepaalde beperkingen, die later in dit hoofdstuk zullen worden onderzocht. De oplossing voor de uitputting van IPv4-adresruimte en de beperkingen van NAT is de uiteindelijke overgang naar IPv6.

11.1.1.2. Wat is NAT?

NAT heeft veel toepassingen, maar het primaire gebruik is om openbare IPv4-adressen te behouden. Het doet dit door netwerken toe te staan ​​intern privé IPv4-adressen te gebruiken en alleen vertalingen naar een openbaar adres te bieden wanneer dat nodig is. NAT heeft als bijkomend voordeel dat het een zekere mate van privacy en beveiliging aan een netwerk toevoegt, omdat het interne IPv4-adressen verbergt voor externe netwerken.

NAT-compatibele routers kunnen worden geconfigureerd met een of meer geldige openbare IPv4-adressen. Deze openbare adressen worden de NAT-pool genoemd. Wanneer een intern apparaat verkeer uit het netwerk stuurt, vertaalt de NAT-enabled router het interne IPv4-adres van het apparaat naar een openbaar adres uit de NAT-pool. Voor externe apparaten lijkt al het verkeer dat het netwerk binnenkomt en verlaat een openbaar IPv4-adres te hebben uit de opgegeven pool van adressen.

Een NAT-router werkt meestal aan de rand van een stub-netwerk. Een stub-netwerk is een netwerk dat een enkele verbinding heeft met het aangrenzende netwerk, een weg in en een weg uit het netwerk.

In het volgend voorbeeld is R2 een grensrouter. Vanuit het perspectief van de internetserviceprovider (ISP) is R2 een stub-netwerk.

NAT Border Router topologie

Wanneer een apparaat binnen het stub-netwerk wil communiceren met een apparaat buiten zijn netwerk, wordt het pakket doorgestuurd naar de grensrouter. De grensrouter voert het NAT-proces uit en vertaalt het interne privéadres van het apparaat naar een openbaar, extern, routeerbaar adres.

Opmerking: De verbinding met de ISP kan een privéadres of een openbaar adres gebruiken dat wordt gedeeld door klanten. Voor de doeleinden van dit hoofdstuk wordt een openbaar adres weergegeven.

11.1.1.3. NAT terminologie

In NAT-terminologie is het interne netwerk de reeks netwerken die onderhevig zijn aan vertaling. Het externe netwerk verwijst naar alle andere netwerken.

Bij gebruik van NAT hebben IPv4-adressen verschillende aanduidingen op basis van of ze zich op het privénetwerk of op het openbare netwerk (internet) bevinden en of het verkeer inkomend of uitgaand is.

NAT omvat vier soorten adressen:

  • Binnenzijde lokaal adres
  • Binnenzijde globaal adres
  • Buitenzijde lokaal adres
  • Buitenzijde globaal adres

Bij het bepalen welk type adres wordt gebruikt, is het belangrijk om te onthouden dat NAT-terminologie altijd wordt toegepast vanuit het perspectief van het apparaat met het vertaalde adres:

  • Binnenzijde adres – Het adres van het apparaat dat NAT vertaalt.
  • Buitenzijde adres – Het adres van het bestemmingsapparaat.

NAT gebruikt ook het concept van lokaal of globaal met betrekking tot adressen:

  • Lokaal adres – Een lokaal adres is elk adres dat aan de binnenkant van het netwerk wordt weergegeven.
  • Globaal adres – Een globaal adres is elk adres dat aan de buitenkant van het netwerk wordt weergegeven.

In onderstaande afbeelding heeft PC1 een intern lokaal adres van 192.168.10.10. Van de perspectief van PC1, heeft de webserver een extern adres van 209.165.201.1. Wanneer pakketten van PC1 naar het globale adres van de webserver worden verzonden, wordt het interne lokale adres van PC1 vertaald naar 209.165.200.226 (binnen het globale adres). Het adres van het externe apparaat wordt meestal niet vertaald, omdat dat adres meestal een openbaar IPv4-adres is.

NAT toplogoy met NAT-adrestypen

Merk op dat PC1 verschillende lokale en globale adressen heeft, terwijl de webserver voor beide hetzelfde openbare IPv4-adres heeft. Vanuit het perspectief van de webserver lijkt het verkeer afkomstig van PC1 afkomstig te zijn van 209.165.200.226, het interne globale adres.

De NAT-router, R2 in de figuur, is het demarcatiepunt tussen de binnen- en buitennetwerken en tussen lokale en globale adressen.

De termen ‘binnen’ en ‘buiten’ worden gecombineerd met de termen ‘lokaal’ en ‘globaal’ om naar specifieke adressen te verwijzen. In figuur 9.4 is router R2 geconfigureerd om NAT te leveren. Het heeft een pool van openbare adressen om toe te wijzen aan interne hosts.

  • Binnen lokaal adres – Het adres van de bron gezien vanuit het netwerk. In de afbeelding is het IPv4-adres 192.168.10.10 toegewezen aan PC1. Dit is het interne lokale adres van PC1.
  • Binnen globaal adres – Het adres van de bron gezien vanaf het externe netwerk. In de afbeelding, wanneer verkeer van PC1 naar de webserver wordt gestuurd op 209.165.201.1, vertaalt R2 het interne lokale adres naar een intern globaal adres. In dit geval verandert R2 het IPv4-bronadres van 192.168.10.10 in 209.165.200.226. In NAT-terminologie wordt het interne lokale adres 192.168.10.10 vertaald naar het interne globale adres 209.165.200.226.
  • Buiten globaal adres – Het adres van de bestemming gezien vanaf het externe netwerk. Het is een wereldwijd routeerbaar IPv4-adres dat is toegewezen aan een host op internet. De webserver is bijvoorbeeld bereikbaar op IPv4-adres 209.165.201.1. Meestal zijn de externe lokale en externe globale adressen hetzelfde.
  • Buiten lokaal adres – Het adres van de bestemming gezien vanaf het interne netwerk. In dit voorbeeld stuurt PC1 verkeer naar het webserver op het IPv4-adres 209.165.201.1. Hoewel ongebruikelijk, kan dit adres verschillen van het globaal routeerbare adres van de bestemming.

Volgende afbeelding laat zien hoe verkeer wordt geadresseerd dat wordt verzonden van een interne pc naar een externe webserver via de NAT-router. Het laat ook zien hoe retourverkeer in eerste instantie wordt aangepakt en vertaald.

NAT-adrestypen

Opmerking: Het gebruik van het externe lokale adres valt buiten het bestek van deze cursus.

11.1.1.5. Hoe NAT werkt

In onderstaande animatie wil PC1 met privéadres 192.168.10.10 communiceren met een externe webserver met openbaar adres 209.165.201.1.

NAT in actie

PC1 stuurt een pakket dat is geadresseerd aan de webserver. Het pakket wordt doorgestuurd door R1 naar R2.

Wanneer het pakket aankomt bij R2, de NAT-enabled router voor het netwerk, R2 leest het bron-IPv4-adres van het pakket om te bepalen of het pakket voldoet aan de criteria die zijn gespecificeerd voor vertaling.

In dit geval komt het IPv4-bronadres overeen met de criteria en wordt het vertaald van 192.168.10.10 (binnen het lokale adres) naar 209.165.200.226 (binnen het globale adres). R2 voegt deze toewijzing van het lokale naar het globale adres toe aan de NAT-tabel.

R2 stuurt het pakket met het vertaalde bronadres naar de bestemming.

De webserver antwoordt met een pakket dat is geadresseerd aan het interne globale adres van PC1 (209.165.200.226).

R2 ontvangt het pakket met bestemmingsadres 209.165.200.226. R2 controleert de NAT-tabel en vindt een vermelding voor deze toewijzing. R2 gebruikt deze informatie en vertaalt het interne globale adres (209.165.200.226) naar het interne lokale adres (192.168.10.10), en het pakket wordt doorgestuurd naar PC1.

11.1.2. Soorten NAT

11.1.2.1. Statische NAT

Er zijn drie soorten NAT-vertaling:

  • Statische netwerkadresvertaling (statische NAT) – Een-op-een adrestoewijzing tussen lokale en globale adressen.
  • Dynamische netwerkadresvertaling (dynamische NAT) – Many-to-many adrestoewijzing tussen lokale en globale adressen. Vertalingen worden gemaakt op basis van beschikbaarheid; als er bijvoorbeeld 100 interne lokale adressen en 10 interne globale adressen zijn, kunnen op elk moment slechts 10 van de 100 interne lokale adressen worden vertaald. Deze beperking van dynamische NAT maakt het veel minder bruikbaar voor productienetwerken dan het vertalen van poortadressen.
  • Port Address Translation (PAT) – Many-to-one adresmapping tussen lokale en globale adressen. Deze methode wordt ook wel overloading (NAT-overloading) genoemd. Als er bijvoorbeeld 100 interne lokale adressen en 10 interne globale adressen zijn, gebruikt PAT poorten als een extra parameter om een ​​vermenigvuldigingseffect te bieden, waardoor het mogelijk wordt om een ​​van de 10 interne globale adressen tot 65.536 keer opnieuw te gebruiken (afhankelijk van of de stroom is gebaseerd op UDP, TCP of ICMP).

Statische NAT gebruikt een één-op-één toewijzing van lokale en globale adressen. Deze mappings worden geconfigureerd door de netwerkbeheerder en blijven constant.

In onderstaand voorbeeld is R2 geconfigureerd met statische toewijzingen voor de interne lokale adressen van Svr1, PC2 en PC3. Wanneer deze apparaten verkeer naar internet sturen, worden hun interne lokale adressen vertaald naar de geconfigureerde interne globale adressen. Voor externe netwerken hebben deze apparaten openbare IPv4-adressen.

Statisch NAT-scenario

Statische NAT is met name handig voor servers of apparaten die een consistent adres moeten hebben dat toegankelijk is vanaf internet, zoals een bedrijfswebserver. Het is ook handig voor apparaten die toegankelijk moeten zijn voor geautoriseerde personeel wanneer offsite, maar niet door het grote publiek op internet. Zoals geïllustreerd in bovenstaand voorbeeld, specificeert een netwerkbeheerder die PC4 gebruikt het interne globale adres (209.165.200.226) van Svr1 om er op afstand verbinding mee te maken via SSH. R2 vertaalt dit interne globale adres naar het interne lokale adres en verbindt de beheerderssessie met Svr1.

Statische NAT vereist dat er voldoende openbare adressen beschikbaar zijn om aan het totale aantal gelijktijdige gebruikerssessies te voldoen.

11.1.2.2. Dynamische NAT

Dynamic NAT gebruikt een pool van openbare adressen en wijst deze toe op basis van wie het eerst komt, het eerst maalt. Wanneer een intern apparaat toegang vraagt tot een extern netwerk, wijst dynamische NAT een beschikbaar openbaar IPv4-adres uit de pool toe.

In onderstaand voorbeeld heeft PC3 toegang tot internet gekregen via het eerste beschikbare adres in de dynamische NAT-pool. De overige adressen zijn nog beschikbaar voor gebruik.

Dynamische NAT scenario

Net als bij statische NAT, vereist dynamische NAT dat er voldoende openbare adressen beschikbaar zijn om te voldoen aan het totale aantal gelijktijdige gebruikerssessies.

11.1.2.3. Port Adress Translation (PAT)

Port Address Translation (PAT), ook bekend als NAT-overbelasting, wijst meerdere privé-IPv4-adressen toe aan een enkel openbaar IPv4-adres of een paar adressen. Dit is wat de meeste thuisrouters doen. De ISP wijst één adres toe aan de router, maar meerdere leden van het huishouden kunnen tegelijkertijd toegang krijgen tot internet. Dit is de meest voorkomende vorm van NAT.

Met PAT kunnen meerdere adressen worden toegewezen aan één of enkele adressen, omdat elk privéadres ook wordt gevolgd door een poortnummer. Wanneer een apparaat een TCP/IP-sessie start, genereert het een TCP- of UDP-bronpoortwaarde of een speciaal toegewezen query-ID voor ICMP om de sessie uniek te identificeren. Wanneer de NAT-router een pakket van de client ontvangt, gebruikt deze het bronpoortnummer om de specifieke NAT-vertaling uniek te identificeren.

PAT zorgt ervoor dat apparaten voor elke sessie met een server op internet een ander TCP-poortnummer gebruiken. Wanneer een reactie van de server terugkomt, bepaalt het bronpoortnummer, dat het bestemmingspoortnummer wordt op de terugreis, naar welk apparaat de router de pakketten doorstuurt. Het PAT-proces valideert ook dat de inkomende pakketten zijn aangevraagd, waardoor een zekere mate van beveiliging aan de sessie wordt toegevoegd.
De volgende animatie illustreert het PAT-proces. PAT voegt unieke bronpoortnummers toe aan het interne globale adres om onderscheid te maken tussen vertalingen.

PAT scenario

Terwijl R2 elk pakket verwerkt, gebruikt het een poortnummer (1331 en 1555, in figuur 9.8) om het apparaat te identificeren waarvan het pakket afkomstig is. Het bronadres (SA) is het interne lokale adres waaraan het door TCP/IP toegewezen poortnummer is toegevoegd. Het bestemmingsadres (DA) is het externe lokale adres waaraan het servicepoortnummer is toegevoegd. In dit voorbeeld is de servicepoort 80, wat HTTP is.

Voor het bronadres vertaalt R2 het interne lokale adres naar een intern globaal adres waaraan het poortnummer is toegevoegd. Het bestemmingsadres wordt niet gewijzigd, maar wordt nu het externe globale IPv4-adres genoemd. Wanneer de webserver antwoordt, wordt het pad omgekeerd.

11.1.2.4. Volgende beschikbare poort

In het vorige voorbeeld zijn de clientpoortnummers, 1331 en 1555, niet gewijzigd op de NAT-router. Dit is geen waarschijnlijk scenario omdat de kans groot is dat deze poortnummers al aan andere actieve sessies zijn gekoppeld.

PAT probeert de oorspronkelijke bronpoort te behouden. Als de oorspronkelijke bronpoort echter al wordt gebruikt, wijst PAT het eerste beschikbare poortnummer toe beginnend bij het begin van de juiste poortgroep 0 tot 511, 512 tot 1.023 of 1.024 tot 65.535. Als er geen poorten meer beschikbaar zijn en er is meer dan één extern adres in de adrespool, gaat PAT naar het volgende adres om te proberen de oorspronkelijke bronpoort toe te wijzen. Dit proces gaat door totdat er geen poorten of externe IPv4-adressen meer beschikbaar zijn.

Hertoewijzing van bronpoort

In bovenstaande animantie heeft PAT de volgende beschikbare poort (1445) toegewezen aan het tweede hostadres. De hosts hebben hetzelfde poortnummer 1444 gekozen. Dit is acceptabel voor het binnenadres omdat de hosts unieke privé IPv4-adressen hebben. Bij de NAT-router moeten echter de poortnummers worden gewijzigd; anders zouden pakketten van twee verschillende hosts R2 verlaten met hetzelfde bronadres. Het voorbeeld in figuur 9.9 gaat ervan uit dat de eerste 420 poorten in het bereik van 1.024 tot 65.535 al in gebruik zijn, dus het volgende beschikbare poortnummer, 1445, wordt gebruikt.

9.1.2.5. NAT en PAT vergelijken

Door de verschillen tussen NAT en PAT samen te vatten, kunt u ze beter begrijpen.

De volgende tabel laat zien hoe NAT IPv4-adressen op een 1:1-basis vertaalt tussen privé-IPv4-adressen en openbare IPv4-adressen.

Inside Local AddressInside Global Address Pool
192.168.10.10209.165.200.226
192.168.10.11209.165.200.227
192.168.10.12209.165.200.228
192.168.10.13209.165.200.229
NAT translaties

Volgende tabel laat echter zien hoe PAT zowel het adres als het poortnummer wijzigt.

Inside Local AddressInside Global Address
192.168.10.10:1444209.165.200.226:1444
192.168.10.11:1444209.165.200.226:1445
192.168.10.12:1555209.165.200.226:1555
192.168.10.13:1555209.165.200.226:1556
PAT translaties

NAT stuurt inkomende pakketten door naar hun interne bestemming door te verwijzen naar de inkomend bron-IPv4-adres gegeven door de host op het openbare netwerk. Met PAT zijn er over het algemeen slechts één of enkele openbaar toegankelijke IPv4-adressen. Inkomende pakketten van het openbare netwerk worden naar hun bestemming op het particuliere netwerk gerouteerd door te verwijzen naar een tabel in de NAT-router. Deze tabel houdt openbare en privépoortparen bij. Dit wordt het volgen van verbindingen genoemd.

Hoe zit het met IPv4-pakketten die andere gegevens dan een TCP- of UDP-segment vervoeren? Deze pakketten bevatten geen Layer 4-poortnummer. PAT vertaalt de meest voorkomende protocollen van IPv4 die geen TCP of UDP als transportlaagprotocol gebruiken. De meest voorkomende hiervan is ICMPv4. Elk van deze soorten protocollen wordt door PAT anders behandeld. ICMPv4-queryberichten, echo-verzoeken en echo-antwoorden bevatten bijvoorbeeld een query-ID. ICMPv4 gebruikt de Query-ID om een ​​echo-verzoek te identificeren met het bijbehorende echo-antwoord.

De query-ID wordt verhoogd met elk verzonden echo-verzoek. PAT gebruikt de Query-ID in plaats van een Layer 4-poortnummer.

Opmerking: Andere ICMPv4-berichten gebruiken de Query-ID niet. Deze berichten en andere protocollen die geen TCP- of UDP-poortnummers gebruiken, variëren en vallen buiten het bestek van dit curriculum.

11.1.3. Voordelen van NAT

11.1.3.1. Voordelen van NAT

NAT biedt vele voordelen, waaronder deze:

  • NAT behoudt het wettelijk geregistreerde adresseringsschema door de privatisering van intranetten toe te staan. NAT bewaart adressen door middel van multiplexing op poortniveau van de toepassing. Met NAT-overbelasting kunnen interne hosts een enkel openbaar IPv4-adres delen voor alle externe communicatie. In dit type configuratie zijn er maar weinig externe adressen nodig om veel interne hosts te ondersteunen.
  • NAT vergroot de flexibiliteit van verbindingen met het openbare netwerk. Er kunnen meerdere pools, back-uppools en taakverdelingspools worden geïmplementeerd om betrouwbare openbare netwerkverbindingen te garanderen.
  • NAT biedt consistentie voor interne netwerkadresseringsschema’s. Op een netwerk dat geen privé-IPv4-adressen en NAT gebruikt, vereist het wijzigen van het openbare IPv4-adresschema de heradressering van alle hosts op het bestaande netwerk. De kosten van het heradresseren van hosts kunnen aanzienlijk zijn.
  • NAT zorgt ervoor dat het bestaande privé IPv4-adresschema behouden blijft, terwijl het gemakkelijk kan worden gewijzigd naar een nieuw schema voor openbare adressering. Dit betekent dat een organisatie van ISP kan veranderen en geen interne klanten hoeft te veranderen.
  • NAT verbergt IPv4-adressen van gebruikers. Door gebruik te maken van RFC 1918 IPv4-adressen, biedt NAT het neveneffect van het verbergen van IPv4-adressen van gebruikers en andere apparaten. Sommige mensen beschouwen dit als een beveiligingsfunctie; de meeste experts zijn het er echter over eens dat NAT geen beveiliging biedt. Een stateful firewall zorgt voor beveiliging aan de rand van het netwerk.

11.1.3.2. Nadelen van NAT

De nadelen van NAT zijn de volgende:

  • Verminderde prestaties.
  • Verminderde End-to-end functionaliteit.
  • End-to-end IP-traceerbaarheid gaat verloren.
  • Tunnelen wordt ingewikkelder.
  • Het initiëren van TCP-verbindingen kan worden verstoord.

NAT heeft wel wat nadelen. Het feit dat hosts op internet rechtstreeks lijken te communiceren met het NAT-apparaat, in plaats van met de eigenlijke host in het privénetwerk, creëert een aantal problemen.

Een nadeel van het gebruik van NAT is gerelateerd aan de netwerkprestaties, met name voor real-time protocollen zoals VoIP. NAT verhoogt doorstuuurvertragingen, omdat de vertaling van elk IPv4-adres binnen de pakketheaders tijd kost. Het eerste pakket is altijd procesgeschakeld en gaat door het langzamere pad. De router moet elk pakket bekijken om te beslissen of het vertaald moet worden. De router moet de IPv4-header wijzigen en mogelijk de TCP- of UDP-header. De IPv4-headercontrolesom, samen met de TCP- of UDP-controlesom, moet elke keer dat een vertaling wordt gemaakt opnieuw worden berekend. Resterende pakketten gaan via het snel geschakelde pad als er een cache-item bestaat; anders lopen ook zij vertraging op.

Een ander nadeel van het gebruik van NAT is dat end-to-end adressering verloren gaat. Veel internetprotocollen en -toepassingen zijn afhankelijk van end-to-end-adressering van de bron tot de bestemming. Sommige toepassingen werken niet met NAT. Sommige beveiligingstoepassingen, zoals digitale handtekeningen, mislukken bijvoorbeeld omdat het bron-IPv4-adres verandert voordat het de bestemming bereikt. Toepassingen die fysieke adressen gebruiken in plaats van een gekwalificeerde domeinnaam, bereiken geen bestemmingen die via de NAT-router worden vertaald. Soms kan dit probleem worden vermeden door statische NAT-toewijzingen te implementeren.

End-to-end IPv4-traceerbaarheid gaat ook verloren. Het wordt veel moeilijker om pakketten te traceren die talloze pakketadreswijzigingen ondergaan over meerdere NAT-hops, wat het oplossen van problemen een uitdaging maakt.

Het gebruik van NAT bemoeilijkt ook het gebruik van tunnelingprotocollen, zoals IPsec, omdat NAT waarden in de headers wijzigt, waardoor integriteitscontroles mislukken. Tunneling wordt later in het hoofdstuk besproken.

Services die de initiatie van TCP-verbindingen van het externe netwerk vereisen, of stateless protocollen, zoals die met UDP, kunnen worden verstoord. Tenzij de NAT-router is geconfigureerd om dergelijke protocollen te ondersteunen, kunnen inkomende pakketten hun bestemming niet bereiken. Sommige protocollen zijn geschikt voor één instantie van NAT tussen deelnemende hosts (bijvoorbeeld passieve FTP), maar mislukken wanneer beide systemen door NAT van internet worden gescheiden.

11.2. NAT configureren

11.2.1. Statische NAT configureren

11.2.1.1. Statische NAT configureren

Statische NAT is een één-op-één-toewijzing tussen een binnenadres en een buitenadres. Met statische NAT kunnen externe apparaten verbindingen tot stand brengen met interne apparaten met behulp van het statisch toegewezen openbare adres. De webserver met een privéadres in figuur 9.10 is bijvoorbeeld toegewezen aan een specifiek intern globaal adres om het toegankelijk te maken voor externe hosts.

Statische NAT topologie

Router R2 is geconfigureerd met statische NAT om apparaten op het externe netwerk (internet) toegang te geven tot de webserver. De client op het externe netwerk heeft toegang tot de webserver met behulp van een openbaar IPv4-adres. Statische NAT vertaalt het openbare IPv4-adres naar het privé IPv4-adres.
Er zijn twee basisstappen bij het configureren van statische NAT-vertalingen.

Stap 1. De eerste taak is om een ​​mapping te maken tussen de interne lokale adres en de interne globale adressen met behulp van de opdracht ip nat inside source static local-ip global-ip global configuration.

Stap 2. Vervolgens worden de interfaces die deelnemen aan de vertaling geconfigureerd als binnen of buiten ten opzichte van NAT. Inside-interfaces worden geconfigureerd met de opdracht ip nat inside interface-configuratie, terwijl de externe interface wordt geconfigureerd met de opdracht ip nat outside-interfaceconfiguratie.

Onderstaand voorbeeld toont de commando’s die nodig zijn op R2 om een ​​statische NAT-toewijzing naar de webserver te maken in bovenstaande afbeelding.

R2(config)# ip nat inside source static 192.168.10.254 209.165.201.5
R2(config)#
R2(config)# interface Serial0/0/0
R2(config-if)# ip address 10.1.1.2 255.255.255.252
R2(config-if)# ip nat inside 
R2(config-if)# exit
R2(config)#
R2(config)# interface Serial0/1/0
R2(config-if)# ip address 209.165.200.225 255.255.255.224
R2(config-if)# ip nat outside
R2(config-if)#

Pakketten die binnenkomen op de interne interface van R2 (Serial 0/0/0) van het geconfigureerde interne lokale IPv4-adres 192.168.10.254 worden vertaald naar het interne globale IP-adres van 209.165.201.5 en vervolgens doorgestuurd naar het externe netwerk.

Pakketten die aankomen op de externe interface van R2 (Serial 0/1/0) die zijn geadresseerd aan het geconfigureerde interne globale IPv4-adres 209.165.201.5, worden vertaald naar het interne lokale adres 192.168.10.254 en doorgestuurd naar het interne netwerk.

Daarom kan de internetclient nu webverzoeken doorsturen naar het openbare IPv4-adres 209.165.201.5, en R2 vertaalt en stuurt het verkeer door naar de webserver op 192.168.10.254.

11.2.1.2. Statische NAT analyseren

Met de vorige configuratie illustreert onderstaande afbeelding het statische NAT-vertaalproces tussen de client en de webserver.

Statisch NAT proces

Meestal worden statische vertalingen gebruikt wanneer clients op het externe netwerk (internet) servers op het interne (interne) netwerk moeten bereiken.

  1. De klant wil een verbinding met de webserver openen. De client stuurt een pakket naar de webserver met behulp van het openbare IPv4-bestemmingsadres 209.165.201.5. Dit is het interne globale adres van de webserver.
  2. Het eerste pakket dat R2 van de client op zijn NAT-buiteninterface ontvangt, zorgt ervoor dat R2 zijn NAT-tabel controleert. Het bestemmings-IPv4-adres bevindt zich in de NAT-tabel en wordt vertaald.
  3. R2 vervangt het interne algemene adres van 209.165.201.5 door het interne lokale adres van 192.168.10.254. R2 stuurt het pakket vervolgens door naar de webserver.
  4. De webserver ontvangt het pakket en reageert op de client met het interne lokale adres 192.168.10.254.
  5. R2 ontvangt het pakket van de webserver op zijn NAT-binneninterface met het bronadres van het interne lokale adres van de webserver, 192.168.10.254.
  6. R2 controleert de NAT-tabel op een vertaling voor het interne lokale adres. Het adres is te vinden in de NAT-tabel. R2 vertaalt het bronadres naar het interne globale adres van 209.165.201.5 en stuurt het pakket door naar de client.
  7. De cliënt ontvangt het pakket en vervolgt het gesprek. De NAT-router voert stap 2 tot 5b uit voor elk pakket. (Stap 6 wordt niet getoond in de afbeelding.)

11.2.1.3. Statische NAT verifiëren

Een nuttige opdracht om de NAT-bewerking te verifiëren is de opdracht show ip nat translations, zoals weergegeven in het volgend voorbeeld.

R2# show ip nat translations
Pro Inside global       Inside local    Outside local   Outside global
--- 209.165.201.5       192.168.10.254  ---             ---
R2#

Deze opdracht geeft actieve NAT-vertalingen weer. Statische vertalingen zijn, in tegenstelling tot dynamische vertalingen, altijd aanwezig in de NAT-tabel. Als de opdracht wordt gegeven tijdens een actieve sessie, geeft de uitgang ook het adres van het externe apparaat aan, zoals weergegeven in het volgend voorbeeld.

R2# show ip nat translations
Pro Inside global       Inside local    Outside local   Outside global
--- 209.165.201.5       192.168.10.254  209.165.200.254 20
R2#

Een ander nuttig commando is het commando show ip nat statistics, dat informatie weergeeft over het totale aantal actieve vertalingen, de NAT-configuratieparameters, het aantal adressen in de pool en het aantal toegewezen adressen. Om te controleren of de NAT-vertaling werkt, kunt u het beste de statistieken van eerdere vertalingen wissen met het commando clear ip nat statistics voordat u gaat testen. In het volgend voorbeeld worden de R2 NAT-statistieken gewist en geverifieerd.

R2# clear ip nat statistics

R2# show ip nat statistics
Total active translations: 1 (1 static, 0 dynamic; 0 extended)
Peak translations: 0 
Outside interfaces:
  Serial0/0/1 
Inside interfaces:
  Serial0/0/0 
Hits: 0 Misses: 0
<output omitted>

De uitvoer bevestigt dat er een statische NAT-vermelding is en dat er momenteel geen treffers zijn. In voorbeeld 9-5 heeft een client een sessie met de webserver tot stand gebracht. De show ip nat statistics opdracht bevestigt nu dat de invoer is gebruikt omdat er nu vijf treffers zijn aan de binnenkant (Serial0/0/0) interface.

R2# show ip nat statistics
Total active translations: 1 (1 static, 0 dynamic; 0 extended)
Peak translations: 2, occurred 00:00:14 ago 
Outside interfaces:
  Serial0/1/0 
Inside interfaces:
  Serial0/0/0 
Hits: 5 Misses: 0
<output omitted>

11.2.2. Dynamische NAT configureren

11.2.2.1. Dynamische NAT-werking

Hoewel statische NAT een permanente toewijzing biedt tussen een intern lokaal adres en een intern algemeen adres, maakt dynamische NAT de automatische toewijzing van interne lokale adressen aan interne globale adressen mogelijk. Deze interne globale adressen zijn doorgaans openbare IPv4-adressen. Dynamische NAT gebruikt een groep of pool van openbare IPv4-adressen voor vertaling.

Dynamische NAT vereist, net als statische NAT, de configuratie van de binnen- en buiteninterfaces die deelnemen aan NAT. Terwijl statische NAT echter een permanente toewijzing aan een enkel adres creëert, gebruikt dynamische NAT een pool van adressen.

Opmerking: Het vertalen tussen openbare en privé IPv4-adressen is verreweg het meest voorkomende gebruik van NAT. NAT-vertalingen kunnen echter plaatsvinden tussen elk paar adressen.

De topologie die in figuur 9.12 wordt getoond, heeft een intern netwerk dat gebruikmaakt van adressen uit de privéadresruimte van RFC 1918. Aan router R1 zijn twee LAN’s verbonden: 192.168.10.0/24 en 192.168.11.0/24. Router R2, de grensrouter, is geconfigureerd voor dynamische NAT met behulp van een pool van openbare IPv4-adressen 209.165.200.226 tot en met 209.165.200.240.

Dynamische NAT-topologie: één-op-één vertaling

De pool van openbare IPv4-adressen (binnen de globale adrespool) is beschikbaar voor elk apparaat in het interne netwerk op basis van wie het eerst komt, het eerst maalt. Met dynamische NAT wordt een enkel binnenadres vertaald naar een enkel buitenadres. Met dit type vertaling moeten er voldoende adressen in de pool zijn om alle interne apparaten die tegelijkertijd toegang tot het externe netwerk nodig hebben, te huisvesten. Als alle adressen in de pool zijn gebruikt, moet een apparaat wachten op een beschikbaar adres voordat het toegang krijgt tot het externe netwerk.

11.2.2.2. Dynamische NAT configureren

Er zijn vijf stappen bij het configureren van dynamische NAT-vertalingen.

Stap 1. Definieer de pool van adressen die voor de vertaling moet worden gebruikt. Het zwembad krijgt een naam toegewezen om het te identificeren. De pool van beschikbare adressen wordt gedefinieerd door het begin-IPv4-adres en het eind-IPv4-adres van de pool aan te geven. Deze pool van adressen is meestal een groep openbare adressen.

Gebruik het ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length} commando. De trefwoorden netmask of prefix-length geven aan welke adresbits bij het netwerk horen en welke bits bij de host voor de reeks adressen.

Stap 2. Configureer een standaard ACL met behulp van de opdracht toegangslijst toegangslijst-nummer permit source [source-wildcard] om (vergunnings)adressen te identificeren die kunnen worden vertaald. Een ACL die te tolerant is, kan leiden tot onvoorspelbare resultaten. Onthoud: er is een impliciete deny all-instructie aan het einde van elke ACL. Merk op dat er een benoemde standaard ACL kan zijn geconfigureerd in plaats van een genummerde standaard ACL.

Stap 3. Bind de ACL aan de pool. Gebruik de globale configuratieopdracht ip nat inside source list access-list-number pool pool-name om de ACL aan de pool te binden. De router gebruikt deze configuratie om apparaten te identificeren en te beheren die de NAT-adressen kunnen gebruiken.

Stap 4. Identificeer welke interfaces zich binnenin bevinden met behulp van de opdracht ip nat inside interface-configuratie.

Stap 5. Bepaal welke interfaces zich buiten bevinden met behulp van de opdracht ip nat outside interface configuration.

Volgend voorbeeld configureert R2 om dynamische NAT-services te bieden voor de hosts in de bovenstaande afbeelding.

R2(config)# ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224
R2(config)# access-list 1 permit 192.168.0.0 0.0.255.255
R2(config)# ip nat inside source list 1 pool NAT-POOL1
R2(config)# interface Serial0/0/0 
R2(config-if)# ip nat inside 
R2(config-if)# exit
R2(config)# interface Serial0/1/0 R2(config-if)# ip nat outside 
R2(config-if)#

De configuratie maakt vertaling mogelijk voor alle hosts op het 192.168.0.0/16-netwerk, inclusief de 192.168.10.0 en 192.168.11.0 LAN’s, wanneer ze verkeer genereren dat S0/0/0 binnenkomt en S0/1/0 verlaat. Deze hosts worden vertaald naar een beschikbaar adres in de pool in het bereik 209.165.200.226 tot 209.165.200.240.

11.2.2.3. Dynamische NAT analyseren

Afbeelding 9-13 illustreert het dynamische NAT-vertaalproces tussen twee clients en de webserver. Concreet wordt de verkeersstroom van binnen naar buiten weergegeven.

Dynamisch NAT-proces: van binnen naar buiten
  1. De hosts met de bron-IPv4-adressen (192.168.10.10 (PC1) en 192.168.11.10 (PC2)) verzenden pakketten met het verzoek om verbinding met de server op het openbare IPv4-adres (209.165.200.254).
  2. R2 ontvangt het eerste pakket van host 192.168.10.10. Omdat dit pakket is ontvangen op een interface die is geconfigureerd als een interne NAT-interface, controleert R2 de NAT-configuratie om te bepalen of dit pakket moet worden vertaald. De ACL staat dit pakket toe, dus R2 zal het pakket vertalen. R2 controleert zijn NAT-tabel. Omdat er geen vertaalinvoer is voor dit IPv4-adres, bepaalt R2 dat het bronadres 192.168.10.10 dynamisch moet worden vertaald. R2 selecteert een beschikbaar globaal adres uit de dynamische adrespool en maakt een vertaalinvoer, 209.165.200.226. Het oorspronkelijke IPv4-bronadres (192.168.10.10) is het interne lokale adres en het vertaalde adres is het interne globale adres (209.165.200.226) in de NAT-tabel.
    Voor de tweede host, 192.168.11.10, herhaalt R2 de procedure, selecteert het volgende beschikbare globale adres uit de dynamische adrespool en maakt een tweede vertaalitem, 209.165.200.227.
  3. R2 vervangt het interne lokale bronadres van PC1, 192.168.10.10, door het vertaalde interne globale adres van 209.165.200.226 en stuurt het pakket door. Hetzelfde proces vindt plaats voor het pakket van PC2 met het vertaalde adres voor PC2 (209.165.200.227).
  4. De server ontvangt het pakket van PC1 en reageert met het IPv4-bestemmingsadres 209.165.200.226. Wanneer de server het tweede pakket ontvangt, reageert deze op PC2 met het IPv4-bestemmingsadres 209.165.200.227.
  5. Wanneer R2 het pakket ontvangt met het bestemmings-IPv4-adres 209.165.200.226, voert het een NAT-tabelopzoeking uit. Met behulp van de afbeelding uit de tabel vertaalt R2 het adres terug naar het interne lokale adres (192.168.10.10) en stuurt het pakket door naar PC1.
  6. Wanneer R2 het pakket ontvangt met het bestemmings-IPv4-adres 209.165.200.227, voert het een NAT-tabelopzoeking uit. Met behulp van de afbeelding uit de tabel vertaalt R2 het adres terug naar het interne lokale adres (192.168.11.10) en stuurt het pakket door naar PC2.
  7. PC1 op 192.168.10.10 en PC2 op 192.168.11.10 ontvangt de pakketten en zet het gesprek voort. De router voert stap 2 tot 5 uit voor elk pakket.

11.2.2.4. Dynamische NAT verifiëren

De uitvoer van de opdracht show ip nat translations getoond in het volgend voorbeeld toont de details van de twee voorgaande NAT-toewijzingen. De opdracht geeft alle statische vertalingen weer die zijn geconfigureerd en alle dynamische vertalingen die door verkeer zijn gemaakt.

R2# show ip nat translations
Pro Inside global	Inside local	Outside local	Outside global
--- 209.165.200.226     192.168.10.10	---             ---
--- 209.165.200.227     192.168.11.10	---             ---
R2# show ip nat translations verbose
Pro Inside global       Inside local    Outside local   Outside global
--- 209.165.200.226     192.168.10.10   ---             ---
  create 00:17:25, use 00:01:54 timeout:86400000, left 23:58:05, Map-Id(In): 1,
    flags: none, use_count: 0, entry-id: 32, lc_entries: 0
--- 209.165.200.227     192.168.11.10   ---             ---
  create 00:17:22, use 00:01:51 timeout:86400000, left 23:58:08, Map-Id(In): 1,
    flags: none, use_count: 0, entry-id: 34, lc_entries: 0 
R2#

Door het verbose trefwoord toe te voegen, wordt aanvullende informatie over elke vertaling weergegeven, inclusief hoe lang geleden het item is gemaakt en gebruikt.

Standaard verlopen vertalingen na 24 uur, tenzij de timers opnieuw zijn geconfigureerd met de ip nat translation timeout timeout-seconds globale configuratieopdracht.

Het is handig om de dynamische vermeldingen te wissen bij het testen van de NAT-configuratie. Om dynamische invoer te wissen voordat de time-out is verstreken, gebruikt u de opdracht clear ip nat translation privileged EXEC mode. Specifieke vermeldingen kunnen worden gewist om te voorkomen dat actieve sessies worden onderbroken. Gebruik de opdracht clear ip nat translation * privileged EXEC om alle vertalingen uit de NAT-tabel te wissen.
Onderstaande tabel geeft variabelen en trefwoordopties weer die kunnen worden gebruikt om te bepalen welke items worden gewist.

OpdrachtBeschrijving
clear ip nat translation *Wist alle dynamische vertalingen
vermeldingen voor de NAT-vertaaltabel
clear ip nat translation inside global-ip local-ip [outside local-ip global-ip]Wist een eenvoudige dynamische vertaling met en binnenvertaling of zowel binnen- als buitenvertaling
clear ip nat translation protocol inside global-ip global-port local-ip local port [outside local-ip local-port global-ip global-port]Wist een uitgebreide dynamische vertalingsinvoer

Opmerking: Alleen de dynamische vertalingen worden uit de tabel gewist. Statische vertalingen kunnen niet uit de vertaaltabel worden gewist.

In het volgend voorbeeld wordt de opdracht show ip nat statistics gebruikt om informatie weer te geven over het totale aantal actieve vertalingen, NAT-configuratieparameters, het aantal adressen in de pool en het aantal toegewezen adressen.

R2# show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 0 extended)
Peak translations: 6, occurred 00:27:07 ago Outside interfaces:
  Serial0/0/1 
Inside interfaces:
  Serial0/1/0 Hits: 24 Misses: 0
CEF Translated packets: 24, CEF Punted packets: 0 Expired translations: 4
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 pool NAT-POOL1 refcount 2 
  pool NAT-POOL1: netmask 255.255.255.224
    start 209.165.200.226 end 209.165.200.240
    type generic, total addresses 15, allocated 2 (13%), misses 0
Total doors: 0
Appl doors: 0
Normal doors: 0
Queued Packets: 0
R2#

De uitvoer laat zien dat er momenteel 2 dynamische NAT-vertalingen plaatsvinden. De vertalingen gebruiken de NAT-POOL1-adressen en momenteel zijn er slechts 2 van de adressen toegewezen. In de output staat ook dat 13% van de beschikbare adressen is toegewezen. Er zijn momenteel 2 in gebruik en 4 verlopen adressen voor een totaal van 6 van de mogelijke 16 adressen (daarom 6 / 16 = 12,5 [of 13%].

Bij het oplossen van problemen met NAT kan het ook nodig zijn om de actieve configuratiebestand voor NAT-, ACL-, interface- of poolopdrachtfouten. Bekijk deze zorgvuldig en corrigeer eventueel ontdekte fouten.

11.2.3. Port Address Translation (PAT) configureren

11.2.3.1. PAT configureren: Adresgroep

PAT (ook wel NAT-overladen genoemd) bewaart adressen in de interne globale adrespool door de router één intern globaal adres te laten gebruiken voor veel interne lokale adressen. Met andere woorden, een enkel openbaar IPv4-adres kan worden gebruikt voor honderden, zelfs duizenden interne privé-IPv4-adressen. Wanneer dit type vertaling is geconfigureerd, houdt de router voldoende informatie bij van protocollen op een hoger niveau, bijvoorbeeld TCP- of UDP-poortnummers, om het interne globale adres terug te vertalen naar het juiste interne lokale adres. Wanneer meerdere interne lokale adressen worden toegewezen aan één intern algemeen adres, maken de TCP- of UDP-poortnummers van elke interne host onderscheid tussen de lokale adressen.

Opmerking: Het totale aantal interne adressen dat naar één extern adres kan worden vertaald, kan theoretisch oplopen tot 65.536 per IPv4-adres. Het praktische aantal interne adressen dat aan een enkel IPv4-adres kan worden toegewezen, ligt echter rond de 4.000.

Er zijn twee manieren om PAT te configureren, afhankelijk van hoe de ISP openbare IPv4-adressen toewijst. In het eerste geval wijst de ISP meer dan één openbaar IPv4-adres toe aan de organisatie, en in het andere geval wijst het een enkel openbaar IPv4-adres toe dat de organisatie nodig heeft om verbinding te maken met de ISP.

Als een site meer dan één openbaar IPv4-adres heeft gekregen, kunnen deze adressen deel uitmaken van een pool die door PAT wordt gebruikt. Dit is vergelijkbaar met dynamische NAT, behalve dat er niet genoeg openbare adressen zijn voor een één-op-één toewijzing van binnen- naar buitenadressen. De kleine pool van adressen wordt gedeeld door een groter aantal apparaten.

Er zijn vijf stappen bij het configureren van dynamische PAT-vertalingen. De vijf stappen zijn identiek aan het configureren van dynamische NAT, behalve stap 3.

Stap 1. Definieer de pool van adressen die zal worden gebruikt voor vertaling met behulp van het ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length} commando.

Stap 2. Configureer een standaard ACL met behulp van de opdracht toegangslijst toegangslijst-nummer permit source [source-wildcard] om (vergunnings)adressen te identificeren die kunnen worden vertaald.

Stap 3. Bind de ACL aan de pool. Gebruik de ip nat inside source list access-list-number pool pool-name overload global configuration command om de ACL aan de pool te binden. Dit belangrijkste verschil tussen PAT en NAT is dat het overload-sleutelwoord bij deze opdracht wordt gebruikt.

Stap 4. Identificeer welke interfaces zich binnenin bevinden met behulp van de opdracht ip nat inside interface-configuratie.

Stap 5. Bepaal welke interfaces zich buiten bevinden met behulp van de opdracht ip nat outside interface configuration.

Het volgend voorbeeld configureert PAT op R2

PAT topologie
R2(config)# ip nat pool NAT-POOL2 209.165.200.226 209.165.200.240 netmask 255.255.255.224
R2(config)# access-list 1 permit 192.168.0.0 0.0.255.255
R2(config)# ip nat inside source list 1 pool NAT-POOL2 overload
R2(config)# interface Serial0/0/0
R2(config-if)# ip nat inside
R2(config-if)# exit
R2(config)# interface Serial0/1/0
R2(config-if)# ip nat outside
R2(config-if)#

De configuratie zorgt voor een overbelastingsvertaling voor de NAT-pool met de naam NAT-POOL2, die de adressen 209.165.200.226 tot 209.165.200.240 bevat. Hosts in het 192.168.0.0/16-netwerk zijn onderhevig aan vertaling. De S0/0/0-interface wordt geïdentificeerd als een interne interface en de S0/1/0-interface wordt geïdentificeerd als een externe interface.

11.2.3.2. PAT configureren: enkel adres

Volgende afbeelding toont de topologie van een PAT-implementatie voor een enkele openbare IPv4-adresvertaling.

PAT met een enkele adrestopologie

Alle hosts van netwerk 192.168.0.0/16 (overeenkomstig ACL 1) die verkeer via router R2 naar internet sturen, worden vertaald naar IPv4-adres 209.165.200.225 (IPv4-adres van interface S0/1/0). De verkeersstromen worden geïdentificeerd door poortnummers in de NAT-tabel omdat het trefwoord overbelasting is gebruikt.

Er zijn vier stappen bij het configureren van PAT met een enkel IPv4-adres. De configuratie is vergelijkbaar met dynamische PAT, behalve dat het niet nodig is om een ​​pool te maken omdat er maar één IP-adres wordt gebruikt. Alle interne adressen worden vertaald naar het enkele IPv4-adres bij het verlaten van de externe interface.

Stap 1. Definieer de pool van adressen die voor vertaling moet worden gebruikt met het ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length} commando.

Stap 2. Bind de ACL aan de pool. Gebruik de ip nat inside source list access-list-number interface type number overload globale configuratieopdracht om de ACL aan de interface te binden. Nogmaals, houd er rekening mee dat het overload-sleutelwoord vereist is.

Stap 3. Identificeer welke interfaces zich binnenin bevinden met behulp van de ip nat inside interface-configuratieopdracht.

Stap 4. Identificeer welke interfaces zich buiten bevinden met behulp van de ip nat outside interface-configuratieopdracht.

De configuratie van PAT met een enkel adres voor bovenstaande afbeelding wordt getoond in het volgend voorbeeld.

R2(config)# access-list 1 permit 192.168.0.0 0.0.255.255
R2(config)# ip nat inside source list 1 interface serial 0/1/0 overload
R2(config)# interface Serial0/0/0 
R2(config-if)# ip nat inside 
R2(config-if)# exit
R2(config)# interface Serial0/1/0 
R2(config-if)# ip nat outside 
R2(config-if)#

11.2.2.3. PAT analyseren

Het proces van NAT-overbelasting is hetzelfde, of er nu een pool van adressen wordt gebruikt of een enkel adres. Verdergaand met het vorige PAT-voorbeeld, waarbij een enkel openbaar IPv4-adres wordt gebruikt, wil PC1 communiceren met de webserver, Svr1. Tegelijkertijd wil een andere client, PC2, een soortgelijke sessie opzetten met de webserver Svr2. Zowel PC1 als PC2 zijn geconfigureerd met privé IPv4-adressen, waarbij R2 is ingeschakeld voor PAT.

Het proces van pc naar server wordt weergegeven in volgende afbeelding.

PAT-proces: pc’s naar servers
  1. Zowel PC1 als PC2 sturen pakketten naar respectievelijk Svr1 en Svr2. PC1 heeft het bron-IPv4-adres 192.168.10.10 en gebruikt TCP-bronpoort 1444. PC2 heeft het bron-IPv4-adres 192.168.10.11 en krijgt toevallig dezelfde bronpoort 1444 toegewezen.
  2. Het pakket van PC1 bereikt als eerste R2. Met behulp van PAT wijzigt R2 het bron-IPv4-adres in 209.165.200.225 (binnen het globale adres). Er zijn geen andere apparaten in de NAT-tabel die poort 1444 gebruiken, dus PAT behoudt hetzelfde poortnummer. Het pakket wordt vervolgens doorgestuurd naar Svr1 op 209.165.201.1.
  3. Het pakket van PC2 arriveert bij R2. PAT is geconfigureerd om een ​​enkel intern IPv4-adres te gebruiken voor alle vertalingen, 209.165.200.225. Net als bij het vertaalproces voor PC1 verandert PAT het IPv4-bronadres van PC2 in het interne globale adres 209.165.200.225. PC2 heeft echter hetzelfde bronpoortnummer als een huidige PAT-invoer, de vertaling voor PC1. PAT verhoogt het bronpoortnummer totdat het een unieke waarde in de tabel is. In dit geval ontvangt de invoer van de bronpoort in de NAT-tabel en het pakket voor PC2 1445.

Hoewel PC1 en PC2 hetzelfde vertaalde adres gebruiken, het interne globale adres 209.165.200.225 en hetzelfde bronpoortnummer 1444, maakt het gewijzigde poortnummer voor PC2 (1445) elk item in de NAT-tabel uniek. Dit zal duidelijk worden met de pakketten die van de servers naar de clients worden verzonden.

Het server-naar-pc-proces wordt weergegeven in de volgende afbeelding.

PAT-proces: servers naar pc’s
  1. In een typische client-server-uitwisseling reageren Svr1 en Svr2 op de verzoeken die respectievelijk van PC1 en PC2 worden ontvangen. De servers gebruiken de bronpoort van het ontvangen pakket als de bestemmingspoort en het bronadres als het bestemmingsadres voor het retourverkeer. De servers lijken te communiceren met dezelfde host op 209.165.200.225; dit is echter niet het geval.
  2. Terwijl de pakketten aankomen, lokaliseert R2 de unieke invoer in zijn NAT-tabel met behulp van het bestemmingsadres en de bestemmingspoort van elk pakket. In het geval van het pakket van Svr1 heeft het bestemmings-IPv4-adres van 209.165.200.225 meerdere vermeldingen, maar slechts één met de bestemmingspoort 1444. Met behulp van de vermelding in de tabel verandert R2 de bestemmings-IPv4 adres van het pakket naar 192.168.10.10, zonder wijziging van de bestemmingspoort. Het pakket wordt vervolgens doorgestuurd naar PC1.
  3. Wanneer het pakket van Svr2 arriveert, voert R2 een vergelijkbare vertaling uit. Het bestemmings-IPv4-adres van 209.165.200.225 bevindt zich, opnieuw met meerdere vermeldingen. Met behulp van de bestemmingspoort van 1445 kan R2 echter de vertaalinvoer op unieke wijze identificeren. Het bestemmings-IPv4-adres is gewijzigd in 192.168.10.11. In dit geval moet de bestemmingspoort ook worden gewijzigd naar de oorspronkelijke waarde van 1444, die is opgeslagen in de NAT-tabel. Het pakket wordt vervolgens doorgestuurd naar PC2.

11.2.3.4. PAT verifiëren

Dezelfde opdrachten die worden gebruikt om statische en dynamische NAT te verifiëren, worden gebruikt om PAT te verifiëren.

Neem bijvoorbeeld aan dat R2 is geconfigureerd om dynamische PAT te ondersteunen zoals geconfigureerd in een eerder voorbeeld. Wanneer de interne hosts router R2 verlaten naar internet, worden ze vertaald naar een IPv4-adres uit de PAT-pool met een uniek bronpoortnummer.

In het volgend voorbeeld communiceren twee interne hosts met externe webservers. De opdracht show ip nat translations toont de vertalingen van de twee interne hosts naar verschillende externe webservers.

R2# show ip nat translations
Pro Inside global         Inside local        Outside local	 Outside global
tcp 209.165.200.226:51839 192.168.10.10:51839 209.165.201.1:80
tcp 209.165.200.226:42558 192.168.11.10:42558 209.165.202.129:80 209.165.202.129:80
R2#

Merk op dat aan de twee interne hosts hetzelfde IPv4-adres is toegewezen, namelijk 209.165.200.226 (binnen het globale adres). Alleen de bronpoortnummers in de NAT-tabel onderscheiden de twee transacties.

Zoals getoond in het volgend voorbeeld, verifieert de opdracht show ip nat statistics het aantal en type actieve vertalingen, NAT-configuratieparameters, het aantal adressen in de pool en het aantal dat is toegewezen.

R2# show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 2 extended)
Peak translations: 2, occurred 00:00:05 ago Outside interfaces:
  Serial0/0/1 
Inside interfaces:
  Serial0/1/0 
Hits: 4 Misses: 0
CEF Translated packets: 4, CEF Punted packets: 0 Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 3] access-list 1 pool NAT-POOL2 refcount 2 pool NAT-POOL2: netmask 255.255.255.224
    start 209.165.200.226 end 209.165.200.240
    type generic, total addresses 15, allocated 1 (6%), misses 0
Total doors: 0
Appl doors: 0
Normal doors: 0
Queued Packets: 0
R2#

De uitvoer bevestigt dat er momenteel twee dynamische uitgebreide NAT-vertalingen plaatsvinden en dat de vertalingen het ene adres delen dat is toegewezen vanuit de NAT-POOL2-pool.

11.2.4. Port forwarding

11.2.4.1. Port Frowarding

Port forwarding is het doorsturen van verkeer dat is geadresseerd aan een specifieke netwerkpoort van het ene netwerkknooppunt naar het andere. Met deze techniek kan een externe gebruiker een poort op een privé IPv4-adres (binnen een LAN) van buitenaf bereiken via een NAT-router.

Doorgaans vereisen peer-to-peer programma’s en bewerkingen voor het delen van bestanden, zoals webserving en uitgaande FTP, dat routerpoorten worden doorgestuurd of geopend om deze toepassingen te laten werken, zoals weergegeven in de volgende afbeelding. Omdat NAT interne adressen verbergt, werkt peer-to-peer alleen van binnenuit waar NAT uitgaande verzoeken kan koppelen aan inkomende antwoorden.

TCP- en UDP-bestemmingspoorten

Het probleem is dat NAT verzoeken van buitenaf niet toestaat. Deze situatie kan worden opgelost met handmatige tussenkomst. Port forwarding kan worden geconfigureerd om specifieke poorten te identificeren die kunnen worden doorgestuurd naar interne hosts.

Bedenk dat internetsoftwaretoepassingen communiceren met gebruikerspoorten die voor die toepassingen open of beschikbaar moeten zijn. Verschillende applicaties gebruiken verschillende poorten. Dit maakt het voorspelbaar voor applicaties en routers om netwerkdiensten te identificeren. HTTP werkt bijvoorbeeld via de bekende poort 80. Wanneer iemand het http://cisco.com adres invoert, geeft de browser de website van Cisco Systems, Inc. weer. Merk op dat de gebruiker het HTTP-poortnummer voor het paginaverzoek niet hoeft op te geven, omdat de toepassing poort 80 aanneemt.

Als een ander poortnummer vereist is, kan dit worden toegevoegd aan de URL, gescheiden door een dubbele punt (:). Als de webserver bijvoorbeeld luistert op poort 8080, typt de gebruiker http://www.example.com:8080.

Port forwarding stelt gebruikers op internet in staat toegang te krijgen tot interne servers door het WAN-poortadres van de router en het overeenkomende externe poortnummer te gebruiken. De interne servers zijn doorgaans geconfigureerd met RFC 1918 private IPv4-adressen. Wanneer een verzoek via internet naar het IPv4-adres van de WAN-poort wordt verzonden, stuurt de router het verzoek door naar de juiste server op het LAN. Om veiligheidsredenen staan ​​breedbandrouters standaard niet toe dat externe netwerkverzoeken worden doorgestuurd naar een interne host.

De volgende afbeelding toont een eigenaar van een klein bedrijf die een verkooppuntserver (PoS) gebruikt om de verkoop en voorraden in de winkel bij te houden.

TCP- en UDP-bestemmingspoorten

De server is toegankelijk binnen de winkel, maar omdat deze een privé IPv4-adres heeft, is deze niet openbaar toegankelijk vanaf internet.
Door de lokale router in te schakelen voor port forwarding, heeft de eigenaar overal op internet toegang tot de PoS-server. Port forwarding op de router wordt geconfigureerd met behulp van het bestemmingspoortnummer en het privé IPv4-adres van de PoS-server. Om toegang te krijgen tot de server, zou de clientsoftware het openbare IPv4-adres van de router en de bestemmingspoort van de server gebruiken.

11.9.4.2. Draadloze router voorbeeld

Afbeelding 9-21 toont het configuratievenster Single Port Forwarding voor een draadloze router voor packet tracer. Port forwarding is standaard niet ingeschakeld op de router.

Doorsturen via één poort configureren

Port forwarding kan voor toepassingen worden ingeschakeld door het interne lokale adres op te geven waarnaar verzoeken moeten worden doorgestuurd. In de afbeelding worden HTTP-serviceverzoeken die de draadloze router binnenkomen, doorgestuurd naar de webserver met het interne lokale adres 192.168.1.254. Als het externe WAN IPv4-adres van de draadloze router 209.165.200.225 is, kan de externe gebruiker http://www.example.com invoeren en de draadloze router stuurt het HTTP-verzoek om naar de interne webserver op IPv4-adres 192.168.1.254, met het standaard poortnummer 80.

Er kan een andere poort dan de standaardpoort 80 worden opgegeven. De externe gebruiker moet echter het specifieke poortnummer weten dat hij moet gebruiken. Om een ​​andere poort op te geven, zou de waarde van de externe poort in het venster Single Port Forwarding worden gewijzigd.

De benadering die wordt gevolgd om port forwarding te configureren, is afhankelijk van het merk en model van de breedbandrouter in het netwerk. Er zijn echter enkele algemene stappen die moeten worden gevolgd. Als de instructies van de ISP, of de instructies die bij de router zijn geleverd, geen adequate begeleiding bieden, biedt de website http://www.portforward.com handleidingen voor verschillende breedbandrouters. U kunt de instructies volgen om poorten toe te voegen of te verwijderen zoals vereist om te voldoen aan de behoeften van alle toepassingen die u wilt toestaan ​​of weigeren.

11.2.4.3. Port Forwarding configureren met IOS

Het implementeren van port forwarding met IOS-opdrachten is vergelijkbaar met de opdrachten die worden gebruikt om statische NAT te configureren. Port forwarding is in wezen een statische NAT-vertaling met een gespecificeerd TCP- of UDP-poortnummer.

Om port forwarding te configureren, gebruikt u het ip nat inside source {static {tcp | udp local-ip local-port global-ip global-port} [extendable] globale configuratieopdracht.

De volgend beschrijft de opdrachtsyntaxis die wordt gebruikt voor het configureren van port forwarding.

ParameterBeschrijving
tcp of udpDit geeft aan of dit een tcp- of een udp-poortnummer is.
local-ipDit is het IPv4-adres dat is toegewezen aan de host op het interne netwerk, meestal uit de privéadresruimte van RFC 1918.
local-portDit stelt de lokale TCP/UDP-poort in binnen een bereik van 1 tot 65535. Dit is het poortnummer waarop de server luistert.
global-ipDit is het wereldwijd unieke IPv4-IP-adres van een interne host. Dit is het IP-adres dat externe clients zullen gebruiken om de interne host te bereiken.
global-portDit stelt de globale TCP/UDP-poort in op een bereik van 1 tot 65535. Dit is het poortnummer dat de externe client zal gebruiken om de interne server te bereiken.
extendableStandaard wordt de extendable optie automatisch toegepast. Het stelt de gebruiker in staat om verschillende ambigue statische vertalingen te configureren, waar ambigu

Het volgend voorbeeld demonstreert het configureren van port forwarding met behulp van IOS-opdrachten op router R2.

IOS Port Forwarding topologie
R2(config)# ip nat inside source static tcp 192.168.10.254 80 209.165.200.225 8080
R2(config)# interface Serial0/0/0
R2(config-if)# ip nat inside
R2(config-if)# exit
R2(config)# interface Serial0/1/0
R2(config-if)# ip nat outside
R2(config-if)#

In het voorbeeld is 192.168.10.254 het interne lokale IPv4-adres van de webserver die luistert op poort 80. Gebruikers hebben toegang tot deze interne webserver via het globale IPv4-adres 209.165.200.225, een wereldwijd uniek openbaar IPv4-adres. In dit geval is dit het adres van de seriële 0/1/0-interface van R2. De globale poort is geconfigureerd als 8080. Dit zal de bestemmingspoort zijn die wordt gebruikt, samen met het globale IPv4-adres van 209.165.200.225 om toegang te krijgen tot de interne webserver.

Let in de NAT-configuratie op de volgende opdrachtparameters:

  • local-ip = 192.168.10.254
  • local-port = 80
  • global-ip = 209.165.200.225
  • global-port = 8080

Wanneer een bekend poortnummer niet wordt gebruikt, moet de klant het poortnummer opgeven in de applicatie.

Net als andere typen NAT vereist port forwarding de configuratie van zowel de binnen- als de buiten NAT-interfaces.

Net als bij statische NAT, kan de opdracht show ip nat translations worden gebruikt om de port forwarding te verifiëren, zoals weergegeven in het volgend voorbeeld.

R2# show ip nat translations
Pro Inside global        Inside local       Outside local       Outside global
tcp 209.165.200.225:8080 192.168.10.254:80  209.165.200.254:460 209.165.200.254:46088
tcp 209.165.200.225:8080 192.168.10.254:80  ---                 ---
R2#

In de voorgaande uitvoer ontving R2 een pakket met de bestemming van het interne globale IPv4-adres van 209.165.200.225 en een TCP-bestemming van poort 8080. R2 voert een NAT-tabelzoekopdracht uit die overeenkomt met dat IP- en poortnummer. Wanneer het de invoer vindt, verandert het het pakket in bestemmings-IP 192.168.10.254 en bestemmingspoort 80. R2 stuurt het pakket vervolgens door naar de webserver. Voor retourpakketten van de webserver naar de client wordt dit proces omgekeerd.

11.2.5. NAT en IPv6 configureren

11.2.5.1 NAT voor IPv6?

Sinds het begin van de jaren negentig is de bezorgdheid over de uitputting van IPv4-adresruimte een prioriteit van de IETF. De combinatie van RFC 1918 privé IPv4-adressen en NAT heeft deze uitputting helpen vertragen.

Maar zelfs de hulp van deze oplossingen heeft de uitputting van IPv4-adressen niet gestopt. In januari 2011 heeft de Internet Assigned Numbers Authority (IANA) de laatste van haar IPv4-adressen toegewezen aan een regionaal internetregister (RIR). Er moet worden vermeld dat RIR’s mogelijk nog enkele IPv4-adresblokken beschikbaar hebben door bestaande adresblokken terug te winnen en te optimaliseren.

Een van de onbedoelde voordelen van NAT voor IPv4 is dat het het privénetwerk verbergt voor het openbare internet. NAT heeft het voordeel dat het een waargenomen beveiligingsniveau biedt door computers op het openbare internet de toegang tot interne hosts te ontzeggen. Het mag echter niet worden beschouwd als een vervanging voor een goede netwerkbeveiliging, zoals die wordt geboden door een firewall.

In RFC 5902 nam de Internet Architecture Board (IAB) het volgende citaat op met betrekking tot IPv6 NAT:

“Het wordt algemeen aangenomen dat een NAT-box één niveau van bescherming biedt, omdat externe hosts niet direct communicatie kunnen starten met hosts achter een NAT. Men moet NAT-boxen echter niet verwarren met firewalls. Zoals besproken [in] Paragraaf 2.2 in RFC4864, biedt de vertaalhandeling op zich geen veiligheid. De stateful filterfunctie kan hetzelfde niveau van bescherming bieden zonder dat een vertaalfunctie nodig is.”

IPv6, met een 128-bits adres, biedt 340 undeciljoen adressen. Adresruimte is dus geen probleem. IPv6 is ontwikkeld met de bedoeling NAT voor IPv4 met zijn vertaling tussen openbare en privé IPv4-adressen overbodig te maken. IPv6 implementeert echter wel een vorm van NAT die een privéadresruimte en NAT omvat. Ze worden echter anders geïmplementeerd dan voor IPv4.

11.2.5.2. IPv6 unieke lokale adressen

Unieke lokale IPv6-adressen (ULA) lijken op RFC 1918-privéadressen in IPv4, maar er zijn ook aanzienlijke verschillen. De bedoeling van ULA is om IPv6-adresruimte te bieden voor communicatie binnen een lokale site. ULA is niet bedoeld om extra IPv6-adresruimte te bieden en is ook niet bedoeld om een ​​beveiligingsniveau te bieden. De volgende afbeelding toont de structuur van een IPv6 ULA-pakket.

Unieke lokale adresstructuur IPv6

Deze eerste 64 bits bestaande uit Prefix, L (lokale vlag), Global ID en Subnet ID vormen samen het ULA-prefix. Deze resterende 64 bits identificeren de interface-ID, of in IPv4-termen, het hostgedeelte van het adres.

ULA-adressen hebben het voorvoegsel FC00::/7, wat resulteert in een eerste hextetbereik van FC00 tot FDFF. De volgende 1 bit is de lokale vlag (L), die meestal is ingesteld op 1, wat aangeeft dat het voorvoegsel lokaal is toegewezen. De volgende 40 bits is een globale ID gevolgd door een 16-bits subnet-ID. Bedenk dat een organisatie de Subnet-ID gebruikt om verschillende interne netwerken te creëren.

Unieke lokale adressen worden gedefinieerd in RFC 4193. ULA’s zijn ook bekend als lokale IPv6-adressen (niet te verwarren met IPv6 link-local-adressen) en hebben verschillende kenmerken, waaronder deze:

  • Hiermee kunnen sites worden gecombineerd of privé met elkaar worden verbonden, zonder adresconflicten te veroorzaken of de interfaces die deze voorvoegsels gebruiken opnieuw te nummeren.
  • Onafhankelijk van een ISP en kan worden gebruikt voor communicatie binnen een site zonder internetverbinding.
  • Niet routeerbaar via internet, maar als het per ongeluk wordt gelekt door routering of DNS, is er geen conflict met andere adressen.

ULA is niet zo eenvoudig als RFC 1918-adressen. In tegenstelling tot privé IPv4-adressen, is het niet de bedoeling van de IETF geweest om een ​​vorm van NAT te gebruiken om te vertalen tussen unieke lokale adressen en IPv6 globale unicast-adressen.

De implementatie en het mogelijke gebruik van unieke lokale IPv6-adressen worden nog onderzocht door de internetgemeenschap. De IETF overweegt bijvoorbeeld de mogelijkheid toe te staan ​​dat de 40-bits globale ID centraal wordt toegewezen bij gebruik van het FC00::/8 ULA-voorvoegsel, en de 40-bits globale ID die willekeurig wordt gegenereerd, of misschien handmatig wordt toegewezen, bij gebruik van de ULA voorvoegsel FD00::/8. De rest van het adres blijft hetzelfde. We gebruiken nog steeds 16 bits voor de subnet-ID en 64 bits voor de interface-ID.

Opmerking: De oorspronkelijke IPv6-specificatie wees adresruimte toe voor site-local-adressen, gedefinieerd in RFC 3513. Site-local-adressen zijn door de IETF in RFC 3879 afgeschaft omdat de term “site” enigszins dubbelzinnig was. Site-lokale adressen hadden het prefixbereik van FEC0::/10 en zijn mogelijk nog te vinden in sommige oudere IPv6-documentatie.

11.2.5.3. NAT voor IPv6

NAT voor IPv6 wordt in een heel andere context gebruikt dan NAT voor IPv4. NAT voor IPv6 wordt niet gebruikt als een vorm van privé IPv6-adres naar globale IPv6-adresomzetting. NAT voor IPv6 wordt gebruikt om IPv6- en IPv4-netwerken met elkaar te verbinden.

Idealiter zou IPv6 zoveel mogelijk native moeten worden uitgevoerd. Dit betekent dat IPv6-apparaten met elkaar communiceren via IPv6-netwerken. Om de overgang van IPv4 naar IPv6 te ondersteunen, heeft de IETF echter verschillende overgangstechnieken ontwikkeld voor verschillende IPv4-naar-IPv6-scenario’s, waaronder:

  • Dual-stack – op een apparaatinterface worden zowel IPv4- als IPv6-protocollen uitgevoerd, waardoor deze met beide netwerken kan communiceren.
  • Tunneling – het proces van het inkapselen van een IPv6-pakket in een IPv4-pakket. Hierdoor kan het IPv6-pakket worden verzonden via een IPv4-only netwerk.
  • Vertaling – NAT implementeren om IPv6 naar IPv4-adressen te vertalen.

NAT voor IPv6 moet niet worden gebruikt als een langetermijnstrategie, maar als een tijdelijk mechanisme om te helpen bij de migratie van IPv4 naar IPv6.

In de loop der jaren zijn er verschillende soorten NAT voor IPv6-oplossingen ontwikkeld. Een vroege versie heette Network Address Translation-Protocol Translation (NAT-PT). NAT-PT is echter door IETF afgekeurd ten gunste van NAT64. De volgende afbeelding illustreert hoe NAT64 kan vertalen tussen IPv6- en IPv4-netwerken.

NAT64-scenario

NAT64 valt buiten het bestek van dit curriculum.

11.3. NAT problemen oplossen

11.3.1. NAT problemen oplossen

11.3.1.1 De show ip nat opdrachten

Als er IPv4-verbindingsproblemen zijn in een NAT-omgeving, kan het moeilijk zijn om de oorzaak van het probleem te achterhalen.

Bekijk de topologie in figuur 9-26. In dit voorbeeld, in dit voorbeeld, is R2 ingeschakeld voor dynamische PAT met behulp van de pool van adressen van het bereik 209.165.200.226 tot 209.165.200.240.

Problemen met NAT oplossen

Volg deze stappen om te controleren of NAT werkt zoals verwacht:

Stap 1. Wis NAT . om problemen op te lossen en het NAT-proces te observeren statistieken en NAT-vertalingen met behulp van de opdrachten clear ip nat statistics en clear ip nat translations.

Stap 2. Test NAT en controleer vervolgens of er correcte vertalingen in de vertaaltabel staan ​​met de opdracht show ip nat translations.

Stap 3. Controleer NAT-statistieken met behulp van de opdracht show ip nat-statistics.

Stap 4. Observeer het NAT-proces met de opdracht debug ip nat.

Stap 5. Bekijk in detail wat er met het pakket gebeurt en controleer of routers de juiste routeringsinformatie hebben om het pakket te verplaatsen.

Het volgend voorbeeld wist de NAT-statistieken en vertalingen op de NAT-router, R2.

R2# clear ip nat statistics
R2# clear ip nat translation *
R2#

Vervolgens wordt NAT geverifieerd en telnetten de interne host (192.168.10.10) naar de externe server (209.165.201.1) om een NAT-item te genereren. Het volgend voorbeeld controleert de NAT-statistieken en de NAT-vertaaltabel om te zien of de host een NAT-vermelding heeft gegenereerd.

R2# show ip nat statistics
Total active translations: 1 (0 static, 1 dynamic; 1 extended)
Peak translations: 1, occurred 00:00:09 ago
Outside interfaces:
  Serial0/0/1 
Inside interfaces:
  Serial0/0/0 
Hits: 31 Misses: 0
CEF Translated packets: 31, CEF Punted packets: 0 Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 5] access-list 1 pool NAT-POOL2 refcount 1 pool NAT-POOL2: netmask 255.255.255.224
    start 209.165.200.226 end 209.165.200.240
    type generic, total addresses 15, allocated 1 (6%), misses 0
<output omitted>
R2# show ip nat translations
Pro Inside global         Inside local        Outside local    Outside global
tcp 209.165.200.226:19005 192.168.10.10:19005 209.165.201.1:23 209.165.201.1:23
R2#

De voorgaande uitvoer verifieert dat NAT operationeel is. Als de uitvoer onverwachte resultaten gaf, controleer dan de NAT-configuratie met behulp van de opdracht show running-config | include nat. Als de NAT-pool-, bindings- en interface-opdrachten er nauwkeurig uitzien, controleert u of de ACL waarnaar in de NAT-opdracht wordt verwezen, alle benodigde netwerken toestaat. Het volgend voorbeeld verifieert de momenteel geconfigureerde ACL’s op R2.

R2# show access-lists
Standard IP access list 1
10 permit 192.168.0.0, wildcard bits 0.0.255.255 (29 matches)
R2#

Merk op dat in dit voorbeeld alleen 192.168.0.0/16 adressen in aanmerking komen om te worden vertaald. R2 vertaalt geen pakketten van het interne netwerk die bestemd zijn voor internet met bronadressen die niet expliciet zijn toegestaan ​​door ACL 1.

11.3.1.2. De debug ip nat-opdracht

In een eenvoudige netwerkomgeving is het handig om NAT-statistieken te bewaken met de opdracht show ip nat statistics. De opdracht show ip nat statistics geeft informatie weer over het totale aantal actieve vertalingen, de NAT-configuratieparameters, het aantal adressen in de pool en het aantal dat is toegewezen.
Echter, in een complexere NAT-omgeving, met meerdere vertalingen plaatsvindt, is het mogelijk dat deze opdracht het probleem niet duidelijk identificeert. Het kan nodig zijn om debug-opdrachten op de router uit te voeren.

Gebruik de opdracht debug ip nat om de werking van de NAT-functie te verifiëren door informatie weer te geven over elk pakket dat de router vertaalt.

De opdracht debug ip nat detailed genereert een beschrijving van elk pakket dat in aanmerking komt voor vertaling. Deze opdracht geeft ook informatie over bepaalde fouten of uitzonderingscondities, zoals het niet toewijzen van een globaal adres. Merk op dat de debug ip nat gedetailleerde opdracht meer overhead genereert dan de debug ip nat opdracht. Het kan echter de details bieden die nodig kunnen zijn om het NAT-probleem op te lossen.

Opmerking: Ongeacht welk debug-commando wordt gebruikt, schakel debugging altijd uit als u klaar bent.

Het volgende voorbeeld toont de uitvoer van de opdracht debug ip nat.

R2# debug ip nat
IP NAT debugging is on
R2#
*Feb 15 20:01:311.670: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2817]
*Feb 15 20:01:311.682: NAT*: s=209.165.201.1, d=209.165.200.226- >192.168.10.10
  [4180]
*Feb 15 20:01:311.698: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2818]
*Feb 15 20:01:311.702: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2819]
*Feb 15 20:01:311.710: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2820]
*Feb 15 20:01:311.710: NAT*: s=209.165.201.1, d=209.165.200.226->192.168.10.10
  [4181]
*Feb 15 20:01:311.722: NAT*: s=209.165.201.1, d=209.165.200.226- >192.168.10.10
  [4182]
*Feb 15 20:01:311.726: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2821]
*Feb 15 20:01:311.730: NAT*: s=209.165.201.1, d=209.165.200.226->192.168.10.10
  [4183]
*Feb 15 20:01:311.734: NAT*: s=192.168.10.10->209.165.200.226, d=209.165.201.1
  [2822]
*Feb 15 20:01:311.734: NAT*: s=209.165.201.1, d=209.165.200.226->192.168.10.10
  [4184]
<Output omitted>

De uitvoer laat zien dat de interne host (192.168.10.10) verkeer naar de externe host (209.165.201.1) heeft geïnitieerd en dat het bronadres is vertaald naar adres 209.165.200.226.

Let bij het decoderen van de debug-uitvoer op wat de volgende symbolen en waarden aangeven:

  • * – De asterisk () naast NAT geeft aan dat de vertaling plaatsvindt in het snel omgeschakelde pad. Het eerste pakket in een gesprek is altijd procesgeschakeld, wat langzamer is. De overige pakketten gaan via het snel omgeschakelde pad als er een cache-item bestaat.
  • s= – Het s=-symbool verwijst naar het bron-IPv4-adres.
  • a.b.c.d—>w.x.y.z – Deze waarde geeft aan dat het bronadres a.b.c.d wordt vertaald (->) naar w.x.y.z.
  • d= – Het d=-symbool verwijst naar het IPv4-adres van de bestemming.
  • [xxxx] – De waarde tussen haakjes is het IPv4-identificatienummer. Deze informatie kan nuttig zijn voor het opsporen van fouten omdat het correlatie mogelijk maakt met andere pakketsporen van protocolanalysatoren.

11.3.1.3. Scenario voor NAT-probleemoplossing

In Afbeelding 9-27 kunnen hosts van de 192.168.0.0/16 LAN’s (PC1 en PC2) geen servers (Svr1 en Svr2) op het externe netwerk pingen.

Scenario NAT-probleemoplossing

Om te beginnen met het oplossen van het probleem, gebruikt u de show ip nat translations om te zien of er momenteel vertalingen in de NAT-tabel staan. Het volgende voorbeeld verifieert de NAT-vertalingen

R2# show ip nat translations
R2#

Uit de uitvoer blijkt dat er geen vertalingen in de tabel staan. De opdracht show ip nat statistics wordt gebruikt om te bepalen of eventuele vertalingen hebben plaatsgevonden. Het identificeert ook de interfaces waartussen de vertaling zou moeten plaatsvinden. In het volgend staan de NAT-tellers op 0, waarmee wordt geverifieerd dat er geen translatie heeft plaatsgevonden.

R2# show ip nat statistics
Total active translations: 0 (0 static, 0 dynamic; 0 extended)
Peak translations: 0 
Outside interfaces:
  Serial0/0/0 
Inside interfaces:
  Serial0/1/0 
Hits: 0 Misses: 0
<Output omitted> 
R2(config)#

Als u de uitvoer vergelijkt met de topologie die wordt getoond in de vorige afbeelding, ziet u dat de routerinterfaces onjuist zijn gedefinieerd als NAT binnen of NAT buiten. De onjuiste configuratie kan ook worden geverifieerd met de opdracht show running-config.

De huidige NAT-interfaceconfiguratie moet uit de interfaces worden verwijderd voordat de juiste configuratie wordt toegepast. In het volgende voorbeeld worden de NAT-interfaceconfiguraties verwijderd en de juiste configuratie toegepast.

R2(config)# interface serial 0/0/0 
R2(config-if)# no ip nat outside 
R2(config-if)# ip nat inside 
R2(config-if)# exit

R2(config)# interface serial 0/0/1 
R2(config-if)# no ip nat inside 
R2(config-if)# ip nat outside 
R2(config-if)#

Neem aan dat een testping van PC1 naar Svr1 nog steeds mislukt. Ook geeft de opdracht show ip nat translations geen vertalingen weer, en de opdracht show ip nat statistics geeft geen wijzigingen weer. Bepaal of de ACL waarnaar de NAT-opdracht verwijst, alle benodigde netwerken toestaat. Het volgend voorbeeld verifieert de NAT ACL.

R2# show access-lists 
Standard IP access list 1
10 permit 192.168.0.0, wildcard bits 0.0.0.255
R2#

Het onderzoeken van de uitvoer geeft aan dat een onjuiste wildcard mask gebruikt is in de ACL die de adressen definieert die moeten worden vertaald. De wildcard mask (0.0.0.255) staat alleen het 192.168.0.0/24-subnet toe. Om het subnet 192.168.0.0/16 toe te staan, moet de wildcard maks 0.0.255.255 zijn. Het volgende voorbeeldverwijdert de ACL en configureert deze vervolgens opnieuw met de juiste wilcard mask.

R2(config)# no access-list 1
R2(config)# access-list 1 permit 192.168.0.0 0.0.255.255
R2(config)#

Nadat de configuraties zijn gecorrigeerd, wordt een nieuwe ping gegenereerd van PC1 naar Svr1, en deze keer slaagt de ping. Controleer vervolgens of de NAT-vertaling plaatsvindt. Het volgende voorbeeld geeft de uitvoer weer van de show ip nat-statistics en show ip nat translations opdrachten.

R2# show ip nat statistics
Total active translations: 1 (0 static, 1 dynamic; 1 extended)
Peak translations: 1, occurred 00:37:58 ago
Outside interfaces:
  Serial0/0/1
Inside interfaces:
  Serial0/1/0 
Hits: 20 Misses: 0
CEF Translated packets: 20, CEF Punted packets: 0 Expired translations: 1
Dynamic mappings:
-- Inside Source
[Id: 5] access-list 1 pool NAT-POOL2 refcount 1 pool NAT-POOL2: netmask 255.255.255.224
    start 209.165.200.226 end 209.165.200.240
    type generic, total addresses 15, allocated 1 (6%), misses 0
<Output omitted>
R2# show ip nat translations
Pro  Inside global      Inside local     Outside local    Outside global
icmp 209.165.200.226:38 192.168.10.10:38 209.165.201.1:38 209.165.201.1:38
R2#

De uitvoer bevestigt dat NAT nu operationeel is en dat externe connectiviteit tot stand is gebracht.

11.4. Samenvatting

In dit hoofdstuk is beschreven hoe NAT wordt gebruikt om de uitputting van IPv4-adresruimte te helpen verminderen. NAT voor IPv4 stelt netwerkbeheerders in staat om privé-adresruimte van RFC 1918 te gebruiken en tegelijkertijd connectiviteit met internet te bieden, met behulp van een enkel of beperkt aantal openbare adressen.

NAT bespaart openbare adresruimte en bespaart aanzienlijke administratieve overhead bij het beheren van toevoegingen, verplaatsingen en wijzigingen. NAT en PAT kunnen worden geïmplementeerd om openbare adresruimte te besparen zonder de ISP-verbinding te beïnvloeden. NAT heeft echter nadelen in termen van negatieve effecten op apparaatprestaties, mobiliteit en end-to-end-connectiviteit en moet worden beschouwd als een implementatie op korte termijn voor adresuitputting, waarbij de langetermijnoplossing IPv6 is.

In dit hoofdstuk wordt NAT voor IPv4 besproken, inclusief de volgende onderwerpen:

  • NAT-kenmerken, terminologie en algemene bewerkingen
  • De verschillende soorten NAT, waaronder statische NAT, dynamische NAT en PAT
  • De voor- en nadelen van NAT
  • De configuratie, verificatie en analyse van statische NAT, dynamische NAT en PAT
  • Hoe port forwarding kan worden gebruikt om vanaf internet toegang te krijgen tot een intern apparaat
  • Waarom NAT beschikbaar is, maar niet geïntegreerd in IPv6-netwerken
  • Problemen met NAT oplossen met behulp van show– en debug-opdrachten