I datanettverk sies det at en ruter gjør NAT- oversettelse (NAT) når den samsvarer med IP-adresser med andre IP-adresser. Spesielt er et vanlig tilfelle å tillate maskiner med private adresser som er en del av et intranett og som hverken er unike eller internettomfattelige, kan kommunisere med resten av Internett ved hjelp av ormer utenfor offentlige, unike og rutbare eksterne adresser.
Dermed er det mulig å matche en enkelt ekstern offentlig adresse som er synlig på Internett med alle adressene til et privat nettverk , for å kompensere for utmattelsen av IPv4-adresser .
NAT-funksjonen i en integrert tjeneruter (ISR) oversetter en intern kilde-IP-adresse til en global IP-adresse.
Denne prosessen er mye brukt av Internett-boksen (eller modem ruter ) av leverandører for å skjule personlige datamaskiner bak en enkelt offentlig identifikasjon. Den brukes også på samme måte i virtuelle private nettverk .
En campus består av 1000 verter (datamaskiner, skrivere osv.), Fordelt på 4 delnett. Uten bruk av NAT, ville en slik campus kreve tildeling av nesten 1000 unike og rutede IPv4-adresser .
Ved å koble en slik campus til Internett via en ruter som implementerer NAT, er det mulig å endre den interne adresseringsplanen og bruke ikke-unike (brukes andre steder i verden) og ikke-rutbare adresser på Internett (se RFC 1918). . Vi snakker også om offentlige adresser (unike i verden) og private (unike bare i det private nettverket ). Et av målene med NAT er å gjøre private adresser usynlige fra Internett.
Bare noen få hundre adresser vil bli tildelt alle de eksterne NAT-adressene, vel vitende om at skrivere (og bestemt annet utstyr) ikke trenger å kommunisere med utsiden permanent (derfor trenger ikke adressene deres å være, trenger ikke å bli oversatt) .
NAT reduserer derfor antall unike IP-adresser som brukes.
Korrespondansene mellom de private adressene (interne) og offentlige (eksterne) lagres i en tabell som par ( intern adresse , ekstern adresse ). Når en ramme sendes fra en intern adresse til utsiden, passerer den gjennom NAT-ruteren som i toppteksten til TCP / IP- pakken erstatter avsenderens adresse med den eksterne IP-adressen. Omvendt erstatning gjøres når en ramme som tilsvarer denne forbindelsen, må rutes til den interne adressen. Vi kan også gjenbruke en oppføring i NAT-korrespondansetabellen hvis ingen trafikk med disse adressene har krysset ruteren i en viss tid (konfigurerbar).
Intern IP | Ekstern IP | Varighet ( er ) | Gjenbrukbar? |
---|---|---|---|
10.101.10.20 | 193.48.100.174 | 1200 | Nei |
10.100.54.251 | 193.48.101.8 | 3.601 | Ja |
10.100.0.89 | 193.48.100.46 | 0 | Nei |
Her er for eksempel en forenklet NAT-tabell. Det antas at en oppføring kan gjøres gjeldende hvis oversettelsen ikke har blitt brukt i mer enn 3600 sekunder.
Den første linjen indikerer at den interne maskinen med IP-adressen 10.101.10.20 er oversatt til 193.48.100.174 når den snakker med omverdenen. Hun har ikke sendt en pakke på 1200 sekunder, men grensen er 3600, denne tabelloppføringen er fortsatt tildelt henne. Den andre maskinen har vært inaktiv i mer enn 3600 sekunder, den kan være av, en annen maskin kan ta over denne oppføringen (ved å endre den første kolonnen siden den ikke vil ha samme interne IP). Endelig er den siste maskinen for tiden i samtale med utsiden, varighet- feltet er 0.
De fleste brannmurer og rutere implementerer NAT slik at flere maskiner kan dele en offentlig IP-adresse.
Interne adresser kan velges blant adressene som er definert i RFC 1918 . Dermed kan flere nettsteder ha samme interne adressering og kommunisere med hverandre ved hjelp av denne mekanismen. Siden de interne adressene blir gjenbrukt, lagrer vi offentlige IP-adresser, hvis belegg i IPv4 når metning.
Vi kan ha færre adresser i settet med eksterne adresser enn det vi har som IP-adresser inne i nettverket, hvis vi får på plass en mekanisme for å gjenopprette ubrukt adresser etter en viss tid (dette kalles en leieavtale). Mer presist, hvis en oppføring i oversettelsestabellen ikke brukes i en viss tid (kan konfigureres i nettverkets DHCP- server ), kan denne oppføringen brukes på nytt: en annen maskin med en intern adresse vil hente den eksterne adressen.
NAT anses noen ganger å være til fordel for et sikkerhetsmessig synspunkt fordi interne adresser er skjult. Sikkerheten til enhetene bak en NAT er imidlertid ikke større enn det en stateful brannmur kan gi.
Selv om noen applikasjoner takler uten problemer, er NAT ikke gjennomsiktig for nettverksapplikasjoner og gir ekstra kompleksitet til driften av applikasjoner ( RFC 2993, RFC 3027):
Et stort problem oppstår når en kommunikasjonsprotokoll overfører IP-adressen til kildeverten i en pakke eller portnumre. Siden denne adressen ikke er gyldig etter at den har gått gjennom NAT-ruteren, kan den ikke brukes av målmaskinen. Disse protokollene sies å " passere brannmurer med vanskeligheter " fordi de utveksler informasjon på applikasjonsnivå (FTP) av informasjon på IP-nivå (utveksling av adresser) eller TCP-nivå (utveksling av porter), noe som bryter med separasjonsprinsippet av nettverkslag .
Noen slike protokoller er: FTP , H.323 , peer- to- peer ( IRC-DCC ) protokoller, nettverksadministrasjonsprotokoller, DNS , noen ICMP- meldinger , traceroute , SIP- protokoll .
For å overvinne denne ulempen, må NAT-rutere inspisere innholdet; de fungerer deretter som en Application-Level Gateway (ALG) og håndterer pakker som passerer gjennom dem for å erstatte IP-adressene som er spesifisert av de eksterne adressene. Dette innebærer å vite formatet på protokollen.
NAT betyr at delta i sikkerhetspolitikk området, og dette er ikke dens hovedmål: Når oversettelsen er etablert, er det toveis. NAT er derfor ikke en erstatning for brannmuren.
Den hairpinning er et problem med NAT.
Hvor et sett med interne adresser oversettes til et sett med samme størrelse på eksterne adresser. Disse NAT-ene sies å være statiske fordi tilknytningen mellom en intern adresse og dens eksterne peer er statisk (første interne adresse med den første eksterne osv.). Assosiasjonstabellen er ganske enkel, en-til-en, og inneholder bare adresser. Disse NAT-ene brukes til å gi tilgang til interne servere fra utsiden.
Det er tre typer statiske NAT-er :
Hvor et sett med interne adresser overføres til et mindre sett med eksterne adresser. Disse NAT-ene sies å være dynamiske fordi tilknytningen mellom en intern adresse og dens eksterne motpart opprettes dynamisk når forbindelsen startes. Dette er portnumrene som vil identifisere oversettelsen på plass: kildeportnummeret (det til den interne maskinen) vil bli endret av ruteren. Han vil bruke den til å identifisere den interne maskinen.
Det finnes flere typer dynamiske NAT-er :
Noen finesser:
På grunn av utmattelse av IPv4-adresser , vurderer internettleverandører å bruke storskala NAT ( carrier-grade NAT eller stor skala NAT ), noe som ikke er uten konsekvenser for visse applikasjoner.
I mangel av eksplisitt konfigurasjon avviser NAT-er generelt innkommende tilkoblinger, noe som forårsaker problemer spesielt for peer-to-peer- applikasjoner .
To protokoller er utviklet for å tillate klientarbeidsstasjoner å be om åpning og videresending av bestemte porter fra NAT-ruteren:
Programvare som Skype bruker andre teknikker for kommunikasjon mellom jevnaldrende bak NAT. pwnat bruker en variant som bruker ICMP-meldinger for klientoppdagelse.
Den IETF fraråder NAT med IPv6 på grunn av de iboende problemer og fordi IPv6-adresseområdet er slik at adresse sparing ikke er nødvendig.