Netwerkadres vertaling



Nog nooit in de geschiedenis van de mensheid is er zoveel informatie over geweest Netwerkadresvertaling verkennen in 2023: een uitgebreide gids zoals er nu is dankzij internet. Echter, deze toegang tot alles wat met Netwerkadresvertaling verkennen in 2023: een uitgebreide gids is niet altijd gemakkelijk. Verzadiging, slechte bruikbaarheid en de moeilijkheid om onderscheid te maken tussen juiste en onjuiste informatie over Netwerkadresvertaling verkennen in 2023: een uitgebreide gids zijn vaak moeilijk te overwinnen. Dat is wat ons motiveerde om een ​​betrouwbare, veilige en effectieve site te maken.

Het was ons duidelijk dat om ons doel te bereiken, het niet voldoende was om over correcte en geverifieerde informatie te beschikken Netwerkadresvertaling verkennen in 2023: een uitgebreide gids . Alles waarover we hadden verzameld Netwerkadresvertaling verkennen in 2023: een uitgebreide gids moest ook op een duidelijke, leesbare manier worden gepresenteerd, in een structuur die de gebruikerservaring faciliteerde, met een schoon en efficiënt ontwerp, en die prioriteit gaf aan laadsnelheid. We hebben er alle vertrouwen in dat we dit hebben bereikt, hoewel we altijd bezig zijn om kleine verbeteringen aan te brengen. Als je hebt gevonden wat je nuttig vond Netwerkadresvertaling verkennen in 2023: een uitgebreide gids en je hebt je op je gemak gevoeld, we zullen heel blij zijn als je terugkomt scientiaen.com wanneer je wilt en nodig hebt.

Netwerkadresvertaling tussen een particulier netwerk en internet

Netwerkadres vertaling (NAT) is een methode om een ​​IP in kaart te brengen adresruimte in een andere door te wijzigen netwerk adres informatie in de IP-header van pakketten terwijl ze onderweg zijn door een verkeer routeringsapparaat. De techniek werd oorspronkelijk gebruikt om de noodzaak te omzeilen om aan elke host een nieuw adres toe te wijzen wanneer een netwerk werd verplaatst of wanneer de stroomopwaartse Internet service providers werd vervangen, maar kon de adresruimte van het netwerk niet routeren. Het is een populair en essentieel hulpmiddel geworden om de wereldwijde adresruimte te behouden in het licht van IPv4-adres uitputting. Eén internetrouteerbaar IP-adres van een NAT-gateway kan worden gebruikt voor een geheel privénetwerk.

Aangezien netwerkadresvertaling de IP-adresinformatie in pakketten wijzigt, kunnen NAT-implementaties variëren in hun specifieke gedrag in verschillende adresseringsgevallen en hun effect op netwerkverkeer. De specifieke kenmerken van NAT-gedrag worden niet vaak gedocumenteerd door leveranciers van apparatuur met NAT-implementaties.

Basis NAT

Het eenvoudigste type NAT biedt een één-op-één vertaling van IP-adressen. RFC 2663 verwijst naar dit type NAT als basis NAT; het wordt ook wel a genoemd één-op-één NAT. Bij dit type NAT alleen de IP-adressen, IP-header checksum, en alle controlesommen van een hoger niveau die het IP-adres bevatten, worden gewijzigd. Basic NAT kan worden gebruikt om twee IP-netwerken met elkaar te verbinden die incompatibele adressering hebben.

Een-op-veel NAT

Toewijzing van netwerkadressen

De meeste netwerkadresvertalers wijzen meerdere privéhosts toe aan één publiekelijk zichtbaar IP-adres.

Hier is een typische configuratie:

  1. Een lokaal netwerk maakt gebruik van een van de aangewezen privaat IP-adressubnetten (RFC 1918).
  2. Het netwerk heeft een router met zowel een privé als een openbaar adres. Het privé-adres wordt door de router gebruikt voor communicatie met andere apparaten in het particuliere lokale netwerk. Het openbare adres (meestal toegewezen door een Internet service providers) wordt door de router gebruikt voor communicatie met de rest van het internet.
  3. Terwijl verkeer van het netwerk naar internet gaat, vertaalt de router het bronadres in elk pakket van een privéadres naar het eigen openbare adres van de router. De router houdt basisgegevens bij over elke actieve verbinding (met name het bestemmingsadres en port). Wanneer de router binnenkomend verkeer van internet ontvangt, gebruikt het de verbindingsgegevens die het tijdens de uitgaande fase heeft opgeslagen om te bepalen naar welk privéadres (indien aanwezig) het antwoord moet worden doorgestuurd.

Alle IP-pakketten hebben een bron-IP-adres en een bestemmings-IP-adres. Gewoonlijk wordt het bronadres van pakketten die van het particuliere netwerk naar het openbare netwerk gaan gewijzigd, terwijl het bestemmingsadres van pakketten die van het openbare netwerk terug naar het particuliere netwerk gaan, wordt gewijzigd. Om dubbelzinnigheid in de manier waarop antwoorden worden vertaald te voorkomen, zijn verdere wijzigingen aan de pakketten vereist. Het overgrote deel van het internetverkeer gebruikt Transmission Control Protocol (TCP) of User Datagram Protocol (UDP). Voor deze protocollen is de poortnummers worden gewijzigd zodat de combinatie van het IP-adres (binnen de IP-header) en poortnummer (binnen de Koptekst transportlaag) op het geretourneerde pakket kan ondubbelzinnig worden toegewezen aan de overeenkomstige particuliere netwerkbestemming. RFC 2663 gebruikt de term netwerkadres en poortvertaling (NAPT) voor dit type NAT. Andere namen zijn onder meer: poort adres vertaling (PAT), IP-maskering, NAT-overbelasting en veel-op-een NAT. Dit is het meest voorkomende type NAT en is synoniem geworden met de term "NAT" die algemeen wordt gebruikt.

Deze methode maakt communicatie via de router alleen mogelijk wanneer het gesprek afkomstig is van het particuliere netwerk, aangezien de initiële oorspronkelijke verzending de vereiste informatie in de vertaaltabellen vastlegt. Aldus een web browser binnen het particuliere netwerk zouden kunnen bladeren door websites die zich buiten het netwerk bevinden, terwijl webbrowsers buiten het netwerk niet in staat zouden zijn om door een website te bladeren die binnen het netwerk wordt gehost. Protocollen die niet op TCP en UDP zijn gebaseerd, vereisen andere vertaaltechnieken.

Een bijkomend voordeel van één-op-veel-NAT is dat het de kosten vermindert IPv4-adres uitputting door volledige netwerken met internet te laten verbinden via één openbaar IP-adres.

Methoden van vertaling

Netwerkadres- en poortvertaling kan op verschillende manieren worden geïmplementeerd. Sommige toepassingen die IP-adresinformatie gebruiken, moeten mogelijk het externe adres van een netwerkadresvertaler bepalen. Dit is het adres dat zijn communicatiegenoten in het externe netwerk detecteren. Verder kan het nodig zijn om het gebruikte type mapping te onderzoeken en te categoriseren, bijvoorbeeld wanneer het gewenst is om een ​​direct communicatiepad op te zetten tussen twee clients die zich beide achter afzonderlijke NAT-gateways bevinden.

Voor dit doel specificeerde RFC 3489 een protocol genaamd Eenvoudige doorgang van UDP over NAT's (STUNNEN) in 2003. Het classificeerde NAT-implementaties als full-cone NAT, (adres) NAT met beperkte conus, poortbeperkte kegel NAT or symmetrische NAT, en stelde een methodologie voor om een ​​apparaat dienovereenkomstig te testen. Deze procedures zijn sindsdien echter uit de standaardstatus gehaald, omdat de methoden niet geschikt zijn om veel apparaten correct te beoordelen. RFC 5389 gestandaardiseerde nieuwe methoden in 2008 en het acroniem STUNNEN vertegenwoordigt nu de nieuwe titel van de specificatie: Session Traversal-hulpprogramma's voor NAT.

NAT-implementatieclassificaties
Full-cone NAT, ook gekend als één-op-één NAT
  • Zodra een intern adres (iAddr:iPort) is toegewezen aan een extern adres (eAddr:ePort), worden alle pakketten van iAddr:iPort verzonden via eAddr:ePort.
  • Elke externe host kan pakketten naar iAddr:iPort sturen door pakketten naar eAddr:ePort te sturen.
Full Cone NAT.svg
(Adres)-restricted-cone NAT
  • Zodra een intern adres (iAddr:iPort) is toegewezen aan een extern adres (eAddr:ePort), worden alle pakketten van iAddr:iPort verzonden via eAddr:ePort.
  • Een externe host (hAddr:alle) kan alleen pakketten naar iAddr:iPort sturen door pakketten naar eAddr:ePort te sturen als iAddr:iPort eerder een pakket naar hAddr: heeft gestuurd:elke. "Any" betekent dat het poortnummer er niet toe doet.
Beperkte kegel NAT.svg
Poortbeperkte conus NAT Net als een adresbeperkte cone NAT, maar de beperking omvat ook poortnummers.
  • Zodra een intern adres (iAddr:iPort) is toegewezen aan een extern adres (eAddr:ePort), worden alle pakketten van iAddr:iPort verzonden via eAddr:ePort.
  • Een externe host (hAddr:hPort) kan alleen pakketten naar iAddr:iPort sturen door pakketten naar eAddr:ePort te sturen als iAddr:iPort eerder een pakket naar hAddr:hPort heeft gestuurd.
Poortbeperkte kegel NAT.svg
Symmetrische NAT
  • De combinatie van één intern IP-adres plus een bestemmings-IP-adres en poort wordt toegewezen aan één uniek extern bron-IP-adres en poort; als dezelfde interne host een pakket verzendt, zelfs met hetzelfde bronadres en dezelfde poort maar naar een andere bestemming, wordt een andere afbeelding gebruikt.
  • Alleen een externe host die een pakket van een interne host ontvangt, kan een pakket terugsturen.
Symmetrische NAT.svg

Veel NAT-implementaties combineren deze typen, dus het is beter om te verwijzen naar specifiek individueel NAT-gedrag in plaats van de Cone/Symmetric-terminologie te gebruiken. RFC 4787 probeert de verwarring te verminderen door gestandaardiseerde terminologie te introduceren voor geobserveerd gedrag. Voor het eerste opsommingsteken in elke rij van de bovenstaande tabel zou de RFC Full-Cone, Restricted-Cone en Port-Restricted Cone NAT's karakteriseren als hebbende een Eindpuntonafhankelijke toewijzing, terwijl het een symmetrische NAT zou karakteriseren als een Adres- en poortafhankelijke toewijzing. Voor het tweede opsommingsteken in elke rij van de bovenstaande tabel zou RFC 4787 ook Full-Cone NAT bestempelen als een Eindpuntonafhankelijk filteren, Restricted-Cone NAT met een Adresafhankelijke filtering, Port-Restricted Cone NAT met een Adres- en poortafhankelijke filtering, en Symmetric NAT als een Adresafhankelijke filtering or Adres- en poortafhankelijke filtering. Andere classificaties van NAT-gedrag die in de RFC worden genoemd, zijn onder meer of ze poorten behouden, wanneer en hoe mappings worden vernieuwd, of externe mappings kunnen worden gebruikt door interne hosts (dwz de haarspeldbochten gedrag), en het niveau van determinisme dat NAT's vertonen bij het toepassen van al deze regels. In het bijzonder combineren de meeste NAT's symmetrische NAT voor uitgaande verbindingen met statisch poort in kaart brengen, waar inkomende pakketten die zijn geadresseerd aan het externe adres en poort worden omgeleid naar een specifiek intern adres en poort.

Type NAT en NAT-traversal, rol van poortbehoud voor TCP

De NAT-traversal het probleem doet zich voor wanneer collega's achter verschillende NAT's proberen te communiceren. Een manier om dit probleem op te lossen is door te gebruiken port forwarding. Een andere manier is om verschillende NAT-traversal-technieken te gebruiken. De meest populaire techniek voor TCP NAT traversal is TCP-perforatie.

TCP-perforatie vereist dat de NAT de poort behoud ontwerp voor TCP. Voor een bepaalde uitgaande TCP-communicatie worden aan beide zijden van de NAT dezelfde poortnummers gebruikt. NAT-poortbehoud voor uitgaande TCP-verbindingen is cruciaal voor TCP NAT-traversal, omdat onder TCP één poort slechts voor één communicatie tegelijk kan worden gebruikt, dus programma's binden verschillende TCP-sockets aan kortstondige poorten voor elke TCP-communicatie, waardoor NAT-poortvoorspelling onmogelijk wordt voor TCP.

Aan de andere kant hebben NAT's voor UDP geen poortbehoud nodig. Inderdaad, meerdere UDP-communicaties (elk met een aparte eindpunt) kunnen voorkomen op dezelfde bronpoort, en applicaties gebruiken meestal dezelfde UDP-socket om pakketten naar verschillende hosts te sturen. Dit maakt poortvoorspelling eenvoudig, aangezien het voor elk pakket dezelfde bronpoort is.

Bovendien zorgt poortbehoud in NAT voor TCP ervoor dat P2P-protocollen minder complexiteit en minder latentie bieden, omdat er geen derde partij (zoals STUN) nodig is om de NAT-poort te ontdekken, aangezien de toepassing zelf de NAT-poort al kent.

Als twee interne hosts echter proberen te communiceren met dezelfde externe host met hetzelfde poortnummer, kan de NAT proberen een ander extern IP-adres te gebruiken voor de tweede verbinding of moet het poortbehoud achterwege blijven en moet de poort opnieuw worden toegewezen.: 9 

Vanaf 2006, ongeveer 70% van de klanten in P2P netwerken maakten gebruik van een vorm van NAT.

Implementatie

Tweerichtingscommunicatie tot stand brengen

In bidirectionele NAT kan de sessie zowel binnen als buiten de domeinen tot stand worden gebracht.

Elk TCP- en UDP-pakket bevat een bronpoortnummer en een bestemmingspoortnummer. Elk van die pakketten is ingekapseld in een IP-pakket, waarvan IP-header bevat een bron-IP-adres en een bestemmings-IP-adres. Het drievoudige IP-adres/protocol/poortnummer definieert een associatie met een netwerkaansluiting.

Voor openbaar toegankelijke diensten zoals web- en mailservers is het poortnummer belangrijk. Poort 80 maakt bijvoorbeeld verbinding via een socket met de webserver software en poort 25 naar die van een mailserver SMTP demon. Het IP-adres van een openbare server is ook belangrijk, vergelijkbaar in globale uniciteit met een postadres of telefoonnummer. Zowel het IP-adres als het poortnummer moeten correct bekend zijn bij alle hosts die met succes willen communiceren.

Private IP-adressen zoals beschreven in RFC 1918 zijn alleen bruikbaar op private netwerken die niet direct verbonden zijn met internet. Poorten zijn communicatie-eindpunten die uniek zijn voor die host, dus een verbinding via het NAT-apparaat wordt onderhouden door de gecombineerde toewijzing van poort en IP-adres. Een privéadres aan de binnenkant van de NAT wordt toegewezen aan een extern openbaar adres. Port Address Translation (PAT) lost conflicten op die ontstaan ​​wanneer meerdere hosts hetzelfde bronpoortnummer gebruiken om tegelijkertijd verschillende externe verbindingen tot stand te brengen.

Telefoonnummer uitbreiding analogie

Een NAT-apparaat is vergelijkbaar met een telefoonsysteem op kantoor met één openbaar telefoonnummer en meerdere extensies. Uitgaande telefoontjes vanuit kantoor lijken allemaal van hetzelfde telefoonnummer te komen. Een inkomende oproep die geen toestelnummer specificeert, kan echter niet automatisch worden doorverbonden naar een persoon binnen het kantoor. In dit scenario is het kantoor een privé-LAN, is het hoofdtelefoonnummer het openbare IP-adres en zijn de individuele extensies unieke poortnummers.

Vertaalproces

Met NAT bevat alle communicatie die naar externe hosts wordt verzonden in feite de extern IP-adres en poortinformatie van het NAT-apparaat in plaats van interne host-IP-adressen of poortnummers. NAT vertaalt alleen IP-adressen en poorten van zijn interne hosts, waardoor het ware eindpunt van een interne host op een particulier netwerk wordt verborgen.

Wanneer een computer op het particuliere (interne) netwerk een IP-pakket naar het externe netwerk stuurt, vervangt het NAT-apparaat het interne bron-IP-adres in de pakketkop door het externe IP-adres van het NAT-apparaat. PAT kan dan de verbinding een poortnummer toewijzen uit een pool van beschikbare poorten, door dit poortnummer in te voegen in het bronpoortveld. Het pakket wordt vervolgens doorgestuurd naar het externe netwerk. Het NAT-apparaat maakt vervolgens een invoer in een vertaaltabel die het interne IP-adres, de originele bronpoort en de vertaalde bronpoort bevat. Daaropvolgende pakketten van hetzelfde interne bron-IP-adres en hetzelfde poortnummer worden vertaald naar hetzelfde externe bron-IP-adres en hetzelfde poortnummer. De computer die een pakket ontvangt dat NAT heeft ondergaan, brengt een verbinding tot stand met de poort en het IP-adres gespecificeerd in het gewijzigde pakket, zich niet bewust van het feit dat het opgegeven adres wordt vertaald.

Bij ontvangst van een pakket van het externe netwerk doorzoekt het NAT-apparaat de vertaaltabel op basis van de bestemmingspoort in de pakketkop. Als er een overeenkomst wordt gevonden, worden het bestemmings-IP-adres en poortnummer vervangen door de waarden in de tabel en wordt het pakket doorgestuurd naar het interne netwerk. Als het bestemmingspoortnummer van het inkomende pakket niet in de vertaaltabel wordt gevonden, wordt het pakket verwijderd of afgewezen omdat het PAT-apparaat niet weet waar het naartoe moet worden gestuurd.

Zichtbaarheid van de werking

NAT-werking is doorgaans transparant voor zowel de interne als externe hosts. Het NAT-apparaat kan functioneren als de standaardgateway voor de interne host, die doorgaans op de hoogte is van het echte IP-adres en de TCP- of UDP-poort van de externe host. De externe host is echter alleen op de hoogte van het openbare IP-adres voor het NAT-apparaat en de specifieke poort die wordt gebruikt om namens een specifieke interne host te communiceren.

Toepassingen

Routing
Netwerkadresvertaling kan worden gebruikt om IP-adresoverlapping te verminderen. Adresoverlapping treedt op wanneer hosts in verschillende netwerken met dezelfde IP-adresruimte dezelfde bestemmingshost proberen te bereiken. Dit is meestal een verkeerde configuratie en kan het gevolg zijn van de samenvoeging van twee netwerken of subnetten, vooral bij gebruik van RFC 1918 privénetwerk aanspreken. De bestemmingshost ervaart verkeer dat schijnbaar afkomstig is van hetzelfde netwerk, en tussenliggende routers kunnen niet bepalen waar antwoordverkeer naartoe moet worden gestuurd. De oplossing is hernummering om overlapping te elimineren of netwerkadresvertaling.
Load balancing
In client server toepassingen, load balancers clientverzoeken doorsturen naar een set servercomputers om de werklast van elke server te beheren. Netwerkadresvertaling kan worden gebruikt om een ​​representatief IP-adres van het servercluster toe te wijzen aan specifieke hosts die het verzoek verwerken.

Gerelateerde technieken

IEEE Omgekeerde adres- en poortvertaling (RAPT of RAT) maakt het mogelijk voor een host wiens real IP-adres verandert van tijd tot tijd om als server bereikbaar te blijven via een vast thuis-IP-adres. CiscoDe RAPT-implementatie is PAT- of NAT-overbelasting en koppelt meerdere privé-IP-adressen aan één openbaar IP-adres. Meerdere adressen kunnen worden toegewezen aan een enkel adres omdat elk privéadres wordt gevolgd door een poortnummer. PAT gebruikt unieke bronpoortnummers op het interne globale IP-adres om onderscheid te maken tussen vertalingen. PAT probeert de oorspronkelijke bronpoort te behouden. Als deze bronpoort al in gebruik is, wijst PAT het eerste beschikbare poortnummer toe vanaf het begin van de juiste poortgroep 0–511, 512–1023 of 1024–65535. Als er geen poorten meer beschikbaar zijn en er meer dan één extern IP-adres is geconfigureerd, gaat PAT naar het volgende IP-adres om te proberen de oorspronkelijke bronpoort opnieuw toe te wijzen. Dit proces gaat door totdat er geen beschikbare poorten en externe IP-adressen meer zijn.

In kaart brengen van adres en poort is een voorstel van Cisco dat combineert Adres plus poort vertaling met tunneling van de IPv4-pakketten via de interne provider van een ISP IPv6 netwerk. Het is in feite een (bijna) staatloze een alternatief voor carrier-grade NAT en DS Lite dat duwt de IPv4-adres/port vertaalfunctie (en het onderhoud van de NAT-status) volledig in het bestaande apparatuur voor klantlocaties NAT-implementatie. Zo vermijd je de NAT444 en statefulness-problemen van carrier-grade NAT, en biedt tegelijkertijd een overgangsmechanisme voor de implementatie van native IPv6 met zeer weinig extra complexiteit.

Problemen en beperkingen

Hosts achter NAT-compatibele routers hebben dat niet end-to-end connectiviteit en kan niet deelnemen aan sommige internetprotocollen. Services waarvoor de initiatie van vereist is TCP verbindingen van het externe netwerk, of die stateless protocollen gebruiken, zoals die met UDP, kan worden verstoord. Tenzij de NAT-router specifieke inspanningen levert om dergelijke protocollen te ondersteunen, kunnen inkomende pakketten hun bestemming niet bereiken. Sommige protocollen zijn geschikt voor één instantie van NAT tussen deelnemende hosts ("passive mode" FTP, bijvoorbeeld), soms met de hulp van een gateway op toepassingsniveau (Zie § Toepassingen die worden beïnvloed door NAT), maar mislukken wanneer beide systemen door NAT van het internet zijn gescheiden. Het gebruik van NAT compliceert ook tunnelprotocollen zoals IPsec omdat NAT waarden in de headers wijzigt die interfereren met de integriteitscontroles die worden uitgevoerd door IPsec en andere tunnelprotocollen.

End-to-end-connectiviteit is een kernprincipe van het internet geweest, bijvoorbeeld ondersteund door de Internet Architectuur Board. Huidige internetarchitectuurdocumenten stellen vast dat NAT een schending is van de end-to-end principe, maar dat NAT een geldige rol speelt bij zorgvuldig ontwerp. Er is aanzienlijk meer bezorgdheid over het gebruik van IPv6 NAT, en veel IPv6-architecten geloven dat IPv6 bedoeld was om de behoefte aan NAT weg te nemen.

Een implementatie die alleen poorten bijhoudt, kan snel uitgeput raken door interne applicaties die meerdere gelijktijdige verbindingen gebruiken, zoals een HTTP verzoek om een ​​webpagina met veel ingesloten objecten. Dit probleem kan worden verholpen door naast de poort ook het bestemmings-IP-adres te volgen, waardoor een enkele lokale poort wordt gedeeld met veel externe hosts. Deze extra tracking vergroot de complexiteit van de implementatie en verhoogt de computerresources op het vertaalapparaat.

Omdat de interne adressen allemaal vermomd zijn achter één openbaar toegankelijk adres, is het voor externe hosts onmogelijk om direct een verbinding met een bepaalde interne host tot stand te brengen. Toepassingen zoals VOIP, videovergaderen, en andere peer-to-peer-applicaties moeten gebruiken NAT-traversal technieken om te functioneren.

Fragmentatie en checksums

Pure NAT, die alleen op IP werkt, kan al dan niet protocollen correct ontleden met payloads die informatie over IP bevatten, zoals ICMP. Dit hangt ervan af of de payload wordt geïnterpreteerd door een host op de binnen or buiten van de vertaling. Basisprotocollen als TCP en UDP kan niet goed functioneren tenzij NAT actie onderneemt buiten de netwerklaag.

IP-pakketten hebben een controlesom in elke pakketkop, die alleen voor de kop een foutdetectie biedt. IP-datagrammen kunnen gefragmenteerd raken en het is noodzakelijk voor een NAT om deze fragmenten opnieuw samen te stellen om een ​​correcte herberekening van checksums op een hoger niveau mogelijk te maken en om correct te kunnen volgen welke pakketten bij welke verbinding horen.

TCP en UDP hebben een checksum die alle gegevens dekt die ze bevatten, evenals de TCP- of UDP-header, plus een pseudo-header dat de bron- en bestemmings-IP-adressen bevat van het pakket dat de TCP- of UDP-header draagt. Om een ​​oorspronkelijke NAT succesvol door TCP of UDP te laten gaan, moet het de TCP- of UDP-headercontrolesom opnieuw berekenen op basis van de vertaalde IP-adressen, niet de originele, en die controlesom in de TCP- of UDP-header van het eerste pakket van de gefragmenteerde set plaatsen van pakketten.

Als alternatief kan de oorspronkelijke host optreden pad MTU Ontdekking om de pakketgrootte te bepalen die zonder fragmentatie kan worden verzonden en stel vervolgens de niet fragmenteren (DF) bit in het juiste pakketkopveld. Dit is slechts een eenrichtingsoplossing, omdat de reagerende host pakketten van elke grootte kan verzenden, die gefragmenteerd kunnen zijn voordat ze de NAT bereiken.

Variante voorwaarden

DTA

Destination Network Address Translation (DNAT) is een techniek om op transparante wijze de bestemming te wijzigen IP-adres van een gerouteerd pakket en het uitvoeren van de inverse functie voor eventuele antwoorden. Elk router gelegen tussen twee eindpunten kan deze transformatie van het pakket uitvoeren.

DNAT wordt vaak gebruikt om een ​​dienst die zich in een particulier netwerk bevindt op een openbaar toegankelijk IP-adres te publiceren. Dit gebruik van DNAT wordt ook wel genoemd port forwardingof DMZ bij gebruik op een geheel server, dat wordt blootgesteld aan het WAN en analoog wordt aan een niet-verdedigd leger gedemilitariseerde zone (DMZ).

SNAT

De betekenis van de term SNAT verschilt per leverancier:

  • bron NAT is een veel voorkomende uitbreiding en is de tegenhanger van bestemming NAT (DTA). Dit wordt gebruikt om één-op-veel NAT te beschrijven; NAT voor uitgaande verbindingen met openbare diensten.
  • statelijke NAT wordt gebruikt door Cisco Systems
  • statische NAT wordt gebruikt door WatchGuard
  • veilige NAT wordt gebruikt door F5 Networks en door Microsoft (met betrekking tot de ISA-server)

Secure Network Address Translation (SNAT) maakt deel uit van Microsoft's Internetbeveiliging en versnellingsserver en is een uitbreiding op de ingebouwde NAT-driver Microsoft Windows-server. Het biedt het volgen en filteren van verbindingen voor de extra netwerkverbindingen die nodig zijn voor de FTP, ICMP, H.323 en PPTP protocollen en de mogelijkheid om een ​​transparante HTTP te configureren proxyserver.

Dynamische netwerkadresvertaling

Hoe dynamische NAT werkt.

Dynamische NAT is, net als statische NAT, niet gebruikelijk in kleinere netwerken, maar wordt aangetroffen in grotere bedrijven met complexe netwerken. Waar statische NAT een één-op-één interne naar openbare statische IP-adrestoewijzing biedt, gebruikt dynamische NAT een groep van openbare IP-adressen.

NAT-haarspeldbochten

NAT-haarspeldbochten, ook gekend als NAT-loopback or NAT-reflectie, is een functie in veel consumentenrouters waar een automaat op staat LAN kan toegang krijgen tot een andere machine op het LAN via het externe IP-adres van de LAN/router (met port forwarding ingesteld op de router om verzoeken naar de juiste machine op het LAN te sturen). Dit begrip is officieel beschreven in 2008, RFC 5128.

Hieronder wordt een voorbeeldnetwerk beschreven:

  • Publiekelijk adres: 203.0.113.1. Dit is het adres van de WAN interface op de router.
  • Intern adres van router: 192.168.1.1
  • Adres van de server: 192.168.1.2
  • Adres van een lokale computer: 192.168.1.100

Als er een pakket wordt verzonden naar 203.0.113.1 door een computer op 192.168.1.100, wordt het pakket normaal gesproken doorgestuurd naar de standaard gateway (de router) Een router met de NAT loopback-functie detecteert dat 203.0.113.1 is het adres van zijn WAN-interface en behandelt het pakket alsof het van die interface komt. Het bepaalt de bestemming voor dat pakket, op basis van DNAT-regels (port forwarding) voor de bestemming. Als de gegevens naar poort 80 zijn verzonden en er een DNAT-regel bestaat voor poort 80 waarnaar wordt verwezen 192.168.1.2, dan ontvangt de host op dat adres het pakket.

Als er geen toepasselijke DNAT-regel beschikbaar is, laat de router het pakket vallen. Een ICMP-bestemming onbereikbaar antwoord kan worden verzonden. Als er DNAT-regels aanwezig waren, is adresvertaling nog steeds van kracht; de router herschrijft nog steeds het bron-IP-adres in het pakket. De lokale computer (192.168.1.100) verzendt het pakket als afkomstig van 192.168.1.100, maar de server (192.168.1.2) ontvangt het als afkomstig van 203.0.113.1. Wanneer de server antwoordt, is het proces identiek aan een externe afzender. Zo is tweerichtingscommunicatie tussen hosts binnen het LAN-netwerk via het openbare IP-adres mogelijk.

NAT-IPv6

Netwerkadresvertaling wordt niet vaak gebruikt in IPv6 omdat een van de ontwerpdoelen van IPv6 is om end-to-end netwerkconnectiviteit te herstellen. Door de grote adresruimte van IPv6 hoeft u geen adressen te bewaren en kan elk apparaat een uniek wereldwijd routeerbaar adres krijgen. Gebruik van unieke lokale adressen in combinatie met vertaling van netwerkvoorvoegsels kan resultaten bereiken die vergelijkbaar zijn met NAT.

De grote adresseringsruimte van IPv6 kan nog steeds worden overwonnen, afhankelijk van de werkelijke prefixlengte die door de koerier wordt opgegeven. Het is niet ongebruikelijk om een ​​/64-voorvoegsel te krijgen - het kleinste aanbevolen subnet - voor een heel thuisnetwerk, waarbij verschillende technieken nodig zijn om het bereik handmatig onder te verdelen zodat alle apparaten bereikbaar blijven. Zelfs daadwerkelijke IPv6-naar-IPv6 NAT, NAT66, kan soms nuttig blijken: de APNIC-blog schetst een geval waarin de auteur slechts één adres (/128) kreeg.

Toepassingen die worden beïnvloed door NAT

sommige applicatielaag protocollen, zoals File Transfer Protocol (FTP) en Session Initiation Protocol (SIP), stuur expliciete netwerkadressen binnen hun toepassingsgegevens. Zo maakt FTP in actieve modus gebruik van aparte verbindingen voor het stuurverkeer (commando's) en voor het dataverkeer (bestandsinhoud). Bij het aanvragen van een bestandsoverdracht identificeert de host die het verzoek doet de corresponderende gegevensverbinding aan de hand van zijn netwerklaag en transport laag adressen. Als de host die het verzoek doet zich achter een eenvoudige NAT-firewall bevindt, maakt de vertaling van het IP-adres of het TCP-poortnummer de door de server ontvangen informatie ongeldig. SIP controleert gewoonlijk Voice over IP belt en heeft hetzelfde probleem. SIP en de bijbehorende Sessie Beschrijving Protocol kan meerdere poorten gebruiken om een ​​verbinding tot stand te brengen en spraakstreams via te verzenden Real-time transportprotocol. IP-adressen en poortnummers zijn gecodeerd in de payload-gegevens en moeten bekend zijn voordat NAT's worden doorkruist. Zonder speciale technieken, zoals STUNNEN, is NAT-gedrag onvoorspelbaar en kan de communicatie mislukken. Gateway voor applicatielaag (ALG) software of hardware kan deze problemen verhelpen. Een ALG-softwaremodule die op een NAT-firewallapparaat draait, werkt alle payloadgegevens bij die ongeldig zijn gemaakt door adresvertaling. ALG's moeten het protocol op een hogere laag begrijpen dat ze moeten repareren, en dus vereist elk protocol met dit probleem een ​​afzonderlijke ALG. Op veel Linux-systemen worden er bijvoorbeeld kernelmodules genoemd verbindingstrackers die dienen om ALG's te implementeren. ALG kan echter niet werken als de protocolgegevens versleuteld zijn.

Een andere mogelijke oplossing voor dit probleem is om te gebruiken NAT-traversal technieken met behulp van protocollen zoals STUNNEN or Interactieve connectiviteitsvestiging (ICE), of propriëtaire benaderingen in a sessie grenscontroleur. NAT-traversal is mogelijk in zowel TCP- als UDP-gebaseerde applicaties, maar de op UDP gebaseerde techniek is eenvoudiger, wordt beter begrepen en is beter compatibel met verouderde NAT's.[citaat nodig] In beide gevallen moet het protocol op hoog niveau worden ontworpen met NAT-traversal in het achterhoofd, en het werkt niet betrouwbaar tussen symmetrische NAT's of andere slecht gedragende oude NAT's.

Andere mogelijkheden zijn Internet Gateway-apparaatprotocol, NAT-poorttoewijzingsprotocol (NAT-PMP), of Protocol voor havencontrole (PCP), maar deze vereisen dat het NAT-apparaat dat protocol implementeert.

De meeste client-serverprotocollen (FTP is de belangrijkste uitzondering), stuur echter geen contactgegevens van laag 3 en vereist geen speciale behandeling door NAT's. In feite is het vermijden van NAT-complicaties praktisch een vereiste bij het ontwerpen van nieuwe protocollen op een hogere laag vandaag.

NAT's kunnen ook problemen veroorzaken waar IPsec codering wordt toegepast en in gevallen waarin meerdere apparaten zoals SIP-telefoons bevinden zich achter een NAT. Telefoons die hun signalering versleutelen met IPsec, kapselen de poortinformatie in een versleuteld pakket in, wat betekent dat NAT-apparaten geen toegang hebben tot de poort en deze niet kunnen vertalen. In deze gevallen keren de NAT-apparaten terug naar eenvoudige NAT-bewerkingen. Dit betekent dat al het verkeer dat terugkeert naar de NAT wordt toegewezen aan één client, waardoor de service naar meer dan één client achter de NAT uitvalt. Er zijn een aantal oplossingen voor dit probleem: een daarvan is om te gebruiken TLS, die actief is bij laag 4 en maskeert het poortnummer niet; een andere is om de IPsec erin in te kapselen UDP – de laatste is de door gekozen oplossing TISPAN om veilige NAT-traversal te bereiken, of een NAT met "IPsec Passthru" steun; een andere is om a te gebruiken sessie grenscontroleur om de NAT te helpen doorkruisen.

Interactieve connectiviteitsvestiging is een NAT traversal-techniek die niet afhankelijk is van ALG-ondersteuning.

De kwetsbaarheid van het DNS-protocol aangekondigd door Dan Kaminsky op 8 juli 2008, wordt indirect beïnvloed door NAT-poorttoewijzing. Vermijden DNS cache poisoning, is het zeer wenselijk om UDP-bronpoortnummers van uitgaande DNS-verzoeken van een DNS-server achter een firewall die NAT implementeert niet te vertalen. De aanbevolen oplossing voor de DNS-kwetsbaarheid is om alle caching DNS-servers gerandomiseerde UDP-bronpoorten te laten gebruiken. Als de NAT-functie de UDP-bronpoorten de-randomiseert, wordt de DNS-server kwetsbaar.

Voorbeelden van NAT-software

Zie ook

Opmerkingen

  1. ^ Met de meeste NAT-apparaten kan de netwerkbeheerder tegenwoordig statische vertaaltabelvermeldingen configureren voor verbindingen van het externe netwerk naar het interne gemaskerde netwerk. Deze functie wordt vaak aangeduid als statische NAT. Het kan op twee manieren worden geïmplementeerd: port forwarding die verkeer doorstuurt van een specifieke externe poort naar een interne host op een opgegeven poort, en aanwijzing van a DMZ-host die al het verkeer dat op de externe interface wordt ontvangen (op elk poortnummer) doorgeeft aan een intern IP-adres met behoud van de bestemmingspoort. Beide typen zijn mogelijk beschikbaar op hetzelfde NAT-apparaat.
  2. ^ De meer gebruikelijke opstelling is dat computers die end-to-end-connectiviteit nodig hebben, worden geleverd met een routeerbaar IP-adres, terwijl andere computers geen services bieden aan externe gebruikers achter NAT met slechts een paar IP-adressen die worden gebruikt om internettoegang mogelijk te maken.
  3. ^ De poortnummers zijn 16-bits gehele getallen. Het totale aantal interne adressen dat vertaald kan worden naar één extern adres zou theoretisch kunnen oplopen tot 65,536 per IP-adres. Realistisch gezien ligt het aantal poorten dat aan een enkel IP-adres kan worden toegewezen rond de 4000.
  4. ^ Tenzij er een expliciete route is ingesteld in de computer routing tabellen.
  5. ^ Dit probleem kan worden voorkomen door te gebruiken SFTP in plaats van ftp

Referenties

  1. ^ Handboek netwerkprotocollen (2 red.). Javvin Technologies Inc. 2005. p. 27. ISBN 9780974094526. Ontvangen 2014-09-16.
  2. ^ a b c d e f g h François Audet; Cullen Jennings (januari 2007). Gedragsvereisten voor Network Address Translation (NAT) voor Unicast UDP. IETF. twee:10.17487/RFC4787. RFC 4787.
  3. ^ a b Vleugel, Dan (2010-07-01). "Netwerkadresvertaling: uitbreiding van de internetadresruimte". IEEE internetcomputers. 14 (4): 66-70. twee:10.1109/MIC.2010.96. ISSN 1089-7801. S2CID 31082389.
  4. ^ "Karakterisering en meting van TCP-traversal via NAT's en firewalls". December 2006.
  5. ^ "De schaduwen verlichten: opportunistische netwerk- en webmetingen". December 2006. Gearchiveerd van het origineel op 2010-07-24.
  6. ^ "De Audio over IP Instant Expert Guide" (PDF). Stropdas. Januari 2010. Gearchiveerd van het origineel (PDF) on-2011 10-08. Ontvangen 2011-08-19.
  7. ^ "NAT gebruiken in overlappende netwerken". Augustus 2005.
  8. ^ "VPN's met overlappende subnetten probleemscenario". 2017 sept.
  9. ^ Srisuresh, Pyda; Gan, Der-Hwa (augustus 1998). "Load Sharing met behulp van IP Network Address Translation". twee:10.17487/RFC2391. {{cite journal}}: Cite-tijdschrift vereist |journal= (hulp)
  10. ^ "Wat is Layer 4 Load Balancing?". Juni 2020.
  11. ^ "Wat is taakverdeling?". november 2018.
  12. ^ "Servertaakverdeling configureren met dynamische NAT". Juni 2018.
  13. ^ Singh, R.; Tay, YC; Teo, WT; Yeow, ZW (1999). "RAT: een snelle (en vuile?) Push voor mobiliteitsondersteuning" . Procedure WMCSA'99. Tweede IEEE-workshop over mobiele computersystemen en -toepassingen. blz. 32-40. CiteerSeerX 10.1.1.40.461. twee:10.1109/MCSA.1999.749275. ISBN 978-0-7695-0025-6. S2CID 7657883.
  14. ^ Bush, R.; Meyer, D. (2002). Enkele richtlijnen en filosofie voor internetarchitectuur. IETF. twee:10.17487/RFC3439. RFC 3439.
  15. ^ Velde, G. Van de; Hain, T.; Droms, R.; Timmerman, B.; Klein, E. (2007). Lokale netwerkbeveiliging voor IPv6. IETF. twee:10.17487/RFC4864. RFC 4864.
  16. ^ "Verbeterde IP-veerkracht met behulp van Cisco Stateful NAT". Cisco.
  17. ^ "Gebruik NAT voor openbare toegang tot servers met privé-IP-adressen op het privénetwerk (voorbeeld WatchGuard-configuratie)" (PDF). www.watchguard.com.
  18. ^ "K7820: Overzicht van SNAT-functies". Vraag F5. Augustus 28, 2007. Ontvangen Februari 24, 2019.
  19. ^ "Verbeterde IP-veerkracht met behulp van Cisco Stateful NAT". Cisco.
  20. ^ "Gebruik NAT voor openbare toegang tot servers met privé-IP-adressen op het privénetwerk (voorbeeld WatchGuard-configuratie)" (PDF). www.watchguard.com.
  21. ^ "K7820: Overzicht van SNAT-functies". Vraag F5. Augustus 28, 2007. Ontvangen Februari 24, 2019.
  22. ^ "Dynamische NAT". 26 januari 2016. Ontvangen 2022-04-19.
  23. ^ "Dynamische NAT". Ontvangen 2022-04-19.
  24. ^ "Wat is NAT Reflection/NAT Loopback/NAT Hairpinning?". NYC-netwerkers. 2014-11-09. Ontvangen 2017-04-27.
  25. ^ "NAT Loopback-routers - OpenSim" (MediaWiki). Simulator openen. 2013-10-21. Ontvangen 2014-02-21.
  26. ^ Iljitsch van Beijnum (2008-07-23). 'Na hevig verzet komt NAT misschien toch naar IPv6'. Ars Technica. Ontvangen 2014-04-24.
  27. ^ Dupont, Kasper (18 augustus 2015). "subnet - IPv6-subnetting a /64 - wat gaat kapot en hoe kan ik dit omzeilen?". Serverfout. Ontvangen 2023-04-20.
  28. ^ Cilloni, Marco (2018/02/01). "NAT66: het goede, het slechte, het lelijke". APNIC-blog. Ontvangen 2023-04-20.
  29. ^ D. Vleugel, Ed; Cheshire, S.; Boucadair, M.; Penno, R.; Selkirk, P. (2013). Poortcontroleprotocol (PCP). IETF. twee:10.17487/RFC6887. RFC 6887.
  30. ^ Messmer, Ellen (2008-07-08). 'Groot DNS-lek kan internet verstoren'. Network World, Gearchiveerd vanuit het origineel on-2009 02-13. Ontvangen Juni 14 2021.

Externe links