Twee tuisrouter, geen geforwardeerde poorte nie, en 'n VPN wat soms tog verbind. UDP laat dit toe, want 'n vuurmuur sal 'n pakket toelaat wat hy teen 'n vloei kan pas wat die masjien reeds begin het. Dit is 'n voorwaardelike truuk eerder as 'n funksie, en die voorwaardes is maklik om te noem sodra jy weet waarmee die vuurmuur vergelyk. Hulle is ook die rede waarom identiese profiele op verskillende netwerke anders optree.

Die vergelyking wat 'n vuurmuur maak

Elke uitgaande datagram skep 'n kortstondige inskrywing: bronadres, bronpoort, bestemmingsadres, bestemmingspoort. Enigiets wat aankom en by die inskrywing pas, word as 'n antwoord beskou en deurgelaat. Inkomende reëls speel geen rol daarin nie.

Die vraag is dus nie of die vuurmuur die eweknie inlaat nie. Dit is of die eweknie se pakket soos die antwoord lyk waarvoor die inskrywing wag. Verander een veld van daardie vierdelige tupel en die pakket word 'n vreemdeling. Daarom kan 'n werkende opstelling breek wanneer net die poortnommer verander, en daarom kan dieselfde poort op een router werk en op die volgende misluk.

Maak die plaaslike bronpoort vas, en dieselfde nommer verskyn aan beide kante van die uitruiling. Dit is die hele meganisme, en dit verduidelik waarom die truuk broos eerder as geheimsinnig is.

Een poort aan elke kant vaspen

OpenVPN se standaard-UDP-poort is 1194, en lport stel die bronpoort vas waarvan dit stuur. Pen albei eweknieë vas en elkeen se uitgaande tupel wys na 'n poort waarop die ander luister:

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

Dit werk net solank geen router tussen hulle die bronpoort herskryf nie. Wanneer pakkette in 'n opname verskyn maar geen tonnel kom op nie, is die herskrywing die eerste verdagte.

Waar die tupel ophou pas

'n NAT wat per bestemming karteer, gee aan elke eweknie 'n ander eksterne poort. Die adres wat aan jou eweknie gesê is om te gebruik, is nie die adres wat dit bereik nie, dus pas die inkomende pakket aan niks en word dit stilweg weggegooi.

Carrier-grade-vertaling, gestapelde NAT en poortewillekeurigheid eindig almal dieselfde. So ook enige middlebox wat poorte herskryf terwyl dit adresse ongemoeid laat.

Stroomvervoer is slegter daaraan toe. 'n TCP-handdruk word stap vir stap gevolg, so 'n TCP-gebaseerde VPN kan glad nie op hierdie manier deurgeponk word nie en het 'n luisteraar êrens op die pad nodig.

Een kant misluk gewoonlik eerste

In die praktyk tree die twee netwerke selde dieselfde op. Een router gee dalk 'n voorspelbare kartering uit terwyl die ander per-bestemming-poorte uitdeel, en die resultaat is 'n konfigurasie wat tussen twee huise werk en van 'n mobiele netwerk af misluk. Verslae wat mekaar weerspreek, beskryf gewoonlik twee verskillende pare routers. Nie een skrywer is verkeerd nie, en nie een resultaat veralgemeen nie.

Vind uit watter kant die pakket laat val het voordat jy aan die profiele raak. Opnames aan albei kante besleg dit in een poging: datagramme wat A verlaat en nooit B bereik nie, beteken die vloei is onderweg herskryf, terwyl datagramme wat by B aankom sonder dat 'n antwoord terugkom, beteken die vuurmuur het hulle nie as verwant aanvaar nie.

Twee eweknieë met openbare IPv6-adresse omseil die hele probleem. Sonder vertaling is daar niks om te pas nie, dus is 'n vuurmuurreël wat die eweknieë noem genoeg en hou die ontwerp op om van routergedrag afhanklik te wees.

Wanneer om op te hou probeer

'n Gasheer met 'n openbare adres is die betroubare antwoord. Dit kan die tonnel vir albei eweknieë beëindig, of bloot help dat hulle mekaar se huidige eksterne adres ontdek, en albei reëlings werk ongeag wat die NAT's doen. 'n Bestuurde oorleglaag bied dieselfde koördinering as beleid dit toelaat.

Wat nie een van hierdie nodig het nie, is 'n afgeskakelde vuurmuur. Om beskerming af te skakel om die direkte verbinding te wen, gooi die rede weg waarom die direkte poging aantreklik was, en dit laat die masjien oop vir die duur van die toets.

Probeer eers die direkte reëling en teken dan aan wat jy gesien het. Die NAT-gedrag en die opname wat dit gewys het, is meer werd as die poortpaar wat jy uiteindelik gebruik het, want die volgende netwerk sal anders wees. Die OpenVPN 2.6-handleiding dokumenteer lport en die remote-opsies waarvan dit afhang.

Verwante artikels