Pitajte većinu ljudi što VPN klijent radi s DNS-om i reći će da postavlja razrješivač, pa upiti putuju unutar tunela. Guranje je stvarno; pretpostavka da ono postaje upit nije. Između gurnute opcije i paketa na žici stoje tri faze, a svaka pada neovisno na načine koji svi izgledaju kao pokvaren DNS poslužitelj. Zato se stranica za test curenja i ispravan preglednik mogu razići oko istog računala u istom trenutku.

Gurnuta opcija nije upit

Prva faza je da poslužitelj nudi postavke, na primjer gurnuta DNS opcija koja imenuje razrješivač unutar tunela. Druga faza je da klijent primijeni te postavke na sučelje. Treća faza je da aplikacija doista pošalje upit na tu adresu. Neuspjeh u drugoj fazi ostavlja opciju vidljivom u dnevniku veze dok popis razrješivača ostaje nepromijenjen, a neuspjeh u trećoj fazi ostavlja potpuno ispravan popis razrješivača neiskorištenim.

Većina dijagnostike sažima te tri u jednu i krivi VPN poslužitelj, koji je obično jedina strana koja može dokazati da je odradila svoj dio. Čitajte umjesto toga stvarno stanje razrješivača klijenta, a zatim gledajte kako jedan upit odlazi. Ta dva zapažanja razdvajaju konfiguraciju od usmjeravanja i od politike, i koštaju oko pet minuta. Sačuvajte snimke, jer sljedeći inženjer želi prije i poslije, a ne opis toga.

Provjerite što sučelje doista drži

Na Linuxu sistemski razrješivač može biti obična datoteka, NetworkManager ili systemd-resolved, a to koji ga posjeduje odlučuje gdje će gurnuti poslužitelj sletjeti. Proces OpenVPN iz naredbenog retka sam ne ažurira sistemski razrješivač, pa je dokumentirana integracija up/down skripta ili upravitelj veza koji već zna primijeniti postavke. Pokretanje oba učinkovit je način da stvorite utrku.

resolvectl status
cat /etc/resolv.conf

Na Windowsu popis je po adapteru, pa tunelski adapter može držati interne poslužitelje dok fizički adapter zadržava lokalne i pobjeđuje za neka imena. Usporedite oba adaptera umjesto onog za koji pretpostavljate da je aktivan.

Pratite jedan upit izvan računala

Snimite oba sučelja istovremeno, zatim razriješite jedno ime koje bi trebalo koristiti interni razrješivač. Taj par snimaka odgovara na ono na što nijedan izlaz konfiguracije ne može.

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

Upit koji se pojavljuje na fizičkom sučelju i nikada u tunelu znači da je klijent odabrao pogrešan razrješivač. Upit na nijednom od njih znači da je aplikacija odgovorila iz predmemorije, pitala stub koji sluša na loopbacku ili koristila šifrirani razrješivač čiji se promet nikada ne pojavljuje kao port 53. Snimajte i odgovore, ne samo upite, jer upit koji odlazi kroz tunel s odgovorom s javne adrese druga je kvar od odgovora koji ne stiže.

Vatrozid koji prihvaća samo vlastiti DNS

Komercijalni klijenti ponekad instaliraju vlastite lance filtara. Jedan dokumentirani uzorak dopušta DNS prema klijentovu vlastitom razrješivaču i odbacuje sav preostali UDP promet na portu 53 koji pokušava napustiti sučelje koje nije loopback, uključujući promet koji je korisnik namjerno usmjerio drugamo. Upiti demona nestaju bez traga, što se čita kao kvar razrješivača, a ne kao filtar.

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

Ako se pravilo odbacivanja procjenjuje prije vaše iznimke, dodano pravilo se nikada ne dosegne, pa ga umetnite na prvo mjesto i ograničite odredište na razrješivač koji doista namjeravate.

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

Ta je iznimka dijagnostička, a ne politika. Ako je pravilo dobavljača namjerno, podržani popravak je konfigurirati klijenta da dopusti taj razrješivač i zabilježiti odluku, jer umetnuto pravilo neće preživjeti sljedeću nadogradnju klijenta.

Zašto stranica za curenje dokazuje manje nego što izgleda

Ono što stranica za test curenja pokazuje jest razrješivač koji je razgovarao s operaterom testa, a ne onaj koji je vaše računalo konzultiralo. Lokalni prosljeđivač koji rekurzira prema van stavlja svoju izlaznu adresu na tu stranicu, a šifrirani upiti mogu ostaviti stranicu posve praznom. Oba se rezultata pogrešno čitaju, jedan kao curenje a drugi kao jamstvo, i nijedno čitanje ne slijedi iz zapažanja.

Obranjiv dokaz je snimka: sučelje, odredišna adresa, odgovor i vremenska oznaka. Napravite jednu prije nego tunel ustane i jednu poslije, i usporedite ih sljedeći put kad ime ne uspije. Taj par također kaže sljedećoj osobi je li kvar bio u razrješavanju, usmjeravanju ili u vlastitoj politici pristupa razrješivača.

Povezani članci