Osoitteenmuunnos - Network address translation

Verkko -osoitteen kääntäminen yksityisen verkon ja Internetin välillä

Network Address Translation ( NAT ) on menetelmä kartoittaa IP- osoiteavaruuden toiseen muuttamalla verkko-osoitteen tiedot IP-otsikossa pakettien, kun ne ovat kulkea liikenteen reititys laite . Tekniikkaa käytettiin alun perin välttämään tarvetta määrittää uusi osoite jokaiselle isännälle, kun verkko siirrettiin tai kun ylemmän tason Internet -palveluntarjoaja vaihdettiin, mutta se ei voinut reitittää verkko -osoitetilaa. Siitä on tullut suosittu ja välttämätön työkalu maailmanlaajuisen osoitetilan säilyttämisessä IPv4 -osoitteen uupumisen vuoksi . Yhtä NAT-yhdyskäytävän Internet-reititettävää IP-osoitetta voidaan käyttää koko yksityisessä verkossa .

Koska verkko -osoitteen kääntäminen muuttaa pakettien IP -osoitetietoja, NAT -toteutukset voivat vaihdella niiden erityiskäyttäytymisestä eri osoitetapauksissa ja niiden vaikutuksesta verkkoliikenteeseen. NAT -toteutuksia sisältävien laitteiden toimittajat eivät dokumentoi yleisesti NAT -käyttäytymisen erityispiirteitä.

Perus NAT

Yksinkertaisin NAT-tyyppi tarjoaa IP-osoitteiden henkilökohtaisen käännöksen. RFC 2663 viittaa tämän tyyppiseen NAT: iin perus -NAT: ksi ; sitä kutsutaan myös yksi-yhteen-NAT: ksi . Tämän tyyppisessä NAT: ssa vain IP-osoitteet, IP-otsikon tarkistussumma ja kaikki korkeamman tason tarkistussummat, jotka sisältävät IP-osoitteen, muutetaan. Basic NAT: n avulla voidaan yhdistää kaksi IP -verkkoa, joiden osoite on yhteensopimaton.

Yksi monille NAT

Verkko -osoitteen kartoitus

Suurin osa verkko -osoitteen kääntäjistä yhdistää useita yksityisiä isäntiä yhteen julkisesti paljastettuun IP -osoitteeseen. Tyypillisessä kokoonpanossa paikallinen verkko käyttää yhtä määritetyistä yksityisistä IP -osoitteiden aliverkkoista (RFC 1918). Tämän verkon reitittimellä on kyseisen osoitealueen yksityinen osoite. Reititin on myös yhteydessä Internetiin julkisella osoitteella, jonka Internet -palveluntarjoaja on yleensä määrittänyt . Kun liikenne kulkee paikallisverkosta Internetiin, kunkin paketin lähdeosoite käännetään lennossa yksityisestä osoitteesta julkiseen osoitteeseen. Reititin seuraa jokaisen aktiivisen yhteyden perustietoja (erityisesti kohdeosoite ja portti ). Kun vastaus palaa reitittimeen, se määrittää lähtevän vaiheen aikana tallentamansa yhteyden seurantatiedot määrittääkseen sisäisen verkon yksityisen osoitteen, johon vastaus välitetään.

Kaikilla IP -paketeilla on lähde -IP -osoite ja kohde -IP -osoite. Yleensä yksityisestä verkosta julkiseen verkkoon siirtyvien pakettien lähdeosoite muutetaan, kun taas julkisesta verkosta takaisin yksityiseen verkkoon siirtyvien pakettien kohdeosoite muutetaan. Vastausten kääntämisen epäselvyyden välttämiseksi paketteja on muutettava edelleen. Suurin osa Internet -liikenteestä käyttää lähetyksenohjausprotokollaa (TCP) tai käyttäjädatagrammia (UDP). Näiden protokollien porttinumeroita muutetaan siten, että palautetun paketin IP -osoitteen ( IP -otsikon sisällä ) ja porttinumeron ( Transport Layer -otsikon sisällä ) yhdistelmä voidaan yksiselitteisesti yhdistää vastaavaan yksityisen verkon kohteeseen. RFC 2663 käyttää termiä verkko -osoite ja portin käännös (NAPT) tämän tyyppiselle NAT: lle. Muita nimiä ovat porttien kääntäminen (PAT), IP-naamiointi , NAT-ylikuormitus ja monenvälinen NAT . Tämä on yleisin NAT -tyyppi ja siitä on tullut synonyymi termille "NAT" yleisessä käytössä.

Tämä menetelmä mahdollistaa viestinnän reitittimen kautta vain silloin, kun keskustelu on peräisin yksityisestä verkosta, koska alkuperäinen lähetys on se, joka määrittää tarvittavat tiedot käännöstaulukoihin. Verkkoselain että naamioituneet verkko voi esimerkiksi selata sivuston ulkopuolella, mutta verkkoselaimen ulkopuolella voi selata verkkosivuilla isännöi sisällä naamioituneet verkossa. Protokollat, jotka eivät perustu TCP: hen ja UDP: hen, edellyttävät muita käännöstekniikoita.

Yksi yksi monille NAT: n lisäetuista on se, että se on käytännöllinen ratkaisu IPv4-osoitteen sammumiseen . Jopa suuret verkot voidaan yhdistää Internetiin yhdellä julkisella IP -osoitteella.

Käännöstavat

Verkko -osoitteen ja portin kääntäminen voidaan toteuttaa useilla tavoilla. Jotkin sovellukset, jotka käyttävät IP -osoitetietoja, saattavat joutua määrittämään verkko -osoitteen kääntäjän ulkoisen osoitteen. Tämä on osoite, jonka sen viestintäverkot ulkoisessa verkossa havaitsevat. Lisäksi voi olla tarpeen tutkia ja luokitella käytössä oleva kartoitustyyppi, esimerkiksi silloin, kun halutaan luoda suora viestintäpolku kahden asiakkaan välille, jotka molemmat ovat erillisten NAT -yhdyskäytävien takana.

Tätä tarkoitusta varten RFC 3489 määritteli protokollan nimeltä Simple Traversal of UDP over NATs ( STUN ) vuonna 2003. Se luokitteli NAT-toteutukset täyden kartion NAT: ksi , (osoite) rajoitetun kartion NAT: ksi , portin rajoitetun kartion NAT: ksi tai symmetriseksi NAT : ksi ja ehdotti menetelmää laitteen testaamiseksi vastaavasti. Nämä menettelyt on kuitenkin sittemmin poistettu standardin tilasta, koska menetelmät eivät ole riittäviä arvioimaan oikein monia laitteita. RFC 5389 standardisoi uudet menetelmät vuonna 2008 ja lyhenne STUN edustaa nyt eritelmän uutta otsikkoa: Session Traversal Utilities for NAT .

NAT -toteutuksen luokitukset
Täysi kartio NAT , joka tunnetaan myös nimellä one-to-one NAT
  • Kun sisäinen osoite (iAddr: iPort) on yhdistetty ulkoiseen osoitteeseen (eAddr: ePort), kaikki paketit iAddr: iPortista lähetetään eAddr: ePortin kautta.
  • Mikä tahansa ulkoinen isäntä voi lähettää paketteja iAddr: iPortiin lähettämällä paketteja eAddr: ePort -palveluun.
Full Cone NAT.svg
(Osoite) -rajoitettu kartio NAT
  • Kun sisäinen osoite (iAddr: iPort) on yhdistetty ulkoiseen osoitteeseen (eAddr: ePort), kaikki paketit iAddr: iPortista lähetetään eAddr: ePortin kautta.
  • Ulkoinen isäntä ( hAddr: mikä tahansa ) voi lähettää paketteja iAddr: iPortiin lähettämällä paketteja eAddr: ePort -palveluun vain, jos iAddr: iPort on aiemmin lähettänyt paketin osoitteeseen hAddr: any . "Mikä tahansa" tarkoittaa, että portin numerolla ei ole väliä.
Rajoitettu kartio NAT.svg
Porttirajoitettu kartio NAT Kuten osoiterajoitettu kartio NAT, mutta rajoitus sisältää porttinumeroita.
  • Kun sisäinen osoite (iAddr: iPort) on yhdistetty ulkoiseen osoitteeseen (eAddr: ePort), kaikki paketit iAddr: iPortista lähetetään eAddr: ePortin kautta.
  • Ulkoinen isäntä ( hAddr: hPort ) voi lähettää paketteja iAddr: iPortiin lähettämällä paketteja eAddr: ePortiin vain, jos iAddr: iPort on aiemmin lähettänyt paketin hAddr: hPortille.
Portin rajoitettu kartio NAT.svg
Symmetrinen NAT
  • Jokainen pyyntö samasta sisäisestä IP -osoitteesta ja portista tiettyyn kohde -IP -osoitteeseen ja -porttiin on yhdistetty ainutlaatuiseen ulkoiseen IP -osoitteeseen ja porttiin; jos sama sisäinen isäntä lähettää paketin, vaikka sillä olisi sama lähdeosoite ja portti, mutta eri kohteeseen, käytetään erilaista kartoitusta.
  • Vain ulkoinen isäntä, joka vastaanottaa paketin sisäiseltä isännältä, voi lähettää paketin takaisin.
Symmetrinen NAT.svg

Monet NAT -toteutukset yhdistävät nämä tyypit, ja siksi on parempi viitata tiettyyn yksittäiseen NAT -käyttäytymiseen kartion/symmetrisen terminologian käyttämisen sijasta. RFC 4787 yrittää lievittää hämmennystä ottamalla käyttöön standardoidun terminologian havaituille käyttäytymistavoille. Edellä olevan taulukon jokaisen rivin ensimmäisessä luettelossa RFC luonnehtii Full-Cone-, Restricted-Cone- ja Port-Restricted Cone NAT -laitteille, joilla on päätepisteestä riippumaton kartoitus , kun taas se luonnehtii symmetristä NAT: ää, jolla on osoite- ja portista riippuva kartoitus . Edellä olevan taulukon jokaisen rivin toisessa luetelmakohdassa RFC 4787 merkitsisi myös Full Cone NAT: n, jolla on päätepisteestä riippumaton suodatus , rajoitetun kartion NAT: n, jolla on osoitteesta riippuva suodatus , ja Port-Restricted Cone NAT: n, jolla on osoite ja portista riippuvainen suodatus ja symmetrinen NAT, jossa on joko osoitteesta riippuva suodatus tai osoite ja portista riippuva suodatus . Muita RFC: ssä mainittuja NAT -käyttäytymisen luokituksia ovat, säilyttävätkö ne portit, milloin ja miten kartoitukset päivitetään, voivatko sisäiset isännät käyttää ulkoisia kartoituksia (eli sen hiusneulauskäyttäytyminen ), ja NAT: ien determinismin taso, kun niitä sovelletaan säännöt. Useimmat NAT: t yhdistävät symmetrisen NAT : n lähteville yhteyksille staattisen porttikartoituksen kanssa , jossa ulkoiseen osoitteeseen ja porttiin osoitetut saapuvat paketit ohjataan tiettyyn sisäiseen osoitteeseen ja porttiin.

NAT- ja NAT -läpikäynnin tyyppi, portin säilyttämisen rooli TCP: ssä

NAT Ongelma syntyy, kun ikäisensä takana eri NAT yrittää kommunikoida. Yksi tapa ratkaista tämä ongelma on käyttää portin edelleenlähetystä . Toinen tapa on käyttää erilaisia ​​NAT -kulkutekniikoita. Suosituin tekniikka TCP NAT -läpikululle on TCP -rei'itys .

TCP -rei'itys edellyttää, että NAT noudattaa TCP: n portin säilyttämissuunnitelmaa . Tietylle lähtevälle TCP -viestinnälle käytetään samoja porttinumeroita NAT: n molemmilla puolilla. Lähtevien TCP -yhteyksien NAT -portin säilyttäminen on ratkaisevan tärkeää TCP NAT -liikenteelle, koska TCP -protokollassa yhtä porttia voidaan käyttää vain yhteen tiedonsiirtoon kerrallaan, joten ohjelmat sitovat erilliset TCP -liitännät lyhytaikaisiin portteihin jokaisen TCP -tiedonsiirron yhteydessä, mikä tekee NAT -portin ennustamisesta mahdotonta TCP: lle.

Toisaalta UDP: n osalta NAT: t eivät tarvitse portin säilyttämistä. Itse asiassa useita UDP -tietoliikenneyhteyksiä (jokaisella on oma päätepiste ) voi tapahtua samassa lähdeportissa, ja sovellukset käyttävät yleensä samaa UDP -liitäntää uudelleen pakettien lähettämiseen eri isäntille. Tämä tekee portin ennustamisesta helppoa, koska se on sama lähdeportti jokaiselle paketille.

Lisäksi portin säilyttäminen NAT for TCP: ssä sallii P2P -protokollien tarjota vähemmän monimutkaisia ​​ja vähemmän viiveitä, koska ei tarvitse käyttää kolmatta osapuolta (kuten STUN) NAT -portin löytämiseen, koska sovellus itse tietää jo NAT -portin.

Jos kaksi sisäistä isäntää yrittää kuitenkin kommunikoida saman ulkoisen isännän kanssa käyttäen samaa porttinumeroa, NAT voi yrittää käyttää toista ulkoista IP -osoitetta toiseen yhteyteen tai joutua luopumaan portin säilyttämisestä ja muodostamaan portin uudelleen.

Vuodesta 2006 lähtien noin 70% P2P -verkkojen asiakkaista käytti jonkinlaista NAT -muotoa.

Toteutus

Kaksisuuntaisen viestinnän luominen

Kaksisuuntaisessa NAT: ssa istunto voidaan muodostaa sekä sisä- että ulkopuolelta.

Jokainen TCP- ja UDP -paketti sisältää lähdeportin numeron ja kohdeportin numeron. Jokainen näistä paketeista on koteloitu IP -pakettiin, jonka IP -otsikko sisältää lähde -IP -osoitteen ja kohde -IP -osoitteen. IP -osoite/protokolla/porttinumero kolminkertainen määrittelee yhteyden verkkoliitäntään .

Julkisesti saatavilla olevissa palveluissa, kuten verkko- ja postipalvelimissa, portin numero on tärkeä. Esimerkiksi portti 80 muodostaa yhteyden pistorasian kautta verkkopalvelinohjelmistoon ja portti 25 postipalvelimen SMTP -daemoniin . Julkisen palvelimen IP -osoite on myös tärkeä, samankaltainen maailmanlaajuisesti postiosoitteen tai puhelinnumeron kanssa. Kaikkien isäntien, jotka haluavat kommunikoida, on tiedettävä oikein sekä IP -osoite että portin numero.

RFC 1918: ssa kuvattuja yksityisiä IP -osoitteita voidaan käyttää vain yksityisissä verkoissa, jotka eivät ole suoraan yhteydessä Internetiin. Portit ovat tietylle isännälle ominaisia ​​tietoliikenteen päätepisteitä, joten yhteys NAT -laitteen kautta ylläpidetään portin ja IP -osoitteen yhdistetyn kartoituksen avulla. Yksityinen osoite NAT: n sisäpuolella yhdistetään ulkoiseen julkiseen osoitteeseen. Portin osoitteen kääntäminen (PAT) ratkaisee ristiriidat, jotka syntyvät, kun useat isännät käyttävät samaa lähdeportin numeroa eri ulkoisten yhteyksien luomiseen samanaikaisesti.

Analogia puhelinnumeron laajennukseen

NAT -laite on samanlainen kuin toimiston puhelinjärjestelmä, jolla on yksi julkinen puhelinnumero ja useita laajennuksia. Toimistosta lähtevät puhelut näyttävät tulevan samasta puhelinnumerosta. Saapuvaa puhelua, jossa ei määritetä alaliittymää, ei kuitenkaan voida automaattisesti siirtää toimiston sisällä olevalle henkilölle. Tässä tilanteessa toimisto on yksityinen lähiverkko, pääpuhelinnumero on julkinen IP -osoite ja yksittäiset laajennukset ovat ainutlaatuisia porttinumeroita.

Käännösprosessi

NAT: n avulla kaikki ulkoisille isännille lähetetyt viestinnät sisältävät todellisuudessa NAT -laitteen ulkoisen IP -osoitteen ja porttitiedot isännän sisäisten IP -osoitteiden tai porttinumeroiden sijaan. NAT kääntää vain sisäisten isäntiensä IP -osoitteet ja portit, piilottamalla sisäisen isännän todellisen päätepisteen yksityisessä verkossa.

Kun yksityisen (sisäisen) verkon tietokone lähettää IP -paketin ulkoiseen verkkoon, NAT -laite korvaa paketin otsikon sisäisen lähde -IP -osoitteen NAT -laitteen ulkoisella IP -osoitteella. PAT voi sitten antaa yhteydelle portin numeron käytettävissä olevien porttien joukosta lisäämällä tämän portin numeron lähdeporttikenttään. Paketti välitetään sitten ulkoiseen verkkoon. Tämän jälkeen NAT -laite tekee merkinnän käännöstaulukkoon, joka sisältää sisäisen IP -osoitteen, alkuperäisen lähdeportin ja käännetyn lähdeportin. Seuraavat paketit samasta sisäisestä lähde -IP -osoitteesta ja portin numerosta käännetään samaan ulkoisen lähteen IP -osoitteeseen ja portin numeroon. Tietokone, joka vastaanottaa NAT -paketin, muodostaa yhteyden muutetussa paketissa määritettyyn porttiin ja IP -osoitteeseen, välittämättä siitä, että toimitettua osoitetta käännetään.

Vastaanotettuaan paketin ulkoisesta verkosta NAT -laite etsii käännöstaulukon pakettiotsikon kohdeportin perusteella. Jos täsmäys löytyy, kohde -IP -osoite ja portin numero korvataan taulukossa olevilla arvoilla ja paketti välitetään sisäverkkoon. Muussa tapauksessa, jos saapuvan paketin kohdeportin numeroa ei löydy käännöstaulukosta, paketti hylätään tai hylätään, koska PAT -laite ei tiedä minne lähettää sen.

Toiminnan näkyvyys

NAT -toiminto on tyypillisesti läpinäkyvä sekä sisäisille että ulkoisille isännille. NAT -laite voi toimia oletusyhdyskäytävänä sisäiselle isännälle, joka on tyypillisesti tietoinen ulkoisen isännän todellisesta IP -osoitteesta ja TCP- tai UDP -portista. Ulkoinen isäntä on kuitenkin tietoinen vain NAT -laitteen julkisesta IP -osoitteesta ja tietystä portista, jota käytetään tietyn sisäisen isännän puolesta kommunikointiin.

Sovellukset

Reititys
Verkko -osoitteen kääntämistä voidaan käyttää IP -osoitteiden päällekkäisyyden vähentämiseen. Osoitteiden päällekkäisyys tapahtuu, kun eri verkkojen isännät, joilla on sama IP -osoitetila, yrittävät päästä samaan kohdeisäntään. Tämä on useimmiten virheellinen kokoonpano ja se voi johtua kahden verkon tai aliverkkojen yhdistämisestä, erityisesti käytettäessä yksityistä RFC 1918 -verkko -osoitetta. Kohdeisäntä kokee liikenteen, joka tulee ilmeisesti samasta verkosta, eikä välireitittimillä ole mitään keinoa määrittää, minne vastausliikenne tulisi lähettää. Ratkaisu on joko numeroida uudelleen päällekkäisyyden poistamiseksi tai verkko -osoitteen kääntäminen.
Kuormituksen tasapainoittaminen
In asiakas-palvelin sovelluksia, kuormituksen tasausta eteenpäin asiakas pyytää joukkoon palvelintietokoneissa hallita työmäärää jokaisen palvelimen. Verkko -osoitteen kääntämistä voidaan käyttää palvelinklusterin edustavan IP -osoitteen yhdistämiseen pyyntöä palveleviin tiettyihin palvelimiin.

Aiheeseen liittyviä tekniikoita

IEEE Reverse Address and Port Translation (RAPT tai RAT) sallii isännän, jonka todellinen IP -osoite muuttuu ajoittain, pysyä tavoitettavissa palvelimena kiinteän kodin IP -osoitteen kautta. Ciscon RAPT -toteutus on PAT- tai NAT -ylikuormitus ja yhdistää useita yksityisiä IP -osoitteita yhteen julkiseen IP -osoitteeseen. Useita osoitteita voidaan yhdistää yhteen osoitteeseen, koska jokaista yksityistä osoitetta seurataan porttinumerolla. PAT käyttää ainutlaatuisia lähdeporttien numeroita sisäisessä globaalissa IP -osoitteessa erottaakseen käännökset toisistaan. PAT yrittää säilyttää alkuperäisen lähdeportin. Jos tämä lähdeportti on jo käytössä, PAT määrittää ensimmäisen käytettävissä olevan portin numeron alkaen sopivan porttiryhmän 0–511, 512–1023 tai 1024–65535 alusta. Jos käytettävissä ei ole enää portteja ja useampi kuin yksi ulkoinen IP -osoite on määritetty, PAT siirtyy seuraavaan IP -osoitteeseen yrittääkseen varata alkuperäisen lähdeportin uudelleen. Tämä prosessi jatkuu, kunnes käytettävissä olevat portit ja ulkoiset IP -osoitteet loppuvat.

Osoitteen ja portin kartoitus on Ciscon ehdotus, joka yhdistää osoitteen ja portin kääntämisen IPv4 -pakettien tunnelointiin Internet -palveluntarjoajan sisäisen IPv6 -verkon kautta. Itse asiassa se on (lähes) tilaton vaihtoehto operaattoriluokan NAT: lle ja DS-Lite: lle, joka työntää IPv4-osoitteen /portin käännöstoiminnon (ja siten NAT-tilan ylläpidon) kokonaan olemassa olevaan asiakkaan tilojen laitteiden NAT-toteutukseen. Näin vältetään NAT444 ja operaattoriluokan NAT: n tilallisuusongelmat, ja se tarjoaa myös siirtymismekanismin natiivin IPv6: n käyttöönottoa varten samalla, kun se on hyvin monimutkaista.

Ongelmat ja rajoitukset

NAT-yhteensopivien reitittimien takana olevilla isännillä ei ole päästä päähän -yhteyttä, eivätkä ne voi osallistua joihinkin Internet-protokolliin. Palvelut, jotka edellyttävät TCP -yhteyksien aloittamista ulkopuolisesta verkosta tai jotka käyttävät tilattomia protokollia, kuten UDP: tä , voivat häiriintyä. Ellei NAT -reititin yritä erityisesti tukea tällaisia ​​protokollia, saapuvat paketit eivät pääse määränpäähänsä. Jotkin protokollat ​​voivat majoittaa yhden NAT-esiintymän osallistuvien isäntien välille (esimerkiksi "passiivitilan" FTP ), joskus sovellustason yhdyskäytävän avulla (katso alla), mutta epäonnistuvat, kun molemmat järjestelmät on erotettu Internetistä NAT: n avulla. NAT: n käyttö monimutkaistaa myös tunnelointiprotokollia , kuten IPsec, koska NAT muuttaa otsikoiden arvoja, jotka häiritsevät IPsecin ja muiden tunnelointiprotokollien eheystarkistuksia .

Päätelaiteyhteys on ollut Internetin perusperiaate, jota tukee esimerkiksi Internet Architecture Board . Nykyisissä Internet-arkkitehtuuriasiakirjoissa todetaan, että NAT rikkoo päästä päähän -periaatetta , mutta sillä on pätevä rooli huolellisessa suunnittelussa. IPv6 NAT: n käyttö on huomattavasti huolestuttavampaa, ja monet IPv6 -arkkitehdit uskovat, että IPv6: n tarkoitus oli poistaa NAT -tarve.

Toteutus, joka seuraa vain portteja, voidaan nopeasti tyhjentää sisäisillä sovelluksilla, jotka käyttävät useita samanaikaisia ​​yhteyksiä (kuten HTTP -pyyntö verkkosivulle, jossa on monia upotettuja objekteja). Tätä ongelmaa voidaan lieventää seuraamalla portin lisäksi kohde -IP -osoitetta (jakamalla siten yksi paikallinen portti monien etäisännien kanssa) toteutuksen monimutkaisuuden ja käännöslaitteen suoritin-/muistiresurssien kustannuksella.

Koska kaikki sisäiset osoitteet on peitetty yhden julkisesti saatavilla olevan osoitteen taakse, ulkopuolisten isäntien on mahdotonta aloittaa yhteys tiettyyn sisäiseen isäntään ilman palomuurin erityistä kokoonpanoa välittämään yhteyksiä tiettyyn porttiin. Sovellusten, kuten VOIP- , videoneuvottelu- ja muiden vertaissovellusten, on käytettävä NAT-läpikulkutekniikoita toimiakseen.

Hajanaisuus ja tarkistussummat

Pelkällä IP -osoitteella toimiva Pure NAT voi jäsentää tai olla väärin jäsentämättä protokollia, jotka koskevat täysin IP -tietoja, kuten ICMP , riippuen siitä, tulkitseeko hyötykuorma käännöksen sisä- vai ulkopuolella olevan isännän . Heti kun protokollapino on ohitettu, myös sellaisilla perusprotokollilla kuin TCP ja UDP , protokollat ​​rikkoutuvat, ellei NAT ryhdy toimiin verkkokerroksen ulkopuolella.

IP -paketeissa on tarkistussumma jokaisessa paketin otsikossa, joka havaitsee virheet vain otsikolle. IP-datagrammit voivat olla pirstoutuneita, ja NAT: n on koottava nämä fragmentit uudelleen, jotta ylemmän tason tarkistussummat voidaan laskea oikein uudelleen ja mikä paketti mihin yhteyteen kuuluu.

Suurimmissa siirtokerrosprotokollissa, TCP ja UDP, on tarkistussumma, joka kattaa kaikki niiden sisältämät tiedot, sekä TCP- tai UDP-otsikko sekä pseudo-otsikko, joka sisältää TCP- tai UDP -otsikko. Jotta alkuperäinen NAT läpäisi TCP: n tai UDP: n onnistuneesti, sen on laskettava TCP- tai UDP -ylätunnisteen tarkistussumma uudelleen käännettyjen IP -osoitteiden, ei alkuperäisten perusteella, ja asetettava kyseinen tarkistussumma pirstoutuneen joukon ensimmäisen paketin TCP- tai UDP -otsikkoon paketeista. Vastaanottavan NAT: n on laskettava uudelleen IP-tarkistussumma jokaisesta paketista, jonka se välittää kohde-isännälle, ja tunnistettava ja laskettava uudelleen TCP- tai UDP-otsikko käyttämällä uudelleen käännettyjä osoitteita ja pseudo-otsikkoa. Tämä ei ole täysin ratkaistu ongelma. Yksi ratkaisu on, että vastaanottava NAT kokoaa koko segmentin uudelleen ja laskee sitten tarkistussumman, joka on laskettu kaikille paketeille.

Lähettävä isäntä voi suorittaa polku MTU määrittää paketin koko, joka voidaan lähettää ilman pirstoutuminen ja sitten asettaa ei-fragmentti (DF) bitin asianmukaisen paketin otsikkokentän. Tämä on tietysti vain yksisuuntainen ratkaisu, koska vastaava isäntä voi lähettää minkä tahansa kokoisia paketteja, jotka voivat olla pirstoutuneita ennen NAT: n saavuttamista.

DNAT

Määränpään Network Address Translation (DNAT) on tekniikka, avoimesti muuttaa määränpäätä IP-osoite , joka pää reitti paketin ja käänteisen toiminnon suorittamiseksi tahansa vastauksia. Mikä tahansa kahden päätepisteen välissä oleva reititin voi suorittaa tämän paketin muunnoksen.

DNATia käytetään yleisesti julkistamaan palvelu, joka sijaitsee yksityisessä verkossa julkisesti saatavilla olevalla IP -osoitteella. Tätä DNAT: n käyttöä kutsutaan myös portinsiirtoksi tai DMZ: ksi, kun sitä käytetään koko palvelimessa , joka altistuu WAN: lle ja tulee analogiseksi puolustamattomalle armeijan demilitarisoidulle vyöhykkeelle (DMZ).

SNAT

Termin SNAT merkitys vaihtelee toimittajan mukaan. Monilla toimittajilla on oma määritelmä SNAT : lle:

  • lähde NAT on yhteinen laajennus, kohde -NAT: n ( DNAT ) vastine
  • tilapäistä NAT: ää käyttää Cisco Systems
  • WatchGuard käyttää staattista NAT -tekniikkaa
  • F5 Networks ja Microsoft käyttävät suojattua NAT : ia ( ISA -palvelimen osalta )

Microsoftin suojattu verkko -osoitteen kääntäminen (SNAT) on osa Microsoftin Internet Security and Acceleration Server -palvelinta ja laajennus Microsoft Windows Serveriin sisäänrakennettuun NAT -ohjaimeen . Se tarjoaa yhteyden seurannan ja suodatuksen lisäverkkoyhteyksille, joita tarvitaan FTP- , ICMP- , H.323- ja PPTP -protokollille, sekä mahdollisuuden määrittää läpinäkyvä HTTP -välityspalvelin .

Dynaaminen verkko -osoitteen kääntäminen

Miten dynaaminen NAT toimii.

Dynaaminen NAT, kuten staattinen NAT, ei ole yleinen pienemmissä verkoissa, mutta sitä esiintyy suurissa yrityksissä, joissa on monimutkaisia ​​verkkoja. Dynaaminen NAT eroaa staattisesta NAT: sta siinä, että jos staattinen NAT tarjoaa henkilökohtaisen sisäisen tai julkisen staattisen IP-osoitteen kartoituksen, dynaaminen NAT käyttää yleensä käytettävissä olevien julkisten IP-osoitteiden ryhmää .

NAT -hiuslakka

NAT hairpinning , joka tunnetaan myös nimellä NAT paluusilmukan tai NAT heijastus , on piirre monissa kuluttajille reitittimet, joka sallii pääsyn palvelun kautta julkisen IP-osoitteen sisältä lähiverkossa. Tämä poistaa tarpeen käyttää erillistä verkkotunnuksen tarkkuutta verkon sisällä oleville isännille kuin verkkosivuston julkiselle verkolle.

Seuraavassa kuvataan esimerkkiverkko:

  • Julkinen osoite: 203.0.113.1 . Tämä on reitittimen WAN -liitännän osoite .
  • Reitittimen sisäinen osoite: 192.168.1.1
  • Palvelimen osoite: 192.168.1.2
  • Paikallisen tietokoneen osoite: 192.168.1.100

Jos tietokone lähettää paketin julkiseen osoitteeseen osoitteessa 192.168.1.100 , paketti reititetään normaalisti oletusyhdyskäytävään (reitittimeen), ellei nimenomaista reittiä ole määritetty tietokoneen reititystaulukoissa . Reititin, jossa on NAT -palautusominaisuus, havaitsee, että 203.0.113.1 on sen WAN -rajapinnan osoite, ja käsittelee paketin ikään kuin siitä liittymästä. Se määrittää kyseisen paketin määränpään määränpäätä koskevien DNAT -sääntöjen (portin edelleenlähetys) perusteella. Jos tiedot lähetettiin porttiin 80 ja portille 80 on olemassa DNAT -sääntö, joka on suunnattu 192.168.1.2 , niin kyseisen osoitteen isäntä vastaanottaa paketin.

Jos sovellettavaa DNAT -sääntöä ei ole saatavilla, reititin pudottaa paketin. ICMP Destination tavoiteta vastaus voidaan lähettää. Jos DNAT -sääntöjä oli olemassa, osoitteen kääntäminen on edelleen voimassa; reititin kirjoittaa edelleen paketin lähde -IP -osoitteen. Paikallinen tietokone ( 192.168.1.100 ) lähettää paketin 192.168.1.100: sta , mutta palvelin ( 192.168.1.2 ) vastaanottaa sen saapuvana 203.0.113.1 . Kun palvelin vastaa, prosessi on sama kuin ulkoisella lähettäjällä. Näin ollen kaksisuuntainen kommunikointi on mahdollista lähiverkossa olevien isäntien välillä julkisen IP-osoitteen kautta.

NAT IPv6: ssa

Verkko-osoitteen kääntämistä ei käytetä yleisesti IPv6: ssa , koska yksi IPv6 : n suunnittelutavoitteista on päästä päähän -verkkoyhteyden palauttaminen. NAT -silmukkaa ei yleensä tarvita. Vaikka se on edelleen mahdollista, IPv6: n suuri osoitetila poistaa tarpeen säilyttää osoitteet ja jokaiselle laitteelle voidaan antaa ainutlaatuinen maailmanlaajuisesti reititettävä osoite. Tästä huolimatta ainutlaatuisten paikallisten osoitteiden käyttäminen yhdessä verkon etuliitteiden käännöksen kanssa voi saavuttaa samanlaisia ​​tuloksia.

Sovellukset, joihin NAT vaikuttaa

Jotkin sovelluskerrosprotokollat (kuten FTP ja SIP ) lähettävät nimenomaisia ​​verkko -osoitteita sovellustiedoissaan. Esimerkiksi aktiivisessa tilassa FTP käyttää erillisiä yhteyksiä liikenteen ohjaamiseen (komennot) ja dataliikenteeseen (tiedoston sisältö). Pyydettäessä tiedostonsiirtoa pyyntöä tekevä isäntä tunnistaa vastaavan datayhteyden verkkokerroksen ja siirtokerroksen osoitteiden perusteella. Jos pyynnön tekevä isäntä on yksinkertaisen NAT -palomuurin takana, IP -osoitteen ja/tai TCP -portin numeron kääntäminen tekee palvelimen vastaanottamat tiedot virheellisiksi. Session Initiation Protocol (SIP) ohjaa monet Voice over IP (VoIP) puhelut, ja kärsii samasta ongelmasta. SIP ja SDP voivat käyttää useita portteja yhteyden muodostamiseen ja äänivirran lähettämiseen RTP: n kautta . IP -osoitteet ja porttinumerot on koodattu hyötykuorman tietoihin, ja ne on tiedettävä ennen NAT -siirtymistä. Ilman erityisiä tekniikoita, kuten STUN , NAT -käyttäytyminen on arvaamatonta ja viestintä voi epäonnistua.

Sovelluskerroksen yhdyskäytävän (ALG) ohjelmisto tai laitteisto voi korjata nämä ongelmat. ALG -ohjelmistomoduuli, joka toimii NAT -palomuurilaitteella, päivittää kaikki hyötykuormatiedot, jotka on tehty osoitteiden kääntämisen vuoksi virheellisiksi. ALG: iden on ymmärrettävä ylemmän tason protokolla, joka niiden on korjattava, joten jokainen tämän ongelman omaava protokolla vaatii erillisen ALG: n. Esimerkiksi monissa Linux-järjestelmissä on ydinmoduuleita kutsutaan yhteyden seurantoja jotka palvelevat toteuttaa ALGs. ALG ei kuitenkaan toimi, jos ohjauskanava on salattu (esim. FTPS ).

Toinen mahdollinen ratkaisu tähän ongelmaan on käyttää NAT -siirtotekniikoita käyttäen protokollia, kuten STUN tai ICE , tai patentoituja lähestymistapoja istunnon rajavalvojalla . NAT-läpikulku on mahdollista sekä TCP- että UDP-pohjaisissa sovelluksissa, mutta UDP-pohjainen tekniikka on yksinkertaisempi, laajemmin ymmärretty ja yhteensopivampi vanhojen NAT-järjestelmien kanssa. Kummassakin tapauksessa korkean tason protokolla on suunniteltava NAT-läpikulkua silmällä pitäen, eikä se toimi luotettavasti symmetrisissä NAT-laitteissa tai muissa huonosti käyttäytyneissä vanhoissa NAT-järjestelmissä.

Muita mahdollisuuksia ovat UPnP Internet Gateway Device Protocol , NAT-PMP (NAT Port Mapping Protocol) tai Port Control Protocol (PCP), mutta ne edellyttävät NAT-laitetta tämän protokollan toteuttamiseen.

Useimmat perinteiset asiakas -palvelin -protokollat ​​(FTP on tärkein poikkeus) eivät kuitenkaan lähetä kerroksen 3 yhteystietoja eivätkä siksi vaadi erityiskohtelua. Itse asiassa NAT-komplikaatioiden välttäminen on käytännössä vaatimus, kun nykyään suunnitellaan uusia korkeamman tason protokollia (esim. SFTP: n käyttö FTP: n sijasta).

NAT: t voivat myös aiheuttaa ongelmia, kun käytetään IPsec -salausta ja tapauksissa, joissa NAT: n takana on useita laitteita, kuten SIP -puhelimia. Puhelimet, jotka salaavat signalointinsa IPsec: llä, koteloivat porttitiedot salattuun pakettiin, mikä tarkoittaa, että NA (P) T -laitteet eivät voi käyttää ja kääntää porttia. Näissä tapauksissa NA (P) T -laitteet palaavat yksinkertaiseen NAT -käyttöön. Tämä tarkoittaa, että kaikki NAT: iin palaava liikenne kartoitetaan yhdelle asiakkaalle, mikä aiheuttaa palvelun useammalle kuin yhdelle NAT: n takana olevalle asiakkaalle. Tähän ongelmaan on pari ratkaisua: yksi on käyttää TLS: ää , joka toimii OSI -viitemallin tasolla 4 eikä siksi peitä portin numeroa; Toinen tapa on koteloida IPsec UDP: hen - jälkimmäinen on TISPANin valitsema ratkaisu turvallisen NAT -läpikulun saavuttamiseksi tai NAT, jossa on "IPsec Passthru" -tuki.

Interactive Connectivity Establishment on NAT -läpikulkutekniikka, joka ei perustu ALG -tukeen.

Dan Kaminskyn 8. heinäkuuta 2008 ilmoittama DNS -protokollan haavoittuvuus vaikuttaa epäsuorasti NAT -porttikartoitukseen. DNS -välimuistimyrkytysten välttämiseksi on erittäin toivottavaa olla kääntämättä lähtevien DNS -pyyntöjen UDP -lähdeporttien numeroita NAT: ää toteuttavan palomuurin takana olevalta DNS -palvelimelta. Suositeltu kiertotie DNS -haavoittuvuudelle on saada kaikki välimuistissa olevat DNS -palvelimet käyttämään satunnaistettuja UDP -lähdeportteja. Jos NAT-toiminto poistaa satunnaisesti UDP-lähdeportit, DNS-palvelimesta tulee haavoittuva.

Esimerkkejä NAT -ohjelmistosta

Katso myös

Huomautuksia

Viitteet

Ulkoiset linkit