Dvojitý NAT a vaša VPN: klient funguje, server nie
Dva routery, ktoré prekladajú adresy, málokedy zastavia odchádzajúceho VPN klienta. Hostovanie servera za nimi je ťažšie, najmä keď je vonkajšia vrstva carrier-grade NAT.
Váš router stojí za ďalším routerom, WAN adresa je privátna a VPN klient sa napriek tomu pripojí. Táto kombinácia prekvapuje ľudí, ktorí očakávajú, že dvojitý NAT rozbije tunely, ale práve odchádzajúce spojenia preklad zvláda najlepšie. Hostovanie VPN servera za tými istými dvoma vrstvami je prípad, ktorý zvyčajne zlyháva. Nakreslite si smer spojenia, skôr než čokoľvek zmeníte.
Najprv si nakreslite smer spojenia
Otvorte stavovú stránku vnútorného routera a zapíšte jeho WAN adresu, potom ju porovnajte s adresou, ktorú vám hlási nejaká verejná služba. Ak sa obe líšia, medzi vaším routerom a internetom stojí aspoň jeden prekladač. Ak WAN adresa spadá do 100.64.0.0/10, vonkajší prekladač pravdepodobne patrí vášmu poskytovateľovi a vy ho neovládate. Tieto dva údaje rozhodujú, ktorý z ďalších krokov vôbec môže fungovať.
curl -s https://ifconfig.me
ip -brief address
traceroute -n 1.1.1.1
Dvojitý NAT nie je dvojitá VPN. Preklad prepisuje adresy a porty; nepridáva druhý šifrovaný tunel a nič nešifruje. Držať obe predstavy oddelené je dôležité, pretože riešenia sú úplne iné a jedno z nich znamená rozhovor s poskytovateľom, nie stránku nastavení.
Odchádzajúci smer: klient sa pýta, prekladače mapujú
Odchádzajúci tunel začína paketom z vášho počítača, takže každý prekladač môže vytvoriť mapovanie a pustiť odpoveď späť. Protokol, port a časovače nečinnosti rozhodujú, či to mapovanie prežije dosť dlho na to, aby bolo užitočné. Väčšina spotrebiteľských routerov to zvládne bez akejkoľvek konfigurácie.
Poruchy, ktoré sa naozaj objavujú, sa zvyčajne týkajú časových limitov a podpory protokolov, nie počtu routerov. Tunel, ktorý po niekoľkých minútach ticha spadne, je mapovanie, ktoré vyprší, a keepalive je štandardná odpoveď. IPsec má štandardné rozšírenia NAT-traversal, takže tvrdenie, že cez preklad neprejde, je jednoducho nesprávne. Ak sa tunel vôbec neustaví, pozrite sa na koncový bod a prihlasovacie údaje, skôr než obviníte topológiu.
wg show
ping -c3 10.8.0.1
Zastavte sa, ak odchádzajúci tunel funguje z jednej siete a z inej nie. To porovnanie je o sieťach, nie o počte routerov.
Prichádzajúci smer: presmerovanie pokrýva len zariadenia, ktoré vlastníte
Hostovanie servera je opačný smer: nové spojenie prichádza z internetu a musí sa dostať k vášmu počítaču cez každú vrstvu. Pravidlo presmerovania portu na vnútornom routeri pomôže len vtedy, ak vonkajší prekladač doručí ten provoz aj vám. Opakovanie miestneho pravidla vám kontrolu nad zariadeniami poskytovateľa nedá.
nc -vz 203.0.113.10 51820
ss -lunp 'sport = :51820'
Porovnajte WAN adresu vnútorného routera s verejnou adresou, ktorú ste pozorovali, a poznamenajte si, odkiaľ každá hodnota pochádza. Ak je WAN adresa privátna alebo v zdieľanom rozsahu, vonkajšia vrstva robí preklad, ktorý nemôžete nastaviť. Skôr než strávite celý večer pravidlami, ktoré nemôžu nadobudnúť účinnosť, opýtajte sa poskytovateľa, akú prichádzajúcu dostupnosť podporuje. Odobrať router alebo plošne vypnúť firewall nie je diagnóza a je to zlá výmena za jeden otvorený port.
Zastavte sa, ak vonkajšia vrstva patrí poskytovateľovi a nepresmerúva. Potom sú podporované odpovede iný spôsob prístupu alebo relay, nie ďalšie pravidlo na vašej strane.
Testujte jednu premennú po druhej
Meňte pri každom teste jednu vec a výsledok si zapisujte, pretože cesta s dvojitým NAT má viac premenných než cesta s jedným routerom. Držte profil a zariadenie pevne a potom porovnajte inú prístupovú sieť. Zaznamenajte, či zlyháva vyjednávanie, či relácia po nečinnosti spadne alebo či zlyhávajú len privátne ciele. Tieto tri pozorovania ukazujú na tri rôzne vrstvy.
journalctl -u wg-quick@wg0 -n 30 --no-pager
ip route get 10.20.30.40
Prekrývajúce sa privátne podsiete sú samostatná pasca, ktorú žiadne množstvo prekladu nespraví. Ak vaša domáca sieť a vzdialená sieť používajú rovnaký rozsah, konflikt trás sa objaví bez ohľadu na to, koľko prekladačov je medzi nimi. Prečíslovanie jednej strany je jediná trvalá odpoveď.
Vzdialená brána si zaslúži rovnakú pozornosť, pretože jej pravidlá presmerovania a spätné trasy môžu byť chýbajúcim dielom. Tunel, ktorý prejde autentifikáciou, stále nemusí mať použiteľnú cestu pre aplikácie a táto porucha vyzerá z klientskej strany rovnako. Prehliadka sa končí, keď dokážete povedať, ktorý smer zlyháva a ktorá vrstva zaň zodpovedá.