Vaš drugi odjemalec se poveže, viri prvega se prenehajo razreševati in zahtevek pravi, da je službena VPN pokvarila osebno. Nič ni pokvarjeno v smislu okvare: oba odjemalca sta delala tisto, za kar sta bila zasnovana, stroj pa ima le eno usmerjevalno tabelo. Trčenje je zaradi štirih virov, ki jih vsak odjemalec šteje za svoje. Pojdite skozi njih po vrsti in popravek običajno postane oblikovalska odločitev, ne popravilo.

Korak 1: ugotovite, kateri odjemalec ima izhod

Preberite trenutno odločitev o izhodu, preden karkoli spremenite. Iskanje poti do javnega naslova vam pove, kateri vmesnik in kateri naslednji skok bi paket uporabil zdaj, in to je odgovor na to, kdo je zmagal. Primerjajte to z imeni vmesnikov, ki so jih ustvarili odjemalci; običajno nosijo ime izdelka ali protokola. Če iskanje kaže na tunel, ki ga niste pričakovali, ste trčenje že našli.

ip route get 1.1.1.1
ip route show default
route print

Nekateri odjemalci privzete poti sploh ne zamenjajo; dodajo dve polovici, eno za spodnjo polovico naslovnega prostora in eno za zgornjo, ki skupaj pokrijeta vse. To pusti izvirno privzeto pot vidno in naredi ročni popravek videti pravilen, medtem ko promet še vedno odhaja skozi tunel. Berite metriko in dolžino predpone, ne le prisotnosti privzetega vnosa.

Ustavite se, če oba odjemalca zahtevata isto predpono z isto metriko. Jedro bo izbralo enega, drugi pa bo videti povezan, medtem ko ne bo prenašal ničesar.

Korak 2: preverite razreševalnik in prekrivajoče se predpone

DNS je drugo trčenje in daje značilen simptom: imena odpovedo, medtem ko naslovi delujejo. Vsak odjemalec vsili svoj razreševalnik in zadnji pisec zmaga pri naslednjih poizvedbah. Vprašajte storitev razreševanja, kaj uporablja za posamezno povezavo, namesto da berete stran z nastavitvami odjemalca.

resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example

Nato primerjajte zasebne predpone, ki jih uporabljata obe omrežji. Če obe strani dodeljujeta iz istega obsega, nobena ureditev na strani odjemalca tega ne bo popravila, ker stroj ne more povedati, kateri cilj 10.0.0.0/8 pripada kateremu tunelu. Eno stran je treba preštevilčiti ali prevesti, in to je pogovor z lastniki omrežja, ne sprememba konfiguracije. Prekrivanje je edino trčenje, kjer je pošten odgovor, da se mora zasnova spremeniti.

Ustavite se tukaj, če se predpone prekrivajo. Vse nadaljnje na tem seznamu predpostavlja, da se ne prekrivajo.

Korak 3: izberite vzorec ločevanja, ki zdrži

Zanesljivi vzorci se izogibajo poganjanju dveh odjemalcev proti isti usmerjevalni tabeli. En odjemalec s politiko razdeljenega tunela, ki doseže obe zasebni omrežji, je najpreprostejši, če se cilji ne prekrivajo in lastnik politike soglaša. Navidezni stroj ali omrežni imenski prostor je naslednji korak, ker vsak dobi svojo tabelo in svoj razreševalnik.

sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/

Imenski prostor daje enako ločevanje kot navidezni stroj brez drugega operacijskega sistema, vendar ima grobe robove: tunelska naprava se mora premakniti vanj in aplikacija se mora zagnati znotraj njega. Ločena fizična naprava je pogosto najmanj presenetljiva možnost za osebno VPN ob upravljanem službenem odjemalcu. Zlaganje enega tunela v drugega ni vzorec ločevanja; notranja končna točka mora ostati dosegljiva skozi zunanji tunel, takšna ureditev pa doda še težave z MTU in zakasnitvijo.

Izberite en vzorec in zapišite zakaj. Mešanje imenskega prostora za eno aplikacijo z razdeljenim tunelom za ostalo poustvari izvirno trčenje v težje razhroščevalni obliki.

Korak 4: preverite obe omrežji iz iste seje

Preizkusite en vir v vsakem zasebnem omrežju iz okolja, kjer aplikacija res deluje, ne iz svoje lupine, če aplikacija teče v imenskem prostoru. Preverite izhodni vmesnik, razrešeni naslov in kodo odgovora skupaj, ker uspeh pri enem od treh lahko skrije neuspeh pri drugih. Ponovite po ponovnem zagonu, saj vrstni red zagona odjemalcev odloča, kdo zmaga. Prav ta vrstni red ljudje pozabijo zabeležiti.

curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40

Zabeležite različice odjemalcev, vmesnike, stanje razreševalnika in predpone za vsako omrežje. Ko se odjemalec posodobi in spremeni svoje vedenje pri usmerjanju, je ta zapis razlika med petminutnim popravkom in ponovno gradnjo. Naslednja oseba ne bo delila vašega spomina o tem, kateri tunel se je dvignil prvi.

Seznam je popoln, ko lahko poimenujete vmesnik, ki ima privzeto pot, razreševalnik, ki ga uporablja vsako ime, vzorec, ki ločuje drugi tunel, in rezultat ene zahteve na omrežje po ponovnem zagonu. Karkoli manj je konfiguracija, ki danes slučajno deluje.

Sorodni članki