Izvorni port klijenta nasuprot poslužiteljevu slušatelju u VPN toku
Usporedite dva broja portova u jednom tunelu: fiksni slušatelj poslužitelja i kratkotrajni izvor klijenta, te kako se prevođenje usmjerivača nalazi između njih.
U istom razgovoru pojavljuju se dva broja i nijedan nije pogrešan. Poslužiteljev dnevnik pokazuje slušatelja koji nudi uslugu, prijenosnik pokazuje socket koji je poslao datagram, a usmjerivač između može prepisati drugi na izlazu. Korisnije je usporediti krajeve razgovora nego same znamenke. Usporedba ispod drži slušatelja, klijentski socket i prevedeni izvor odvojeno, jer odgovaraju na različita pitanja.
Dva broja koja opisuju suprotne krajeve
Konfigurirani port poslužitelja odredište je na koje se klijent spaja. Fiksira ga politika, pojavljuje se u profilu i mora biti otvoren na strani poslužitelja. Izvorni port klijenta bira se lokalno, obično iz efemernog raspona, i postoji kako bi odgovor imao gdje sletjeti. Može se promijeniti pri svakom ponovnom spajanju i ništa u dizajnu ne ovisi o tome da ostane stabilan.
Usmjerivač između može prepisati taj izvor u vlastito 'NAT' mapiranje. Zato broj koji se vidi na poslužitelju često nema nikakve veze s onim koji je prijenosnik odabrao.
Gdje se broj izvora mijenja na izlazu
Uzmite izmišljeni primjer s IPv4: klijent iza usmjerivača koji prevodi, poslužitelj s jednim 'UDP' slušateljem i jedan datagram koji prelazi oba. Tablica imenuje svaku krajnju točku i što se s njom događa, umjesto da ponovno pušta paket na tri mjesta promatranja.
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The NAT device or the upstream carrier |
Odredište je konstantno u svakom retku, a mijenja se samo identitet izvora. Zahtjevi UDP NAT-a razlikuju unutarnju adresu i port od vanjskog mapiranja, što je upravo razlika između drugog i trećeg retka. Usmjerivač može zadržati izvorni port klijenta ili odabrati drugi; zadržavanje nije nešto što aplikacija smije pretpostaviti.
Pročitajte tri krajnje točke s hostova samih
Popisi ispod dolaze s tri različita računala i zajedno pokazuju cijeli razgovor. Pokrenite prvi na poslužitelju, drugi na klijentu, a treći gdje god mapiranje postoji. Jedan redak dnevnika nikad ne pokazuje sva tri.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
Prvi popis dokazuje da je poslužitelj vezan za servisni port i pokazuje koji ga proces drži. Drugi pokazuje lokalni socket klijenta i odredište na koje se spojio. Treći pokazuje mapiranje koje je usmjerivač stvorio, a to je jedino mjesto gdje se prevedeni izvor pojavljuje. Čitajte ih tim redom i dva broja prestaju izgledati proturječno.
Što ponovno spajanje mijenja, a što ne
Neki usmjerivači zadrže izvorni port klijenta kad je slobodan, a neki svaki put dodijele drugi. Oba su ponašanja normalna, a aplikacija koja zahtijeva prvo slomit će se na drugom. Promjena mapiranja nakon ponovnog spajanja ili promjene mreže nije kvar poslužitelja: klijent otvara novi socket, usmjerivač dodjeljuje što ima, a poslužitelj vidi novi izvor na istom slušatelju. Kvar bi bio očekivati da poslužitelj prihvati promet adresiran na proizvoljan klijentski port.
Klijenti iz zajednice OpenVPN dobivaju ovo ponašanje kroz nobind, što operativnom sustavu prepušta izbor lokalnog porta; udaljeni port i dalje dolazi iz profila. Izričito vezivanje svjestan je odabir, a ne zahtjev protokola. Poslužitelj nastavlja nuditi jednu krajnju točku dok klijenti biraju vlastite lokalne identitete.
Označite slojeve odvojeno u zapisu
Unutar tunela postoji drugi razgovor s vlastitim portovima. HTTPS zahtjev koji tunel nosi ima odredište TCP 443, dok vanjska šifrirana veza koristi UDP 1194, pa promjena vanjskog izvornog porta ne mijenja ništa na unutarnjoj usluzi.
Čak i na vanjskom sloju protokol je važan. UDP 1194 i TCP 1194 različite su krajnje točke i 'TCP' slušatelj nikada neće primiti UDP datagram zato što se broj poklapa. Kad dokumentirate postavljanje, označite poslužiteljev slušatelj, klijentski socket i prevedeni izvor kao tri različite stvari i dodajte transport svakoj.
Zatim neka politika prati uloge. Poslužitelj otvara predviđeni transport na svom slušatelju i dalje provjerava identitet druge strane; klijentov vatrozid propušta odgovore na vlastitu odlaznu razmjenu bez objavljivanja dolazne usluge. Filter bez stanja treba izričito napisan povratni smjer, i to je praktični razlog zašto razlika vrijedi i izvan urednih dijagrama.