Connectat, icona verda a la safata i una pàgina d'eco d'adreça que encara mostra l'adreça del proveïdor no volen dir automàticament cap avaria. El client fa dues feines separades: construeix un túnel i edita la taula d'encaminament. Qualsevol de les dues pot passar sense l'altra, i l'encaminament selectiu és la configuració on la segona s'omet deliberadament.

Què ha instal·lat realment el client

Pregunteu quina interfície portaria un paquet a una destinació real en lloc de preguntar si el túnel està aixecat. Un túnel sense ruta cap a aquesta destinació és un camí privat que ningú no fa servir.

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

La primera ordre respon a Linux i macOS, i les altres dues són els equivalents de Windows on una és suficient. Si la resposta anomena l'adaptador físic, el túnel està aixecat i la ruta per defecte no s'ha mogut mai. Repetiu la consulta per a una destinació que hauria d'usar el túnel, perquè dues consultes, una de remota i una d'ordinària, diuen quin disseny s'ha desplegat.

Tres formes d'encaminament selectiu

Un perfil de túnel complet sol escriure una ruta per defecte apuntant a la interfície, o escriu la parella de prefixos de mig abast que guanyen per longitud de prefix mentre la ruta per defecte original es queda a la taula. L'encaminament selectiu és l'altra opció, i arriba en diverses formes. Un perfil encamina un sol amfitrió com ara un servidor RDP, un altre encamina un rang públic al qual cal arribar des d'un lloc concret, i un tercer exclou una aplicació deliberadament. Tots tres són legítims, i cap no canvia l'adreça que veu un lloc web qualsevol.

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

Llegiu el perfil per la directiva que decideix, i després la taula pel que ha produït. Una directiva empeny també es pot suprimir al client, i per això el perfil i la taula s'han de posar d'acord abans de culpar el servidor.

El costat remot ha de reescriure l'adreça d'origen

Hi ha una segona fallada que des del navegador sembla idèntica. La ruta apunta cap al túnel, el servidor rep els paquets i després els reenvia amb l'adreça privada del client intacta. El següent salt no té camí de tornada per a aquesta adreça, així que les respostes desapareixen i les pàgines pengen. El servidor ha de reenviar d'entrada, i ha de traduir l'origen en una cosa que internet pugui encaminar de tornada.

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

Anomeneu la interfície que realment mira cap a internet, que en una distribució moderna no sempre és eth0. Un servidor allotjat amb adreça fixa pot traduir explícitament a aquesta adreça en lloc de fer servir masquerade. Les dues meitats importen, perquè el reenviament sense traducció filtra orígens no encaminables mentre que la traducció sense reenviament no veu mai el paquet.

La resolució de noms pren el seu propi camí

El trànsit pot sortir pel túnel mentre la consulta que ha trobat el nom ha anat a un resolutor de la xarxa local. L'adreça visible continua sent la mateixa, les consultes no, i aquesta diferència és exactament el que tria un disseny de DNS dividit.

resolvectl status | head -20
resolvectl query example.org

Fixeu-vos quin servidor ha respost i si difereix de la línia base prèvia al túnel. En un túnel dividit aquesta sol ser la configuració que la gent volia canviar quan es queixava de l'adreça, i és la que mai no ha mirat.

Quatre observacions que ho resolen

Captureu l'adreça de sortida amb el túnel baixat i després amb el túnel pujat. Executeu la consulta de destinació en tots dos estats i anoteu la interfície cada vegada.

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

Quan la consulta cau dins del túnel i l'eco encara mostra l'adreça del proveïdor, falta la traducció a la sortida. Quan la consulta cau a l'adaptador físic, el perfil és selectiu i l'adreça pública mai no ha estat a l'abast. Substituïu el servei d'eco per un de confiança i anoteu les quatre observacions juntes, perquè per separat són anècdotes. Juntes identifiquen quina de les dues feines ha fet realment el client.

Articles relacionats