Probleme NAT și UDP (Ingineria rețelelor, Nat, Udp)

chimi a intrebat.

Am o întrebare legată de NAT, UDP și TCP.

Având în vedere un server NAT standard, este o problemă pentru acesta faptul că UDP este fără conexiune? Dacă da, de ce?

Și TCP sau QUIC rezolvă această problemă?

Comentarii

  • V-a ajutat vreun răspuns? Dacă da, ar trebui să acceptați răspunsul, astfel încât întrebarea să nu mai apară la nesfârșit, în căutarea unui răspuns. Alternativ, puteți posta și accepta propriul răspuns. –  > Por Ron Maupin.
2 răspunsuri
Zac67

UDP reprezintă o problemă pentru NAT, deoarece nu există trafic care să indice dacă o conexiune (pereche de porturi) mai este sau nu în uz. În general, rutele inverse UDP trebuie să fie îmbătrânite, spre deosebire de stările conexiunilor TCP, care pot fi de obicei urmărite prin trafic și au nevoie doar de un anumit timp de așteptare pentru curățare.

Imaginați-vă o cerere DNS: un client trimite o datagramă UDP către o adresă IP exterioară. Routerul NAT traduce adresa sursă & port și trebuie să-și amintească unde să redirecționeze orice răspuns – dar nu poate fi sigur de momentul în care răspunsurile sunt de fapt terminate. Învechirea prea rapidă a acestor intrări întrerupe mai multe protocoale, iar învechirea prea lentă irosește resursele routerului (până la punctul în care nu mai funcționează în mod fiabil).

Martin Rosenau

… faptul că udp este fără conexiune reprezintă o problemă pentru el?

Nu este vorba de faptul că UDP este fără conexiune; este vorba de întrebarea dacă NAT-ul își poate da seama de computerul de destinație al pachetelor primite.

În mod obișnuit, NAT-urile presupun că, atunci când un pachet UDP este trimis către un „server” oarecare și un pachet UDP se întoarce de la acel „server” (folosind aceleași numere de port), calculatorul care a trimis primul pachet UDP este destinatarul pachetului UDP care se întoarce.

În acest scenariu, UDP funcționează bine folosind majoritatea NAT-urilor.

Cu toate acestea, într-un scenariu în care reguli simple precum „numerele de port trebuie să se potrivească” nu funcționează, un NAT va avea probleme – chiar și în cazul TCP:

Folosind varianta originală a protocolului de transfer de fișiere (FTP), clientul stabilește o conexiune TCP la server, iar serverul stabilește o a doua conexiune TCP către client.

De obicei, acest lucru nu va funcționa atunci când clientul se află în spatele unui NAT.

Protocoalele de nivel 4 care nu sunt „cunoscute” de NAT (poate GRE, pentru unele NAT-uri poate chiar UDP!) nu vor funcționa oricum.

Și nu … QUIC rezolvă această problemă?

QUIC se bazează pe UDP și, din câte am înțeles, numerele de port ale pachetelor returnate de server corespund numerelor de port din pachetul trimis de client. Dacă un NAT acceptă UDP în modul descris mai sus, QUIC va funcționa pe acel NAT.

Tags:,