Поврзано, зелена икона во лентата и страница што ја враќа вашата адреса, а сѐ уште ја прикажува адресата на добавувачот, не значат автоматски дефект. Клиентот работи две одделни задачи: гради тунел и ја менува табелата за рутирање. Секоја може да се случи без другата, а селективното рутирање е конфигурацијата во која втората намерно се прескокнува.

Што всушност инсталирал клиентот

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

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

Кога проверката ќе слета во тунелот, а одразот сѐ уште ја прикажува адресата на добавувачот, преведувањето на излезот недостасува. Кога проверката ќе слета на физичкиот адаптер, профилот е селективен и јавната адреса никогаш не била во игра. Заменете ја услугата за одраз со онаа на која и верувате и запишете ги четирите набљудувања заедно, бидејќи одделно тие се анегдоти. Заедно тие покажуваат која од двете задачи клиентот навистина ја извршил.

Поврзани статии