Питајте већину људи шта VPN клијент ради са DNS-ом и рећи ће да поставља разрешивач, па упити путују унутар тунела. Гурање је стварно; претпоставка да оно постаје упит није. Између гурнуте опције и пакета на жици стоје три фазе, а свака пада независно на начине који сви изгледају као покварен DNS сервер. Зато се страница за тест цурења и исправан прегледач могу разићи око истог рачунара у истом тренутку.

Гурнута опција није упит

Прва фаза је да сервер нуди поставке, на пример гурнуту DNS опцију која именује разрешивач унутар тунела. Друга фаза је да клијент примени те поставке на интерфејс. Трећа фаза је да апликација заиста пошаље упит на ту адресу. Неуспех у другој фази оставља опцију видљивом у дневнику везе док листа разрешивача остаје непромењена, а неуспех у трећој фази оставља потпуно исправну листу разрешивача неискоришћену.

Већина дијагностике сажима те три у једну и криви VPN сервер, који је обично једина страна која може доказати да је одрадила свој део. Читајте уместо тога стварно стање разрешивача клијента, а затим гледајте како један упит одлази. Та два запажања раздвајају конфигурацију од усмеравања и од политике, и коштају око пет минута. Сачувајте снимке, јер следећи инжењер жели пре и после, а не опис тога.

Проверите шта интерфејс заиста држи

На Linux-у системски разрешивач може бити обична датотека, NetworkManager или systemd-resolved, а то који га поседује одлучује где ће гурнути сервер слетети. Процес OpenVPN из командне линије сам не ажурира системски разрешивач, па је документована интеграција up/down скрипта или менаџер веза који већ зна како да примени поставке. Покретање оба је ефикасан начин да створите трку.

resolvectl status
cat /etc/resolv.conf

На Windows-у листа је по адаптеру, па тунелски адаптер може да држи интерне сервере док физички адаптер задржава локалне и побеђује за нека имена. Упоредите оба адаптера уместо оног за који претпостављате да је активан.

Пратите један упит изван рачунара

Снимите оба интерфејса истовремено, затим разрешите једно име које би требало да користи интерни разрешивач. Тај пар снимака одговара на оно на шта ниједан излаз конфигурације не може.

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

Упит који се појављује на физичком интерфејсу и никада у тунелу значи да је клијент изабрао погрешан разрешивач. Упит на ниједном од њих значи да је апликација одговорила из кеша, питала stub који слуша на loopback-у или користила шифровани разрешивач чији се саобраћај никада не појављује као порт 53. Снимите и одговоре, не само упите, јер упит који одлази кроз тунел са одговором са јавне адресе је друга квар од одговора који не стиже.

Заштитни зид који прихвата само сопствени DNS

Комерцијални клијенти понекад инсталирају сопствене ланце филтера. Један документовани образац дозвољава DNS према клијентовом сопственом разрешивачу и одбацује сав преостали UDP саобраћај на порту 53 који покушава да напусти интерфејс који није loopback, укључујући саобраћај који је корисник намерно усмерио другде. Упити демона нестају без трага, што се чита као квар разрешивача, а не као филтер.

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

Ако се правило одбацивања процењује пре ваше изнимке, додато правило се никада не достигне, па га уметните на прву позицију и ограничите одредиште на разрешивач који заиста намеравате.

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

Та изнимка је дијагностичка, а не политика. Ако је правило добављача намерно, подржани поправак је конфигурисати клијента да дозволи тај разрешивач и забележити одлуку, јер уметнуто правило неће преживети следећу надоградњу клијента.

Зашто страница за цурење доказује мање него што изгледа

Оно што страница за тест цурења показује јесте разрешивач који је разговарао са оператером теста, а не онај који је ваше рачунало консултовало. Локални прослеђивач који рекурзира према вани ставља своју излазну адресу на ту страницу, а шифровани упити могу оставити страницу потпуно празном. Оба резултата се погрешно читају, један као цурење а други као гаранција, и ниједно читање не следи из запажања.

Одбрањив доказ је снимак: интерфејс, одредишна адреса, одговор и временска ознака. Направите један пре него што тунел устане и један после, и упоредите их следећи пут кад име не успе. Тај пар такође каже следећој особи да ли је квар био у разрешавању, усмеравању или у сопственој политици приступа разрешивача.

Повезани чланци