Dvostruki NAT i vaš VPN: klijent radi, server ne
Dva rutera koja prevode adrese rijetko zaustavljaju odlazni VPN klijent. Hostovanje servera iza njih je teže, posebno kada je vanjski sloj carrier-grade NAT.
Vaš ruter stoji iza drugog rutera, WAN adresa je privatna, a VPN klijent se ipak povezuje. Ta kombinacija iznenađuje ljude koji očekuju da će dvostruki NAT pokvariti tunele, ali odlazne veze su upravo ono što prevođenje najbolje rješava. Hostovanje VPN servera iza istih tih dvaju slojeva je slučaj koji obično propada. Nacrtajte smjer veze prije nego što bilo šta promijenite.
Prvo nacrtajte smjer veze
Otvorite statusnu stranicu unutrašnjeg rutera i zapišite njegovu WAN adresu, pa je uporedite s adresom koju vam prijavi javna usluga. Ako se dvije razlikuju, između vašeg rutera i interneta stoji barem jedan prevodilac. Ako WAN adresa pada unutar 100.64.0.0/10, vanjski prevodilac vjerovatno pripada vašem provajderu i vi ga ne kontrolišete. Te dvije činjenice odlučuju koji od kasnijih koraka uopšte može uspjeti.
curl -s https://ifconfig.me
ip -brief address
traceroute -n 1.1.1.1
Dvostruki NAT nije dvostruki VPN. Prevođenje prepisuje adrese i portove; ono ne dodaje drugi šifrovani tunel i ništa ne šifruje. Razdvajanje tih dviju ideja je važno jer su rješenja potpuno različita, a jedno od njih uključuje razgovor s vašim provajderom, a ne stranicu s postavkama.
Odlazni smjer: klijent pita, prevodioci mapiraju
Odlazni tunel počinje paketom s vaše mašine, pa svaki prevodilac može stvoriti mapiranje i pustiti odgovor natrag. Protokol, port i tajmeri mirovanja odlučuju hoće li to mapiranje preživjeti dovoljno dugo da bude korisno. Većina potrošačkih rutera to rješava bez ikakve konfiguracije.
Kvarovi koji se zaista pojavljuju obično se tiču vremenskih ograničenja i podrške za protokole, a ne broja rutera. Tunel koji padne nakon nekoliko minuta tišine je mapiranje koje ističe, a keepalive je standardni odgovor. IPsec ima standardna NAT-traversal proširenja, pa je tvrdnja da ne može proći kroz prevođenje jednostavno netačna. Ako se tunel uopšte ne uspostavi, pogledajte krajnju tačku i akreditive prije nego što okrivite topologiju.
wg show
ping -c3 10.8.0.1
Zaustavite se ako odlazni tunel radi s jedne mreže, a s druge ne. To poređenje se odnosi na mreže, a ne na broj rutera.
Dolazni smjer: prosljeđivanje pokriva samo opremu koju posjedujete
Hostovanje servera je obrnut smjer: nova veza dolazi s interneta i mora doći do vaše mašine kroz svaki sloj. Pravilo za prosljeđivanje porta na unutrašnjem ruteru pomaže samo ako i vanjski prevodilac taj saobraćaj dostavi vama. Ponavljanje lokalnog pravila ne daje kontrolu nad opremom provajdera.
nc -vz 203.0.113.10 51820
ss -lunp 'sport = :51820'
Uporedite WAN adresu unutrašnjeg rutera s javnom adresom koju ste primijetili i zabilježite odakle dolazi svaka vrijednost. Ako je WAN adresa privatna ili u dijeljenom opsegu, vanjski sloj obavlja prevođenje koje ne možete konfigurisati. Pitajte provajdera koju dolaznu dostupnost podržava prije nego što potrošite cijelu večer na pravila koja ne mogu stupiti na snagu. Uklanjanje rutera ili široko isključivanje firewall-a nije dijagnoza i loša je trgovina za jedan otvoreni port.
Zaustavite se ako vanjski sloj pripada provajderu i ne prosljeđuje. Tada su podržani odgovori drugi način pristupa ili relay, a ne još jedno pravilo na vašoj strani.
Testirajte jednu varijablu odjednom
Mijenjajte jednu stvar po testu i bilježite rezultat, jer put s dvostrukim NAT-om ima više varijabli od puta s jednim ruterom. Držite profil i uređaj fiksnima, pa uporedite drugu pristupnu mrežu. Zabilježite da li pregovaranje ne uspijeva, da li sesija pada nakon mirovanja ili da li ne uspijevaju samo privatna odredišta. Ta tri zapažanja upućuju na tri različita sloja.
journalctl -u wg-quick@wg0 -n 30 --no-pager
ip route get 10.20.30.40
Preklapajuće privatne podmreže su odvojena zamka koju nikakva količina prevođenja ne ispravlja. Ako vaša kućna mreža i udaljena mreža koriste isti opseg, sukob ruta se pojavljuje bez obzira na to koliko prevodilaca stoji između. Prenumerisanje jedne strane jedini je trajni odgovor.
Udaljeni gateway zaslužuje istu pažnju, jer njegova pravila prosljeđivanja i povratne rute mogu biti dio koji nedostaje. Tunel koji prođe autentifikaciju i dalje može nemati upotrebljivu putanju za aplikacije, a taj kvar s klijentske strane izgleda identično. Šetnja se završava kada možete reći koji smjer ne radi i koji sloj je za njega odgovoran.