Du namų maršrutizatoriai, jokie persiųsti prievadai ir VPN, kuris kartais vis tiek prisijungia. UDP tai leidžia, nes ugniavimo sienelė praleis paketą, kurį gali suderinti su srautu, kurį mašina jau pradėjo. Tai sąlyginis triukas, o ne funkcija, ir sąlygas lengva išvardyti, kai žinai, ką ugniasienė lygina. Tai ir priežastis, kodėl vienodi profiliai skirtinguose tinkluose elgiasi skirtingai.

Palyginimas, kurį atlieka ugniasienė

Kiekvienas išeinantis datagramas sukuria trumpalaikį įrašą: šaltinio adresas, šaltinio prievadas, paskirties adresas, paskirties prievadas. Viskas, kas ateina ir atitinka įrašą, laikoma atsakymu ir praleidžiama. Įeinančio srauto taisyklės čia nieko nelemia.

Taigi klausimas ne tas, ar ugniasienė įleidžia partnerį. Klausimas tas, ar partnerio paketas atrodo kaip atsakymas, kurio laukia įrašas. Pakeiskite vieną to keturių dalių kortežo lauką ir paketas tampa svetimas. Todėl veikianti konfigūracija gali sugesti, kai pasikeičia tik prievado numeris, ir todėl tas pats prievadas gali veikti viename maršrutizatoriuje ir nepavykti kitame.

Užfiksuokite vietinį šaltinio prievadą ir tas pats numeris atsiras abiejose mainų pusėse. Tai yra visas mechanizmas, ir tai paaiškina, kodėl triukas trapus, o ne paslaptingas.

Vieno prievado užfiksavimas kiekviename gale

Numatytasis OpenVPN UDP prievadas yra 1194, o lport nustato šaltinio prievadą, iš kurio siunčiama. Užfiksuokite abu partnerius ir kiekvieno išeinantis kortežas rodys į prievadą, kuriame klausosi kitas:

# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194

Tai veikia tik tol, kol joks maršrutizatorius tarp jų neperrašo šaltinio prievado. Kai paketai pasirodo įraše, bet tunelis nepakyla, perrašymas yra pirmasis įtariamasis.

Kur kortežas nustoja atitikti

NAT, kuris susieja pagal paskirties vietą, kiekvienam partneriui duoda skirtingą išorinį prievadą. Adresas, kurį partneriui liepta naudoti, nėra adresas, kuris jį pasiekia, todėl įeinantis paketas nieko neatitinka ir tyliai išmetamas.

Operatoriaus lygmens vertimas, sluoksniuotas NAT ir prievadų atsitiktinumas baigiasi vienodai. Taip pat bet kokia tarpinė dėžutė, kuri perrašo prievadus, o adresus palieka ramybėje.

Srautiniams pervežimams blogiau. TCP rankos paspaudimas sekamas žingsnis po žingsnio, todėl TCP pagrindu veikiantis VPN šiuo būdu visiškai negali būti pramuštas ir jam reikia klausytojo kažkur kelyje.

Paprastai viena pusė nepavyksta pirmoji

Praktiškai du tinklai retai elgiasi vienodai. Vienas maršrutizatorius gali duoti nuspėjamą susiejimą, o kitas – prievadus pagal paskirties vietą, ir rezultatas yra konfigūracija, kuri veikia tarp dviejų namų ir nepavyksta iš mobiliojo tinklo. Vienas kitam prieštaraujantys pranešimai paprastai aprašo dvi skirtingas maršrutizatorių poras. Nė vienas autorius neklysta, ir nė vienas rezultatas nėra apibendrinamas.

Prieš liesdami profilius išsiaiškinkite, kuri pusė numetė paketą. Įrašai abiejuose galuose tai išsprendžia vienu bandymu: datagramai, kurie palieka A ir niekada nepasiekia B, reiškia, kad srautas buvo perrašytas kelyje, o datagramai, kurie pasiekia B be jokio atsakymo, reiškia, kad ugniasienė nepriėmė jų kaip susijusių.

Du partneriai su viešais IPv6 adresais apeina visą problemą. Be vertimo nėra ko derinti, todėl pakanka ugniasienės taisyklės, kuri įvardija partnerius, ir dizainas nustoja priklausyti nuo maršrutizatoriaus elgesio.

Kada nustoti bandyti

Mazgas su viešu adresu yra patikimas atsakymas. Jis gali užbaigti tunelį abiem partneriams arba paprasčiausiai padėti jiems sužinoti dabartinį kito išorinį adresą, ir abi schemos veikia, kad ir ką darytų NAT. Valdomas perdengimas suteikia tą patį derinimą, jei politika leidžia.

Nė vienam iš šių nereikia išjungtos ugniasienės. Apsaugos išjungimas siekiant laimėti tiesioginį ryšį atmeta priežastį, kodėl tiesioginis bandymas buvo patrauklus, ir palieka mašiną atvirą visą testo laiką.

Pirmiausia išbandykite tiesioginę schemą, tada užsirašykite, ką matėte. NAT elgsena ir tai parodęs įrašas vertingesni už prievadų porą, kurią galiausiai naudojote, nes kitas tinklas bus kitoks. OpenVPN 2.6 vadovas dokumentuoja lport ir remote parinktis, nuo kurių tai priklauso.

Susiję straipsniai