Свързано, зелена икона в трея и страница за отразяване на адреса, която още показва адреса на доставчика, не означават автоматично повреда. Клиентът върши две отделни задачи: изгражда тунел и редактира таблицата за маршрутизация. Всяка от тях може да се случи без другата, а селективната маршрутизация е конфигурацията, в която втората умишлено се пропуска.

Какво всъщност е инсталирал клиентът

Питайте кой интерфейс би пренесъл пакет до реална дестинация, вместо да питате дали тунелът е вдигнат. Тунел без маршрут до тази дестинация е частен път, по който никой не минава.

ip route get 9.9.9.9
Find-NetRoute -RemoteIPAddress 9.9.9.9
route print -4

Първата команда отговаря в Linux и macOS, а другите две са Windows еквивалентите, където една е достатъчна. Ако отговорът посочи физическия адаптер, тунелът е вдигнат и маршрутът по подразбиране никога не е мърдал. Повторете проверката за дестинация, която трябва да използва тунела, защото две проверки, една отдалечена и една обикновена, казват кой дизайн е внедрен.

Три форми на селективна маршрутизация

Профилът за пълен тунел обикновено записва маршрут по подразбиране към интерфейса или записва двойката полуобхватни префикси, които печелят по дължина на префикса, докато оригиналният маршрут по подразбиране остава в таблицата. Селективната маршрутизация е другият избор и има няколко форми. Един профил маршрутизира един хост, например RDP сървър, друг маршрутизира публичен диапазон, до който трябва да се стигне от определено място, а трети умишлено изключва едно приложение. И трите са законни и нито един не променя адреса, който вижда обикновен сайт.

grep -nE "redirect-gateway|route-nopull|route " /etc/openvpn/client/*.conf
ip route show table main | head -20

Прочетете профила за директивата, която решава, после таблицата за това какво е произвела. Пусната директива може да бъде и потисната на клиента, затова профилът и таблицата трябва да съвпадат, преди да обвините сървъра.

Отсрещната страна трябва да презапише адреса на източника

Има втора повреда, която от браузъра изглежда идентично. Маршрутът сочи в тунела, сървърът получава пакетите и после ги препраща с непокътнат частен адрес на клиента. Следващият хоп няма път за връщане към този адрес, затова отговорите изчезват и страниците висят. Сървърът трябва изобщо да препраща и трябва да преобразува източника в нещо, което интернет може да маршрутизира обратно.

sysctl net.ipv4.ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -S | grep MASQUERADE

Наименувайте интерфейса, който наистина гледа към интернет, а това не винаги е eth0 в съвременна дистрибуция. Хостинг сървър с фиксиран адрес може да преобразува явно към този адрес вместо masquerade. Двете половини са важни, защото препращане без преобразуване изтича немаршрутизируеми източници, а преобразуване без препращане никога не вижда пакета.

Разрешаването на имена поема по свой път

Трафикът може да излиза през тунела, докато проверката, намерила името, е отишла до резолвер в локалната мрежа. Видимият адрес остава същият, проверките — не, и тази разлика е точно това, което избира дизайнът с разделен DNS.

resolvectl status | head -20
resolvectl query example.org

Отбележете кой сървър е отговорил и дали се различава от базовата линия преди тунела. При разделен тунел това обикновено е настройката, която хората са искали да променят, когато се оплакваха от адреса, и точно тази, в която никога не са поглеждали.

Четири наблюдения, които решават въпроса

Запишете изходния адрес с изключен тунел, после с включен. Изпълнете проверката на дестинацията и в двете състояния и отбелязвайте интерфейса всеки път.

curl -sS https://ifconfig.me/ip
ip route get 9.9.9.9

Когато проверката попадне в тунела, а отразяването още показва адреса на доставчика, липсва преобразуване на изхода. Когато проверката попадне на физическия адаптер, профилът е селективен и публичният адрес никога не е бил в обхвата. Сменете услугата за отразяване с такава, на която вярвате, и запишете четирите наблюдения заедно, защото поотделно те са анекдоти. Заедно те показват коя от двете задачи клиентът наистина е изпълнил.

Подобни статии