Set in folsleine tunnel oan en elke bestimming heart no by de VPN-interface, ynklusyf de masine dy’t him beëiniget. De bûtenste pakketten dy’t de tunnel drage binne oan dy masine adressearre, sadat de rûte úteinlik it ferfier fertart dêr’t er fan ôfhinklik is. Ien ekstra spesifike rûte lost it op, en de reden is de muoite wurdich te begripen. Sûnder dy reden bringt de folgjende weropbou de fout werom.

In rûte dy’t syn eigen ferfier fret

Enkapsulaasje wikkelt elk pakket yn in twadde kop. De bûtenste is fan it lokale fysike adres nei it iepenbiere adres fan de tsjinner adressearre, en hy moat de fysike skeakel oerstekke foardat der ea in tunnel bestean kin.

Lit no de syktocht foar dat iepenbiere adres de tunnel kieze. Om it pakket te stjoeren moat de masine it enkapsulearje, wat in rûte nei itselde adres fereasket, en dy jout de tunnel werom. Kliïnten dogge dit op ien fan twa manearen. In soarchfâldige wegert de standertrûte te ynstallearjen en meldt in flater, wylst in minder soarchfâldige sukses meldt en dan neat ferpleatst. De stille mislearring is dy’t in middei kostet.

De langste-prefiks-oerienkomst beslút de syktocht foardat der ea in metryk besjoen wurdt, sadat in rûte foar ien adres elke standertrûte op de masine oertreft. Dat is it hiele meganisme efter de reparaasje.

Ynstallearje de útsûndering foar de standert

Meitsje in rûte foar ien adres foar de tsjinner, mei de fysike gateway as folgjende hop, foardat de standertrûte beweecht. Oarder is fan belang: it letter ynstallearjen betsjut libje mei in stikken tunnel wylst jo type.

De measte kliïnten dogge dit sûnder oanmoediging. OpenVPN siket it fiere adres op en pint it fêst foardat de standertgateway weromskreaun wurdt, en syn route-delay-opsje bestiet foar platfoarms dêr’t dy folchoarder racet. wg-quick nimt in hiel oare wei, pakketten markearje en in beliedsregel rieplachtsje ynstee fan in útsûndering ta te foegjen. Ferskillende meganismen, deselde eask: it bûtenste pakket moat ûntkomme oan de tunnel dy’t it makket.

ip route add 203.0.113.10/32 via 192.168.1.1 dev eth0
ip route get 203.0.113.10

De útfier fan de syktocht is de akseptaasjetest. Hy moat it fysike apparaat en de fysike folgjende hop neame. In tunnelapparaat yn dat antwurd betsjut dat de útsûndering ûntbrekt, of pleatst is nei eat dat him oerhearsket.

It spegelbyld op de tsjinner

Deselde falstrik wachtet oan de oare kant, omkeard. Jow de tsjinner in standertrûte troch in oare tunnel, of triuw him in rûte ta dy’t de iepenbiere adressen fan de kliïnten dekt, en syn antwurden krije in gewoante fan ferkearde rjochting.

Stel jo in kliïnt foar dy’t ferbynt en in fersyk stjoert. It antwurd is oan it iepenbiere adres fan dy kliïnt adressearre, dat no by in tunnelrûte past, sadat it fan in oare interface ôf giet mei in boarne dy’t de kliïnt nea keazen hat. De kliïnt kin dat pakket ûntfange en dochs fuortsmite, want neat bûn it oan it fersyk dat er stjoerd hat. Wurkje fan ’e routingbeslissing fan ’e tsjinner ôf ynstee fan fan it timeout fan ’e kliïnt, want mar ien fan beide lit de wiere kar sjen.

ip route get 198.51.100.44 from 10.90.0.1
ip rule show
sudo tcpdump -ni any host 198.51.100.44

Der binne trije reparaasjes en se binne net gelyk. It fêstpinnen fan de tsjinst oan it fysike adres, of it oersetten fan de boarne, beide ferbergje de routingbeslissing ynstee fan him te korrigearjen. It stjoeren fan antwurdferkear foar de tunnelpool troch in tawijde tabel reparearret de oarsaak, en de oare twa binne allinnich akseptabel salang’t it routingûntwerp beferzen is.

Útsûnderingen dy’t de tunnel hieltyd stelt

In hantsjefol taken hawwe it iepen ynternet nedich sels wylst de tunnel de standertrûte besit, en elk hat syn eigen útsûndering nedich. De dynamyske DNS-bytwurker is meastentiids de earste dy’t brekt.

Hy lost de provider op, iepenet in ferbining en fynt syn eigen pakketten reizgjen troch in tunnel wêrfan’t it adres sekonden lyn feroare is, sadat de bywurking mislearret of it ferkearde adres publisearret. Trije wegen út: pin de provider fêst mei in hostrûte troch de fysike gateway, rin de bywurking foardat de tunnel omheech giet, of jow de bywurker in beliedstabel dy’t de tunnel nea oanrekket. Tiidsynchronisaasje hat deselde bleatstelling op in apparaat dat sûnder resolver opstart, en sertifikaatfalidaasje-einpunten hearre om deselde reden op ’e list.

In útsûndering dy’t nimmen opskreaun hat is in útsûndering dy’t de folgjende weropbou stilwei falle lit.

Bewiis it nei in werferbining, net earder

Test trije bestimmingen, net ien: it einpunt, in privee adres efter de tunnel en in iepenbier adres dêrbûten. Ien slagge syktocht seit hast neat oer de oare twa.

ip route get 203.0.113.10
traceroute -n 203.0.113.10
ip route get 10.90.0.5
ip route get 1.1.1.1

Werstart dan de ferbining, want in kliïnt dy’t syn tabel by werferbining weropbouwt smyt in rûte fuort dy’t jo mei de hân typt hawwe. Mei in kill switch yn wurking, kontrolearje dat it einpunt tastien is, oars kin de tunnel nei in netwurkferoaring net weromkomme en liket it symptoom op in steuring. Bewarje de útsûndering yn it profyl of it unit-bestân ynstee fan yn in shell-skiednis, sadat de werferbining him opnij makket ynstee fan him út te wiskjen.

Relatearre artikelen