Vprašajte večino ljudi, kaj odjemalec VPN počne z DNS, in rekli bodo, da nastavi razreševalnik, zato poizvedbe potujejo znotraj tunela. Potiskanje je resnično; domneva, da postane poizvedba, ni. Med potisnjeno možnostjo in paketom na žici so tri stopnje in vsaka odpove neodvisno na načine, ki so videti kot pokvarjen strežnik DNS. Zato se stran s preskusom uhajanja in delujoč brskalnik lahko razhajata glede istega stroja v istem trenutku.

Potisnjena možnost ni poizvedba

Prva stopnja je, da strežnik ponuja nastavitve, na primer potisnjeno možnost DNS, ki imenuje razreševalnik znotraj tunela. Druga stopnja je, da odjemalec te nastavitve uporabi na vmesniku. Tretja stopnja je, da aplikacija res pošlje poizvedbo na ta naslov. Neuspeh v drugi stopnji pusti možnost vidno v dnevniku povezave, medtem ko seznam razreševalnikov ostane nespremenjen, neuspeh v tretji stopnji pa pusti povsem pravilen seznam razreševalnikov neuporabljen.

Večina odpravljanja težav te tri zlije v eno in krivi strežnik VPN, ki je običajno edina stran, ki lahko dokaže, da je opravila svoj del. Namesto tega preberite dejansko stanje razreševalnika odjemalca in nato opazujte, kako ena poizvedba odide. Ti dve opažanji ločita konfiguracijo od usmerjanja in od politike ter staneta približno pet minut. Shranite posnetke, ker naslednji inženir želi stanje pred in po, ne opisa.

Preverite, kaj vmesnik v resnici drži

V Linuxu je sistemski razreševalnik lahko navadna datoteka, NetworkManager ali systemd-resolved, in kateri od njih ga ima, odloča, kje pristane potisnjen strežnik. Proces OpenVPN iz ukazne vrstice sam ne posodablja sistemskega razreševalnika, zato je dokumentirana integracija skripta up/down ali upravitelj povezav, ki že zna uporabiti nastavitve. Izvajanje obeh je učinkovit način za ustvarjanje tekmovanja.

resolvectl status
cat /etc/resolv.conf

V Windowsu je seznam za vsak vmesnik posebej, zato lahko tunelski vmesnik drži notranje strežnike, medtem ko fizični vmesnik obdrži lokalne in zmaga pri nekaterih imenih. Primerjajte oba vmesnika, ne tistega, za katerega domnevate, da je aktiven.

Sledite eni poizvedbi iz stroja

Ujemite oba vmesnika hkrati in nato razrešite eno ime, ki bi moralo uporabiti notranji razreševalnik. Ta par posnetkov odgovori na to, na kar ne more odgovoriti noben izhod konfiguracije.

sudo tcpdump -ni tun0 port 53
sudo tcpdump -ni any port 53

Poizvedba, ki se pojavi na fizičnem vmesniku in nikoli v tunelu, pomeni, da je odjemalec izbral napačen razreševalnik. Poizvedba, ki se ne pojavi na nobenem od obeh, pomeni, da je aplikacija odgovorila iz predpomnilnika, vprašala stub, ki posluša na loopbacku, ali uporabila šifriran razreševalnik, katerega promet se nikoli ne pojavi kot vrata 53. Ujemite tudi odgovore, ne le poizvedb, ker je poizvedba, ki odide skozi tunel z odgovorom z javnega naslova, druga napaka kot odgovor, ki sploh ne prispe.

Požarni zid, ki sprejme le lastni DNS

Poslovni odjemalci včasih namestijo lastne filtrirne verige. Eden dokumentiranih vzorcev dovoli DNS do odjemalčevega lastnega razreševalnika in zavrže ves preostali promet UDP na vratih 53, ki poskuša zapustiti vmesnik, ki ni loopback, vključno s prometom, ki ga je uporabnik namenoma usmeril drugam. Poizvedbe demonskega procesa izginejo brez sledi, kar se bere kot odpoved razreševalnika in ne kot filter.

sudo iptables -S OUTPUT
sudo iptables -S | grep -i -E 'dns|53'

Če se pravilo zavrženja vrednoti pred vašo izjemo, dodano pravilo ni nikoli doseženo, zato ga vstavite na prvo mesto in omejite cilj na razreševalnik, ki ga resnično mislite.

sudo iptables -I OUTPUT 1 -p udp --dport 53 -d 172.20.8.1 -j ACCEPT

Ta izjema je diagnostična in ne politika. Če je pravilo dobavitelja namerno, je podprto popravilo nastaviti odjemalca, da dovoli ta razreševalnik, in zabeležiti odločitev, ker vstavljeno pravilo ne bo preživelo naslednje posodobitve odjemalca.

Zakaj stran s preskusom uhajanja dokaže manj, kot se zdi

Kar pokaže stran s preskusom uhajanja, je razreševalnik, ki je govoril z operaterjem preskusa, ne tisti, ki ga je posvetoval vaš stroj. Krajevni posredovalnik, ki rekurzira navzven, na to stran postavi svoj lastni izhodni naslov, šifrirane poizvedbe pa lahko stran pustijo popolnoma prazno. Oba rezultata se bereta napačno, eden kot uhajanje in drugi kot zagotovilo, in nobeno od branj ne izhaja iz opažanja.

Zagovorljiv dokaz je posnetek: vmesnik, ciljni naslov, odgovor in časovni žig. Naredite enega, preden se tunel dvigne, in enega zatem, ter ju primerjajte naslednjič, ko ime ne uspe. Ta par tudi naslednji osebi pove, ali je bila napaka v razreševanju, usmerjanju ali v lastni politiki dostopa razreševalnika.

Sorodni članki