Răspuns scurt: Urmărirea conexiunii NAT
Un lucru de reținut este că marea majoritate a routerelor de pe internetul IPv4 sunt routere NAT.
Majoritatea implementărilor NAT fac urmărire inteligentă, când trimiteți UDP de la un client intern undeva, veți avea un Port de destinație și un Port sursă.
Dacă traficul vine cu porturile inversate, atunci traficul va fi direcționat înapoi către clientul dvs. și va fi permis în majoritatea firewall-urilor.
NAT/Firewall-urile cu urmărire detectează aceste pachete ca fiind legate și le redirecționează.
Exemplu bazat pe comentarii cu Server
pe port 5000
UDP
- Clientul trimite un pachet pentru
server: 5000
, sursă client:5001
- Primul router NAT va vedea un pachet cu ip sursă și portul de
client:5001
, și destinație server: 5000
.
- Routerul trimite acest lucru pe drum și va avea
NATtip:NATport
- Serverul primește acest lucru și creează un răspuns la
NATtip:NATport
care are sursa de server: 5000
- NAT primește acest lucru și are sursă
server: 5000
destinaţie NATtip:NATport
, care se potrivește cu pachetul care a fost trimis (dar are sursa și destinația inversate)
- NAT trimite acest lucru la
client:5001
inca cu sursa server: 5000
Sursa ip+port și destinație ip+port creează o combinație care poate fi urmărită. (sunt mai multe detalii, dar acestea sunt elementele de bază)
Mai multe lectură Dar ar trebui să aflu o documentație mai bună despre asta și să nu mă refer doar la dovezi anecdotice din ceea ce am văzut experimentat.