Traducerea adresei de rețea



Niciodată în istoria omenirii nu au existat atât de multe informații despre Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător așa cum există astăzi datorită internetului. Cu toate acestea, acest acces la tot ce are legătură cu Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător nu este întotdeauna ușor. Saturație, utilizare slabă și dificultatea de a discerne între informațiile corecte și incorecte despre Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător sunt adesea greu de depășit. Acesta este ceea ce ne-a motivat să creăm un site de încredere, sigur și eficient.

Ne-a fost clar că pentru a ne atinge scopul, nu era suficient să avem informații corecte și verificate despre Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător . Despre tot ce adunasem Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător de asemenea trebuia prezentat într-un mod clar, lizibil, într-o structură care să faciliteze experiența utilizatorului, cu un design curat și eficient, și care să prioritizeze viteza de încărcare. Suntem încrezători că am reușit acest lucru, deși lucrăm mereu pentru a aduce mici îmbunătățiri. Dacă ați găsit ceea ce ați găsit util Explorarea traducerii adreselor de rețea în 2023: un ghid cuprinzător și v-ați simțit confortabil, vom fi foarte fericiți dacă veți reveni scientiaen.com oricând vrei și ai nevoie.

Traducerea adresei de rețea între o rețea privată și Internet

Traducerea adresei de rețea (NAT) este o metodă de mapare a unui IP spațiu de adrese în alta prin modificare adresa de rețea informații în antet IP de pachete în timp ce acestea sunt în tranzit printr-un trafic dispozitiv de rutare. Tehnica a fost folosită inițial pentru a evita necesitatea de a atribui o nouă adresă fiecărei gazde atunci când o rețea a fost mutată sau când furnizor de servicii de internet a fost înlocuit, dar nu a putut ruta spațiul de adrese al rețelei. A devenit un instrument popular și esențial în conservarea spațiului global de adrese în fața epuizarea adresei IPv4. Un singur Internet-routable Adresa IP a unui gateway NAT poate fi folosit pentru un întreg rețea privată.

Deoarece traducerea adresei de rețea modifică informațiile despre adresa IP în pachete, implementările NAT pot varia în comportamentul lor specific în diferite cazuri de adresare și efectul lor asupra traficului de rețea. Specificul comportamentului NAT nu este documentat în mod obișnuit de către furnizorii de echipamente care conțin implementări NAT.

NAT de bază

Cel mai simplu tip de NAT oferă o traducere unu-la-unu a adreselor IP. RFC 2663 se referă la acest tip de NAT ca NAT de bază; se mai numeste si a NAT unu-la-unu. În acest tip de NAT, numai adresele IP, antetul IP checksum, iar toate sumele de control de nivel superior care includ adresa IP sunt modificate. NAT de bază poate fi utilizat pentru a interconecta două rețele IP care au o adresare incompatibilă.

NAT unu-la-mulți

Maparea adresei de rețea

Majoritatea traducătorilor de adrese de rețea mapează mai multe gazde private la o singură adresă IP expusă public.

Iată o configurație tipică:

  1. O rețea locală folosește una dintre cele desemnate privat Subrețele de adrese IP (RFC 1918).
  2. Rețeaua are un router care are atât o adresă privată, cât și o adresă publică. Adresa privată este utilizată de router pentru a comunica cu alte dispozitive din rețeaua locală privată. Adresa publică (de obicei atribuită de un furnizor de servicii de internet) este folosit de router pentru a comunica cu restul Internetului.
  3. Pe măsură ce traficul trece de la rețea la Internet, routerul traduce adresa sursă din fiecare pachet de la o adresă privată la adresa publică proprie a routerului. Routerul urmărește datele de bază despre fiecare conexiune activă (în special adresa de destinație și port). Când routerul primește trafic de intrare de pe Internet, folosește datele de urmărire a conexiunii pe care le-a stocat în timpul fazei de ieșire pentru a determina la ce adresă privată (dacă există) ar trebui să trimită răspunsul.

Toate pachetele IP au o adresă IP sursă și o adresă IP destinație. De obicei, pachetele care trec din rețeaua privată în rețeaua publică vor avea adresa sursă modificată, în timp ce pachetele care trec din rețeaua publică înapoi în rețeaua privată vor avea adresa de destinație modificată. Pentru a evita ambiguitatea în modul în care sunt traduse răspunsurile, sunt necesare modificări suplimentare la pachete. Cea mai mare parte a traficului pe Internet utilizează Protocol de control al transmisiei (TCP) sau Protocolul de datagramă utilizator (UDP). Pentru aceste protocoale, numere de port sunt modificate astfel încât combinația de adrese IP (în cadrul antet IP) și numărul portului (în cadrul Antetul stratului de transport) de pe pachetul returnat poate fi mapat fără ambiguitate la destinația rețelei private corespunzătoare. RFC 2663 folosește termenul adresa de rețea și traducerea portului (NAPT) pentru acest tip de NAT. Alte nume includ traducerea adresei portului (PAT), Mascararea IP, Supraîncărcare NAT și NAT multi-la-unu. Acesta este cel mai comun tip de NAT și a devenit sinonim cu termenul „NAT” în uz comun.

Această metodă permite comunicarea prin router numai atunci când conversația provine din rețeaua privată, deoarece transmisia inițială de origine este cea care stabilește informațiile necesare în tabelele de traducere. Astfel a browser web în cadrul rețelei private ar putea naviga pe site-uri web care se află în afara rețelei, în timp ce browserele web din afara rețelei nu ar putea naviga pe un site web găzduit în interiorul rețelei. Protocoalele care nu se bazează pe TCP și UDP necesită alte tehnici de traducere.

Un avantaj suplimentar al NAT unu-la-mulți este că atenuează epuizarea adresei IPv4 permițând rețelelor întregi să fie conectate la Internet folosind o singură adresă IP publică.

Metode de traducere

Adresa de rețea și traducerea portului pot fi implementate în mai multe moduri. Este posibil ca unele aplicații care utilizează informații despre adresa IP să fie nevoie să determine adresa externă a unui traducător de adrese de rețea. Aceasta este adresa pe care colegii săi de comunicare din rețeaua externă o detectează. Mai mult, poate fi necesar să se examineze și să se clasifice tipul de mapare utilizat, de exemplu atunci când se dorește să se stabilească o cale de comunicare directă între doi clienți, ambii fiind în spatele unor gateway-uri NAT separate.

În acest scop, RFC 3489 a specificat un protocol numit Traversarea simplă a UDP peste NAT-uri (STUN) în 2003. A clasificat implementările NAT ca NAT cu con complet, (adresă) restricted-cone NAT, NAT cu port restrictionat or NAT simetricși a propus o metodologie pentru testarea unui dispozitiv în consecință. Cu toate acestea, aceste proceduri au fost depășite de la statutul standardelor, deoarece metodele sunt inadecvate pentru a evalua corect multe dispozitive. RFC 5389 a standardizat noi metode în 2008 și acronimul STUN acum reprezintă noul titlu al specificației: Utilitare de traversare a sesiunii pentru NAT.

Clasificări de implementare NAT
NAT cu con complet, de asemenea cunoscut ca si NAT unu-la-unu
  • Odată ce o adresă internă (iAddr:iPort) este mapată la o adresă externă (eAddr:ePort), toate pachetele de la iAddr:iPort sunt trimise prin eAddr:ePort.
  • Orice gazdă externă poate trimite pachete către iAddr:iPort trimițând pachete către eAddr:ePort.
Con complet NAT.svg
(Adresa)-con restrictionat NAT
  • Odată ce o adresă internă (iAddr:iPort) este mapată la o adresă externă (eAddr:ePort), toate pachetele de la iAddr:iPort sunt trimise prin eAddr:ePort.
  • O gazdă externă (hAddr:oricare) poate trimite pachete către iAddr:iPort trimițând pachete către eAddr:ePort numai dacă iAddr:iPort a trimis anterior un pachet către hAddr:Orice. „Orice” înseamnă că numărul portului nu contează.
Con restricționat NAT.svg
NAT cu porturi restricționate La fel ca un con restricționat pentru adresă NAT, dar restricția include numerele de porturi.
  • Odată ce o adresă internă (iAddr:iPort) este mapată la o adresă externă (eAddr:ePort), toate pachetele de la iAddr:iPort sunt trimise prin eAddr:ePort.
  • O gazdă externă (hAddr:hPort) poate trimite pachete către iAddr:iPort trimițând pachete către eAddr:ePort numai dacă iAddr:iPort a trimis anterior un pachet către hAddr:hPort.
Port restricționat Con NAT.svg
NAT simetric
  • Combinația dintre o adresă IP internă plus o adresă IP și un port de destinație este mapată la o singură adresă IP și port unic sursă externă; dacă aceeași gazdă internă trimite un pachet chiar și cu aceeași adresă sursă și port, dar către o destinație diferită, se folosește o mapare diferită.
  • Doar o gazdă externă care primește un pachet de la o gazdă internă poate trimite un pachet înapoi.
NAT simetric.svg

Multe implementări NAT combină aceste tipuri, deci este mai bine să faceți referire la comportamentul NAT individual specific în loc să folosiți terminologia con/simetrică. RFC 4787 încearcă să atenueze confuzia prin introducerea unei terminologii standardizate pentru comportamentele observate. Pentru primul punct din fiecare rând al tabelului de mai sus, RFC ar caracteriza NAT-urile Full-Cone, Restricted-Cone și Port-Restricted Cone ca având un Mapare independentă de punct final, în timp ce ar caracteriza un NAT simetric ca având un Maparea în funcție de adresă și port. Pentru al doilea marcator din fiecare rând al tabelului de mai sus, RFC 4787 ar eticheta, de asemenea, NAT Full-Cone ca având un Filtrare independentă de punct final, Restricted-Cone NAT ca având un Filtrare în funcție de adresă, Port-Restricted Cone NAT ca având un Filtrare în funcție de adresă și port, și NAT simetric ca având fie un Filtrare în funcție de adresă or Filtrare în funcție de adresă și port. Alte clasificări ale comportamentului NAT menționate în RFC includ dacă acestea păstrează porturile, când și cum sunt reîmprospătate mapările, dacă mapările externe pot fi utilizate de gazde interne (adică, agrafarea părului comportamentul) și nivelul de determinism pe care NAT-urile manifestă atunci când aplică toate aceste reguli. Mai exact, majoritatea NAT-urilor se combină NAT simetric pentru conexiuni de ieșire cu static maparea portului, unde pachetele primite adresate adresei externe și portului sunt redirecționate către o anumită adresă și port intern.

Tip de traversare NAT și NAT, rolul de conservare a portului pentru TCP

Traversarea NAT problema apare atunci când colegii din spatele diferitelor NAT încearcă să comunice. O modalitate de a rezolva această problemă este utilizarea port forwarding. O altă modalitate este de a folosi diferite tehnici de traversare NAT. Cea mai populară tehnică pentru traversarea TCP NAT este Perforare TCP.

Perforarea TCP necesită ca NAT să urmeze conservarea porturilor proiectare pentru TCP. Pentru o anumită comunicare TCP de ieșire, aceleași numere de port sunt utilizate pe ambele părți ale NAT. Păstrarea portului NAT pentru conexiunile TCP de ieșire este crucială pentru traversarea TCP NAT, deoarece, sub TCP, un port poate fi utilizat doar pentru o comunicare la un moment dat, astfel încât programele leagă socket-uri TCP distincte la porturi efemere pentru fiecare comunicare TCP, făcând imposibilă predicția portului NAT pentru TCP.

Pe de altă parte, pentru UDP, NAT-urile nu au nevoie de conservarea portului. Într-adevăr, mai multe comunicații UDP (fiecare cu un punct final) poate apărea pe același port sursă, iar aplicațiile reutiliza de obicei același socket UDP pentru a trimite pachete către gazde distincte. Acest lucru face predicția portului simplă, deoarece este același port sursă pentru fiecare pachet.

În plus, păstrarea porturilor în NAT pentru TCP permite protocoalelor P2P să ofere mai puțină complexitate și mai puțină latență, deoarece nu este nevoie să folosiți o terță parte (cum ar fi STUN) pentru a descoperi portul NAT, deoarece aplicația în sine cunoaște deja portul NAT.

Cu toate acestea, dacă două gazde interne încearcă să comunice cu aceeași gazdă externă folosind același număr de port, NAT poate încerca să utilizeze o adresă IP externă diferită pentru a doua conexiune sau poate fi necesar să renunțe la conservarea portului și să remapeze portul.: 9 

Ca de 2006, aproximativ 70% dintre clienții din P2P rețelele au folosit o formă de NAT.

Punerea în aplicare

Stabilirea unei comunicări în două sensuri

În NAT bidirecțional, sesiunea poate fi stabilită atât din interior, cât și din exterior.

Fiecare pachet TCP și UDP conține un număr de port sursă și un număr de port destinație. Fiecare dintre aceste pachete este încapsulat într-un pachet IP, al cărui antet IP conține o adresă IP sursă și o adresă IP destinație. Adresa IP/protocol/număr de port triplu definește o asociere cu a priza de retea.

Pentru serviciile accesibile public, cum ar fi serverele web și de e-mail, numărul portului este important. De exemplu, portul 80 se conectează printr-o priză la server de web software și portul 25 la un server de e-mail SMTP daemon. Adresa IP a unui server public este de asemenea importantă, similară ca unicitate globală cu o adresă poștală sau un număr de telefon. Atât adresa IP, cât și numărul portului trebuie să fie cunoscute corect de toate gazdele care doresc să comunice cu succes.

Adresele IP private, așa cum sunt descrise în RFC 1918, sunt utilizabile numai în rețelele private care nu sunt conectate direct la internet. Porturile sunt puncte finale de comunicare unice pentru gazda respectivă, astfel încât o conexiune prin dispozitivul NAT este menținută prin maparea combinată a portului și a adresei IP. O adresă privată din interiorul NAT este mapată la o adresă publică externă. Traducerea adresei de port (PAT) rezolvă conflictele care apar atunci când mai multe gazde folosesc același număr de port sursă pentru a stabili conexiuni externe diferite în același timp.

Analogie cu extensia numărului de telefon

Un dispozitiv NAT este similar cu un sistem telefonic de la un birou care are un număr de telefon public și mai multe extensii. Apelurile telefonice efectuate de la birou par să provină de la același număr de telefon. Cu toate acestea, un apel primit care nu specifică o extensie nu poate fi transferat automat unei persoane din birou. În acest scenariu, biroul este un LAN privat, numărul de telefon principal este adresa IP publică, iar extensiile individuale sunt numere de port unice.

Procesul de traducere

Cu NAT, toate comunicațiile trimise către gazde externe conțin de fapt extern Adresa IP și informațiile de port ale dispozitivului NAT în loc de adresele IP interne ale gazdei sau numerele de port. NAT traduce doar adresele IP și porturile gazdelor sale interne, ascunzând adevăratul punct final al unei gazde interne într-o rețea privată.

Când un computer din rețeaua privată (internă) trimite un pachet IP către rețeaua externă, dispozitivul NAT înlocuiește adresa IP sursă internă din antetul pachetului cu adresa IP externă a dispozitivului NAT. PAT poate atribui conexiunii un număr de port dintr-un grup de porturi disponibile, inserând acest număr de port în câmpul portului sursă. Pachetul este apoi redirecționat către rețeaua externă. Dispozitivul NAT face apoi o intrare într-un tabel de traducere care conține adresa IP internă, portul sursă original și portul sursă tradus. Pachetele ulterioare din aceeași adresă IP sursă internă și număr de port sunt traduse în aceeași adresă IP și număr de port sursă externă. Calculatorul care primește un pachet care a fost supus NAT stabilește o conexiune la portul și adresa IP specificate în pachetul modificat, indiferent de faptul că adresa furnizată este în curs de traducere.

La primirea unui pachet de la rețeaua externă, dispozitivul NAT caută în tabelul de traducere pe baza portului de destinație din antetul pachetului. Dacă se găsește o potrivire, adresa IP de destinație și numărul portului sunt înlocuite cu valorile găsite în tabel și pachetul este redirecționat către rețeaua internă. În caz contrar, dacă numărul portului de destinație al pachetului de intrare nu este găsit în tabelul de traducere, pachetul este abandonat sau respins deoarece dispozitivul PAT nu știe unde să-l trimită.

Vizibilitatea funcționării

Operarea NAT este de obicei transparentă atât pentru gazdele interne, cât și pentru cele externe. Dispozitivul NAT poate funcționa ca gateway implicit pentru gazda internă care este de obicei conștientă de adresa IP adevărată și portul TCP sau UDP al gazdei externe. Cu toate acestea, gazda externă este conștientă doar de adresa IP publică a dispozitivului NAT și de portul special utilizat pentru a comunica în numele unei anumite gazde interne.

aplicatii

Rutare
Traducerea adreselor de rețea poate fi utilizată pentru a atenua suprapunerea adreselor IP. Suprapunerea adreselor apare atunci când gazdele din rețele diferite cu același spațiu de adrese IP încearcă să ajungă la aceeași gazdă de destinație. Aceasta este de cele mai multe ori o configurație greșită și poate rezulta din fuziunea a două rețele sau subrețele, mai ales când se utilizează RFC 1918 rețea privată adresarea. Gazda destinație experimentează traficul care aparent sosește din aceeași rețea, iar routerele intermediare nu au nicio modalitate de a determina unde ar trebui să fie trimis traficul de răspuns. Soluția este fie renumerotarea pentru a elimina suprapunerea, fie traducerea adreselor de rețea.
Echilibrarea sarcinii
In client server aplicații, echilibratoare de sarcină transmite cererile client către un set de computere server pentru a gestiona volumul de lucru al fiecărui server. Traducerea adresei de rețea poate fi utilizată pentru a mapa o adresă IP reprezentativă a clusterului de servere la anumite gazde care deservesc cererea.

Tehnici aferente

IEEE Reverse Address and Port Translation (RAPT sau RAT) permite o gazdă a cărei reală Adresa IP se modifică din când în când pentru a rămâne accesibil ca server printr-o adresă IP fixă ​​de acasă. CiscoImplementarea RAPT a lui este supraîncărcarea PAT sau NAT și mapează mai multe adrese IP private la o singură adresă IP publică. Mai multe adrese pot fi mapate la o singură adresă, deoarece fiecare adresă privată este urmărită de un număr de port. PAT folosește numere unice de port sursă pe adresa IP globală interioară pentru a face distincția între traduceri. PAT încearcă să păstreze portul sursă original. Dacă acest port sursă este deja utilizat, PAT atribuie primul număr de port disponibil începând de la începutul grupului de porturi corespunzător 0–511, 512–1023 sau 1024–65535. Când nu sunt mai multe porturi disponibile și există mai multe adrese IP externe configurate, PAT trece la următoarea adresă IP pentru a încerca din nou să aloce portul sursă inițial. Acest proces continuă până când epuizează porturile disponibile și adresele IP externe.

Maparea adresei și a portului este o propunere Cisco care combină Adresa plus Port traducere cu tunelare a pachetelor IPv4 prin internă a unui furnizor de ISP IPv6 reţea. De fapt, este un (aproape) Fara stare alternativă la NAT de calitate operator și DS Lite care împinge Adresa IPv4Funcția de traducere /port (și menținerea stării NAT) în întregime în cea existentă echipamentul sediului clientului Implementarea NAT. Evitând astfel NAT444 și problemele de stare a NAT de calitate operator și oferă, de asemenea, un mecanism de tranziție pentru implementarea IPv6 nativ în același timp, cu foarte puțină complexitate adăugată.

Probleme și limitări

Gazdele din spatele routerelor activate pentru NAT nu au conectivitate end-to-end și nu poate participa la unele protocoale de internet. Servicii care necesită inițierea de TCP conexiuni din rețeaua exterioară sau care utilizează protocoale fără stat, cum ar fi cele care utilizează UDP, poate fi perturbat. Cu excepția cazului în care routerul NAT face un efort specific pentru a suporta astfel de protocoale, pachetele primite nu pot ajunge la destinație. Unele protocoale pot găzdui o instanță de NAT între gazdele participante („mod pasiv” FTP, de exemplu), uneori cu ajutorul unui gateway la nivel de aplicație (A se vedea § Aplicatii afectate de NAT), dar eșuează atunci când ambele sisteme sunt separate de internet prin NAT. Utilizarea NAT se complică de asemenea protocoale de tunelare precum IPsec deoarece NAT modifică valorile din anteturi care interferează cu verificările de integritate efectuate de IPsec și alte protocoale de tunel.

Conectivitatea end-to-end a fost un principiu de bază al Internetului, susținut, de exemplu, de Consiliul de arhitectură a internetului. Documentele actuale de arhitectură pe Internet observă că NAT este o încălcare a principiul de la capăt la capăt, dar acel NAT are un rol valid în proiectarea atentă. Există o preocupare considerabil mai mare cu utilizarea NAT IPv6 și mulți arhitecți IPv6 cred că IPv6 a fost destinat să elimine necesitatea NAT.

O implementare care urmărește doar porturile poate fi epuizată rapid de aplicațiile interne care utilizează mai multe conexiuni simultane, cum ar fi un HTTP solicitarea unei pagini web cu multe obiecte încorporate. Această problemă poate fi atenuată prin urmărirea adresei IP de destinație în plus față de portul, partajând astfel un singur port local cu multe gazde la distanță. Această urmărire suplimentară crește complexitatea implementării și resursele de calcul la dispozitivul de traducere.

Deoarece adresele interne sunt toate mascate în spatele unei adrese accesibile publicului, este imposibil ca gazdele externe să inițieze direct o conexiune la o anumită gazdă internă. Aplicații precum VOIP, videoconferinta, și alte aplicații peer-to-peer trebuie să utilizeze Traversarea NAT tehnici de funcționare.

Fragmentare și sume de control

Pure NAT, care operează numai pe IP, poate sau nu să analizeze corect protocoalele cu încărcături utile care conțin informații despre IP, cum ar fi ICMP. Acest lucru depinde dacă sarcina utilă este interpretată de o gazdă pe în interiorul or exterior a traducerii. Protocoale de bază ca TCP și UDP nu poate funcționa corect decât dacă NAT ia măsuri dincolo de nivelul rețelei.

Pachetele IP au o sumă de control în fiecare antet de pachet, care oferă detectarea erorilor numai pentru antet. Datagramele IP pot deveni fragmentate și este necesar ca un NAT să reasamblați aceste fragmente pentru a permite recalcularea corectă a sumelor de control de nivel superior și urmărirea corectă a pachetelor care aparțin cărei conexiuni.

TCP și UDP, au o sumă de control care acoperă toate datele pe care le transportă, precum și antetul TCP sau UDP, plus un pseudo-antet care conține adresele IP sursă și destinație ale pachetului care poartă antetul TCP sau UDP. Pentru ca un NAT de origine să treacă cu succes TCP sau UDP, trebuie să recalculeze suma de control antet TCP sau UDP pe baza adreselor IP traduse, nu pe cele originale, și să pună acea sumă de control în antetul TCP sau UDP al primului pachet al setului fragmentat. de pachete.

Alternativ, gazda de origine poate funcționa calea MTU Discovery pentru a determina dimensiunea pachetului care poate fi transmis fără fragmentare și apoi setați nu fragmentați (DF) bit în câmpul de antet al pachetului corespunzător. Aceasta este doar o soluție unidirecțională, deoarece gazda care răspunde poate trimite pachete de orice dimensiune, care pot fi fragmentate înainte de a ajunge la NAT.

Termeni variante

DNAT

Traducerea adresei rețelei de destinație (DNAT) este o tehnică de schimbare transparentă a destinației Adresa IP a unui pachet rutat și efectuând funcția inversă pentru orice răspuns. Orice router situat între două puncte finale poate efectua această transformare a pachetului.

DNAT este folosit în mod obișnuit pentru a publica un serviciu situat într-o rețea privată pe o adresă IP accesibilă public. Această utilizare a DNAT se mai numește port forwarding, Sau DMZ atunci când este folosit pe un întreg serverul, care devine expus la WAN, devenind analog cu un militar neapărat zonă demilitarizată (DMZ).

SNAT

Sensul termenului SNAT variază în funcție de furnizor:

  • sursa NAT este o expansiune comună și este omologul lui destinație NAT (DNAT). Acesta este folosit pentru a descrie NAT unu-la-mulți; NAT pentru conexiunile de ieșire la serviciile publice.
  • NAT cu stare este folosit de Cisco Systems
  • NAT static este folosit de WatchGuard
  • NAT securizat este folosit de Rețele F5 și de către Microsoft (în ceea ce privește ISA Server)

Traducerea securizată a adreselor de rețea (SNAT) face parte din Microsoft Internet Security and Acceleration Server și este o extensie a driverului NAT încorporat în Microsoft Windows Server. Oferă urmărirea și filtrarea conexiunilor pentru conexiunile de rețea suplimentare necesare pentru FTP, ICMP, H.323, și PPTP protocoale precum și capacitatea de a configura un HTTP transparent server proxy.

Traducere dinamică a adreselor de rețea

Cum funcționează NAT dinamic.

NAT dinamic, la fel ca NAT static, nu este obișnuit în rețelele mai mici, dar se găsește în cadrul corporațiilor mai mari cu rețele complexe. În cazul în care NAT static oferă o mapare internă a adreselor IP statice unu-la-unu, NAT dinamic utilizează o grup de adrese IP publice.

Agrafarea NAT

Agrafarea NAT, de asemenea cunoscut ca si Loopback NAT or Reflecția NAT, este o caracteristică a multor routere de consum unde o mașină pe LAN este capabil să acceseze o altă mașină pe LAN prin adresa IP externă a LAN/routerului (cu redirecționarea portului configurată pe router pentru a direcționa cererile către mașina corespunzătoare din LAN). Această noțiune este descrisă oficial în 2008, RFC 5128.

Următorul descrie un exemplu de rețea:

  • Adresa publica: 203.0.113.1. Aceasta este adresa WAN interfață pe router.
  • Adresa internă a routerului: 192.168.1.1
  • Adresa serverului: 192.168.1.2
  • Adresa unui computer local: 192.168.1.100

Dacă un pachet este trimis către 203.0.113.1 de un computer la 192.168.1.100, pachetul ar fi în mod normal direcționat către Gateway implicit (routerul) Un router cu caracteristica loopback NAT detectează asta 203.0.113.1 este adresa interfeței sale WAN și tratează pachetul ca și cum ar veni de la acea interfață. Acesta determină destinația pentru acel pachet, pe baza regulilor DNAT (port forwarding) pentru destinație. Dacă datele au fost trimise la portul 80 și există o regulă DNAT pentru portul 80 direcționat către 192.168.1.2, atunci gazda de la acea adresă primește pachetul.

Dacă nu este disponibilă nicio regulă DNAT aplicabilă, routerul renunță la pachet. Un Destinație ICMP inaccesabilă răspunsul poate fi trimis. Dacă au existat reguli DNAT, traducerea adresei este încă în vigoare; routerul rescrie în continuare adresa IP sursă în pachet. Calculatorul local (192.168.1.100) trimite pachetul ca provenind de la 192.168.1.100, dar serverul (192.168.1.2) îl primește ca provenind de la 203.0.113.1. Când serverul răspunde, procesul este identic cu un expeditor extern. Astfel, comunicarea bidirecțională este posibilă între gazdele din interiorul rețelei LAN prin adresa IP publică.

NAT în IPv6

Traducerea adreselor de rețea nu este folosită în mod obișnuit în IPv6 deoarece unul dintre obiectivele de proiectare ale IPv6 este restabilirea conectivității la rețea de la capăt la capăt. Spațiul mare de adrese IPv6 evită necesitatea de a conserva adrese și fiecărui dispozitiv i se poate atribui o adresă unică, rutabilă la nivel global. Utilizarea de adrese locale unice in combinatie cu traducerea prefixului de rețea poate obține rezultate similare cu NAT.

Spațiul mare de adresare al IPv6 poate fi încă învins în funcție de lungimea reală a prefixului dată de operator. Nu este neobișnuit să vi se înmâneze un prefix /64 – cea mai mică subrețea recomandată – pentru o întreagă rețea de domiciliu, necesitând utilizarea unei varietăți de tehnici pentru a subdiviza manual intervalul pentru ca toate dispozitivele să rămână accesibile. Chiar și NAT real de la IPv6 la IPv6, NAT66, se poate dovedi util uneori: blogul APNIC subliniază un caz în care autorului i-a fost furnizată doar o singură adresă (/128).

Aplicații afectate de NAT

niste strat de aplicație protocoale, cum ar fi Protocolul de transfer de fișiere (FTP) și Protocolul de inițiere a sesiunii (SIP), trimit adrese de rețea explicite în datele aplicației lor. FTP în modul activ, de exemplu, utilizează conexiuni separate pentru controlul traficului (comenzi) și pentru traficul de date (conținutul fișierului). Atunci când solicită un transfer de fișiere, gazda care face cererea identifică conexiunea de date corespunzătoare prin intermediul acesteia strat de rețea și stratul de transport adrese. Dacă gazda care face cererea se află în spatele unui firewall NAT simplu, traducerea adresei IP sau a numărului portului TCP face ca informațiile primite de server să fie invalide. SIP controlează de obicei voce peste IP apeluri și suferă aceeași problemă. SIP și însoțitorul acestuia Protocolul de descriere a sesiunii poate folosi mai multe porturi pentru a configura o conexiune și a transmite fluxul de voce prin Protocol de transport în timp real. Adresele IP și numerele de porturi sunt codificate în datele de încărcare utilă și trebuie cunoscute înainte de parcurgerea NAT-urilor. Fără tehnici speciale, precum STUN, comportamentul NAT este imprevizibil și comunicațiile pot eșua. Application Layer Gateway Software-ul sau hardware-ul (ALG) pot corecta aceste probleme. Un modul software ALG care rulează pe un dispozitiv firewall NAT actualizează orice date de încărcare utilă invalide prin traducerea adresei. ALG-urile trebuie să înțeleagă protocolul de nivel superior pe care trebuie să-l repare și, astfel, fiecare protocol cu ​​această problemă necesită un ALG separat. De exemplu, pe multe sisteme Linux, există module de kernel numite trackere de conexiune care servesc la implementarea ALG-urilor. Cu toate acestea, ALG nu poate funcționa dacă datele de protocol sunt criptate.

O altă soluție posibilă la această problemă este utilizarea Traversarea NAT tehnici folosind protocoale precum STUN or Stabilirea de conectivitate interactivă (ICE), sau abordări proprietare în a controlor de frontieră de sesiune. Traversarea NAT este posibilă atât în ​​aplicațiile bazate pe TCP, cât și pe UDP, dar tehnica bazată pe UDP este mai simplu, mai larg înțeles și mai compatibil cu NAT-urile vechi.[citare] În ambele cazuri, protocolul de nivel înalt trebuie să fie proiectat ținând cont de traversarea NAT și nu funcționează în mod fiabil între NAT-uri simetrice sau alte NAT-uri moștenite cu un comportament prost.

Alte posibilitati sunt Internet Gateway Device Protocol, Protocol NAT Port Mapping (NAT-PMP), sau Protocolul de control al porturilor (PCP), dar acestea necesită ca dispozitivul NAT să implementeze acel protocol.

Majoritatea protocoalelor client-server (FTP fiind principala excepție), cu toate acestea, nu trimit informații de contact de nivel 3 și nu necesită niciun tratament special din partea NAT-urilor. De fapt, evitarea complicațiilor NAT este practic o cerință atunci când se proiectează astăzi noi protocoale de nivel superior.

NAT-urile pot cauza, de asemenea, probleme unde IPsec se aplică criptarea și în cazurile în care mai multe dispozitive precum Telefoane SIP sunt situate în spatele unui NAT. Telefoanele care își criptează semnalizarea cu IPsec încapsulează informațiile de port într-un pachet criptat, ceea ce înseamnă că dispozitivele NAT nu pot accesa și traduce portul. În aceste cazuri, dispozitivele NAT revin la operațiuni NAT simple. Aceasta înseamnă că tot traficul care se întoarce la NAT este mapat pe un singur client, determinând eșecul serviciului către mai mult de un client din spatele NAT. Există câteva soluții la această problemă: una este utilizarea TLS, care operează la stratul 4 și nu maschează numărul portului; altul este să încapsuleze IPsec-ul în interior UDP – aceasta din urmă fiind soluția aleasă de TISPAN pentru a realiza traversarea NAT securizată sau un NAT cu „IPsec Passthru” a sustine; alta este să folosești a controlor de frontieră de sesiune pentru a ajuta la traversarea NAT.

Stabilirea de conectivitate interactivă este o tehnică de traversare NAT care nu se bazează pe suport ALG.

Vulnerabilitatea protocolului DNS anunțată de Dan Kaminsky pe 8 iulie 2008, este afectat indirect de maparea portului NAT. A evita Otrăvire cache DNS, este foarte de dorit să nu traduceți numerele de port sursă UDP ale solicitărilor DNS de ieșire de la un server DNS în spatele unui firewall care implementează NAT. Soluția recomandată pentru vulnerabilitatea DNS este de a face ca toate serverele DNS de stocare în cache să utilizeze porturi aleatorii UDP sursă. Dacă funcția NAT derandomizează porturile sursă UDP, serverul DNS devine vulnerabil.

Exemple de software NAT

Vezi si

notițe

  1. ^ Majoritatea dispozitivelor NAT de astăzi permit administratorului de rețea să configureze intrări statice în tabelul de traducere pentru conexiunile de la rețeaua externă la rețeaua internă mascarată. Această caracteristică este adesea denumită NAT static. Poate fi implementat în două tipuri: port forwarding care redirecționează traficul de la un anumit port extern către o gazdă internă pe un anumit port și desemnarea unui Gazdă DMZ care transmite tot traficul primit pe interfața externă (pe orice număr de port) către o adresă IP internă, păstrând în același timp portul de destinație. Ambele tipuri pot fi disponibile în același dispozitiv NAT.
  2. ^ Aranjamentul mai obișnuit este de a avea computere care necesită conectivitate end-to-end furnizate cu o adresă IP rutabilă, în timp ce au altele care nu oferă servicii utilizatorilor externi în spatele NAT cu doar câteva adrese IP utilizate pentru a permite accesul la Internet.
  3. ^ Numerele porturilor sunt numere întregi de 16 biți. Numărul total de adrese interne care pot fi traduse într-o singură adresă externă ar putea ajunge, teoretic, la 65,536 per adresă IP. În mod realist, numărul de porturi cărora li se poate atribui o singură adresă IP este de aproximativ 4000.
  4. ^ Cu excepția cazului în care o rută explicită este setată în computer rutare tabele.
  5. ^ Această problemă poate fi evitată prin utilizarea SFTP în loc de FTP

Referinte

  1. ^ Manual de protocoale de rețea (2 ed.). Javvin Technologies Inc. 2005. p. 27. ISBN 9780974094526. regăsit 2014-09-16.
  2. ^ a b c d e f g h François Audet; Cullen Jennings (ianuarie 2007). Cerințe comportamentale de traducere a adresei de rețea (NAT) pentru Unicast UDP. IETF. doi:10.17487/RFC4787. RFC 4787.
  3. ^ a b Aripă, Dan (2010-07-01). „Traducerea adreselor de rețea: extinderea spațiului de adrese de internet”. IEEE Internet Computing. 14 (4): 66-70. doi:10.1109/MIC.2010.96. ISSN 1089-7801. S2CID 31082389.
  4. ^ „Caracterizarea și măsurarea traversării TCP prin NAT-uri și firewall-uri”. 2006 decembrie.
  5. ^ „Iluminarea umbrelor: măsurători oportuniste de rețea și web”. Decembrie 2006. Arhivat din originală pe 2010-07-24.
  6. ^ „Ghidul expert instantaneu Audio over IP” (PDF). Tieline. ianuarie 2010. Arhivat din originală (PDF) pe 2011-10-08. regăsit 2011-08-19.
  7. ^ „Utilizarea NAT în rețele suprapuse”. august 2005.
  8. ^ „Scenariu de problemă VPN-uri cu subrețele suprapuse”. 2017 septembrie.
  9. ^ Srisuresh, Pyda; Gan, Der-Hwa (august 1998). „Partajarea încărcării utilizând traducerea adreselor de rețea IP”. doi:10.17487/RFC2391. {{cite journal}}: Jurnalul citat necesită |journal= (ajutor)
  10. ^ „Ce este echilibrarea încărcării stratului 4?”. Iunie 2020.
  11. ^ „Ce este echilibrarea încărcăturii?”. 2018 noiembrie.
  12. ^ „Configurați echilibrarea sarcinii serverului utilizând NAT dinamic”. Iunie 2018.
  13. ^ Singh, R.; Tay, YC; Teo, WT; Yeow, SW (1999). „RAT: Un impuls rapid (și murdar?) pentru sprijinul mobilității”. Proceedings WMCSA'99. Al doilea atelier IEEE privind sistemele și aplicațiile de calcul mobile. pp. 32–40. CiteSeerX 10.1.1.40.461. doi:10.1109/MCSA.1999.749275. ISBN 978-0-7695-0025-6. S2CID 7657883.
  14. ^ Bush, R.; Meyer, D. (2002). Câteva linii directoare arhitecturale și filozofie pentru Internet. IETF. doi:10.17487/RFC3439. RFC 3439.
  15. ^ Velde, G. Van de; Hain, T.; Droms, R.; Dulgher, B.; Klein, E. (2007). Protecția rețelei locale pentru IPv6. IETF. doi:10.17487/RFC4864. RFC 4864.
  16. ^ „Reziliență IP îmbunătățită folosind Cisco Stateful NAT”. Cisco.
  17. ^ „Utilizați NAT pentru acces public la serverele cu adrese IP private în rețeaua privată (exemplu de configurare WatchGuard)” (PDF). www.watchguard.com.
  18. ^ „K7820: Prezentare generală a caracteristicilor SNAT”. ÎntrebațiF5. 28 august 2007. regăsit Februarie 24, 2019.
  19. ^ „Reziliență IP îmbunătățită folosind Cisco Stateful NAT”. Cisco.
  20. ^ „Utilizați NAT pentru acces public la serverele cu adrese IP private în rețeaua privată (exemplu de configurare WatchGuard)” (PDF). www.watchguard.com.
  21. ^ „K7820: Prezentare generală a caracteristicilor SNAT”. ÎntrebațiF5. 28 august 2007. regăsit Februarie 24, 2019.
  22. ^ „NAT dinamic”. 26 ianuarie 2016. regăsit 2022-04-19.
  23. ^ „NAT dinamic”. regăsit 2022-04-19.
  24. ^ „Ce este NAT Reflection/NAT Loopback/NAT Hairpinning?”. Rețelei din NYC. 2014-11-09. regăsit 2017-04-27.
  25. ^ „Rutere NAT Loopback – OpenSim” (MediaWiki). OpenSimulator. 2013-10-21. regăsit 2014-02-21.
  26. ^ Iljitsch van Beijnum (2008). „După o rezistență fermă, NAT poate ajunge la IPv6 până la urmă”. Ars Technica. regăsit 2014-04-24.
  27. ^ Dupont, Kasper (18 aug 2015). "subrețea - subrețea IPv6 a /64 - ce se va rupe și cum să o rezolvi?". Eroare de server. regăsit 2023-04-20.
  28. ^ Cilloni, Marco (2018-02-01). „NAT66: Bunul, răul, urâtul”. Blog APNIC. regăsit 2023-04-20.
  29. ^ D. Wing, Ed; Cheshire, S.; Boucadair, M.; Penno, R.; Selkirk, P. (2013). Protocolul de control al portului (PCP). IETF. doi:10.17487/RFC6887. RFC 6887.
  30. ^ Messmer, Ellen (2008). „Defecțiunea majoră a DNS-ului ar putea perturba internetul”. Lumea rețelei. Arhivat de la originală pe 2009-02-13. regăsit 14 iunie 2021.

Link-uri externe