.1.42.1.18.1.55.1.7.1.99NATrouter1 IP

Nettverksadresseoversettelse

11 min lestNettverk

Network Address Translation er duct tape som holdt IPv4 i gang lenge etter at adressene gikk tom. Det er også grunnen til at peer-to-peer-apper trenger hulltaking, hvorfor telefonen din ikke kan nås direkte fra Internett, og hvorfor videosamtaler noen ganger nekter å koble seg på visse nettverk. Verdt å forstå i detalj.

Hele artikkelen er gitt på engelsk nedenfor.

Network Address Translation (NAT) er teknikken en ruter bruker for å la mange enheter på et privat nettverk dele en enkelt offentlig IP-adresse. Det var opprinnelig et stopp for IPv4-adresseutmattelse; det ble en permanent inventar for nesten alle forbrukerinternettforbindelser.

Den grunnleggende operasjonen

Hjemmenettverket ditt bruker vanligvis private IP-er fra en av RFC 1918-seriene (10.0.0.0/8, 172.16.0.0/12, 192.0/168.0). Disse kan ikke rutes på det offentlige Internett; den bærbare datamaskinens 192.168.1.42 betyr ingenting utenfor huset ditt.

Når den bærbare datamaskinen åpner en tilkobling til example.com:443, etterlater pakken den bærbare datamaskinen med kilden 192.168.1.42:5512XPLZ. Ruteren din fanger opp pakken og omskriver kilden til your.public.ip:55123 (eller til en ny port ruteren valgte), og videresender den deretter. Ruteren din husker kartleggingen. Når svaret kommer tilbake adressert til your.public.ip:55123, konsulterer ruteren kartleggingen og omskriver destinasjonen til 192.168.1.42:55123, og videresender den til den bærbare datamaskinen. Den bærbare datamaskinen og destinasjonen har begge ingen anelse om at noe av dette har skjedd.

Mappingtabellen

A forbrukerruter opprettholder en NAT-tabell indeksert av (intern IP, intern port, ekstern IP, ekstern port, protokoll). Hver rad blir tidsavbrutt etter at tilkoblingen blir inaktiv - vanligvis 30 sekunder for UDP, flere minutter for TCP. Når tabellen fylles opp (billige rutere lagrer bare noen få tusen oppføringer), blir gamle eller inaktive oppføringer kastet ut.

Typer av NAT

NAT-er er forskjellig i hvor milde de er med å gjenbruke kartlegginger:

    XZPLZ0FXXLL en gang NTXPLZ0FXXX1N 192.168.1.42:55123 har blitt tilordnet til pub.ip:55123, any ekstern vert kan sende en pakke til pub.ip:55123X og den vil bli videresendt inne. Mest permissive.
  • Restricted-cone NAT: bare eksterne verter den interne enheten allerede har sendt til kan svare.
  • Port-restricted-cone: som restricted-cone, men må også matche porten. NAT: opprettes en annen tilordning for hver ekstern destinasjon. Fra utsiden ser den samme interne enheten ut som den har flere offentlige adresser i stadig endring. Mest restriktivt – og det vanskeligste å gå gjennom for peer-to-peer-protokoller.

Hvorfor NAT bryter ting

NAT var lett å distribuere fordi det ikke krevde noen endringer ved endepunktene. Men det brøt den originale ende-til-ende-modellen av Internett. Spesifikke skader:

  • Innkommende tilkoblinger. Uten eksplisitt portvideresending kan ingen på Internett koble til en enhet bak NAT. Å være vert for en spillserver, en Minecraft-verden eller et personlig nettsted på en hjemmetilkobling krever enten portvideresending eller et relé.
  • Peer-to-peer-apper. To enheter begge bak NAT kan ikke ringe hverandre direkte. De trenger en koordineringsserver (STUN/ICE) for å oppdage sine offentlige kartlegginger, og muligens et relé (TURN) hvis deres NAT-er er for restriktive til å kunne krysses.
  • Protocols that embed IPs in their payload. Classic FTP and SIP both puts the client's IP the reprotocolt knowt in the reprotocolt. Application-layer gateways (ALGer) i ruteren må analysere og omskrive nyttelasten – en skjør løsning.

NAT vs PAT vs CGNAT

Strengt tatt, det de fleste hjemmerutere gjør er å oversette AT portnummer (oversettelse) samt adresser til multipleks mange interne flyter over en ekstern IP. "NAT" er det daglige navnet på dette. Carrier-Grade NAT er den samme ideen, men på ISP-nivå: mange kunder deler én offentlig IP, med ISPen som gjør PAT i skala.

Portvideresending og UPnP

For å akseptere innkommende tilkoblinger bak NAT, må du fortelle hvilken som helst port på intern IP-adresse til porten Y som treffer porten Z-ruter. Det er port forwarding. Den kan stilles inn manuelt i ruterens admin eller forespørres automatisk av en applikasjon via UPnP (Universal Plug and Play) eller NAT-PMP. UPnP er praktisk og notorisk usikkert - ethvert program på LAN kan åpne hull i brannmuren, og det er grunnen til at noen sikkerhetsguider anbefaler å deaktivere den.

Hårnåls-NAT og refleksjon

Hvis du videresender en port fra din offentlige IP-adresse til en server inne i nettverket ditt, fungerer det å få tilgang til den serveren fra nettverket ditt ved å bruke det offentlige IP-navnet bare hvis ruteren støtter "hårnåls-NAT" (også kalt NAT-sløyfe/refleksjon). Mange billige rutere gjør det ikke, og det er grunnen til at "min egenvertsserver fungerer utenfra, men ikke fra sofaen min" er en vanlig forvirring.

Hva som erstatter NAT

IPv6 har så mange adresser at NAT er unødvendig – hver enhet får en globalt ruterbar adresse. IPv6-nettverk har vanligvis en stateful brannmur i stedet, som gir sikkerhetsfordelen med NAT (ingen uønsket inngående) uten å bryte ende-til-ende. Etter hvert som IPv6-adopsjon vokser, vil NAT gradvis falme – men det vil være rundt i flere tiår.

Ofte stilte spørsmål

Er NAT en brannmur?
Ikke akkurat, men det fungerer som en for innkommende forbindelser. Fordi NAT bare oppretter tilordninger som svar på utgående trafikk, har uønskede innkommende pakker ingen steder å gå og blir droppet. Dette er reell beskyttelse, men forveksles noen ganger med den eksplisitte politikkens brannmur som også bør være til stede.
Hvorfor mislykkes videosamtaler noen ganger bak NAT?
Videosamtaler bruker vanligvis UDP for mediestrømmen. To enheter begge bak symmetriske NAT-er kan slite med å finne en direkte bane fordi den eksterne porten er forskjellig for hver destinasjon. Tilbakeskuddet er TURN-reléer som drives av ringetjenesten - tregere og dyrere, men de fungerer.
Omgår en VPN NAT?
Ja, på to måter. For det første er VPN-ens ytre tilkobling det eneste hjemme-NAT-en din må oversette; når tunnelen er etablert, er applikasjonstrafikken inne usynlig for den lokale NAT. For det andre, fra destinasjonens perspektiv, ser det ut til at trafikken din kommer fra VPN-serverens offentlige IP, ikke hjemme-IP.
Kan jeg spores på tvers av flere nettsteder på grunn av NAT?
Flere enheter i huset ditt deler den offentlige IP-en, så eksterne nettsteder ser mange strømmer fra samme IP - det er det motsatte av å ta fingeravtrykk fra enkeltpersoner. Men timing, nettleserfingeravtrykk og kontopålogginger knytter deg fortsatt sammen. NAT alene er ikke personvern.
Hvorfor fungerer noe programvare dårlig på kaffebar-Wi-Fi?
Kaffebarer kjører ofte NAT av bærergrad eller pålegger strengere NAT-typer som blokkerer peer-to-peer-protokoller, BitTorrent og noen VPN-protokoller. Det lokale LAN kan også hastighetsbegrense uvanlig trafikk. Vanlig HTTPS fungerer nesten overalt; alt annet er et spill.
NAT forklart: Hvorfor hjemmenettverket ditt har én IP-adresse men tjue enheter