Twee opstuurverbindings, een tonnel, en die verkeer vertrek deur die een wat jy nie gekies het nie. Die private subnette is bereikbaar, die logboek meld 'n suksesvolle verbinding, en dit is die gemeette skakel wat dit dra. Niks in die OpenVPN-uitset noem 'n deurgang nie, want die kliënt het nooit een gekies nie. Dit het 'n sokket na 'n afgeleë adres oopgemaak en die kern laat besluit hoe om daardie adres te bereik.

Die tonneladres is nie die eindpunt nie

Twee verskillende paaie bestaan in elke sessie. Die buitenste pad dra die versleutelde vervoer na die bediener se publieke adres. Die binneste pad dra alles wat die bediener in die tonnel stoot, en roetereëls vir die een het geen uitwerking op die ander nie.

Die remote-inskrywing in die profiel noem die buitenste bestemming, so dit is die adres om vas te pen. Dit is ook die waarde wat verander wanneer 'n gasheernaam anders oplos of die profiel verskeie remotes lys.

Vind die adres wat die kliënt werklik geskakel het

Lees die lewendige sokket eerder as die konfigurasielêer. Die sokkettabel wys die eweknie waarmee die proses werklik verbind het, en dit is die waarde waarmee 'n uitsondering moet ooreenstem. 'n Profiel kan ná die begin van die sessie geredigeer word, en die sokket is die enigste bewys van wat geskakel is:

ss -tunp | grep -i openvpn
journalctl -u openvpn-client@work --no-pager | grep -i "Peer Connection Initiated"

Die logboekreël noem die eweknie-adres en -poort op die oomblik van verbinding. As dit met die profiel verskil, herskryf iets voor die kliënt die bestemming voordat die verbinding begin.

Kyk ook na die adresfamilie. 'n Dubbelstapel-profiel kan oor IPv6 verbind terwyl jou uitsondering net IPv4 dek, en die verkeer volg dan 'n ander reël as dié wat jy geskryf het. Dieselfde geld vir 'n instaanbediener wat namens die eindpunt antwoord. Albei gevalle lewer 'n tonnel wat werk terwyl jou roete niks doen nie.

Pen die eindpunt vas en lees die beleidsorde

'n Gasheerroete is meer spesifiek as enige verstek. 'n /32 vir die eweknie-adres wen dus binne die tabel wat dit bevat. Die gewone vorm noem die deurgang en die toestel eksplisiet:

ip route add 203.0.113.40/32 via 192.168.10.1 dev eth0

Daardie roete help net as die soektog daardie tabel bereik. Beleidsreëls word in volgorde geëvalueer en die eerste ooreenkoms besluit, so 'n reël wat alles na 'n tweede tabel stuur, omseil jou gasheerroete in main. Lees die reëls voordat jy aanvaar dat die roete gesaghebbend is:

ip rule show
ip route get 203.0.113.40

Vra die tweede opdrag met dieselfde bronadres of merkie wat die kliënt gebruik wanneer die beleid daarvan afhang. Dit rapporteer die roete wat die kern sou kies, wat bewyse oor die soektog is en nie 'n bewys dat die lewendige sokket daardie pad gebruik nie.

Wanneer die eindpunt beweeg

Die gasheernaam wat na verskeie adresse oplos, maak 'n permanente /32 ongeldig sodra die antwoord verander. 'n Profiel met meerdere remote-lyne het dieselfde probleem, want die kliënt kan op enige van hulle beland. Verfris die roete vanuit die kliënt se eie lewensiklushake in plaas daarvan om dit met die hand by te voeg. 'n up-skrip wat die onderhandelde eweknie lees en die gasheerroete installeer, hou die uitsondering met die werklikheid in lyn, en 'n ooreenstemmende down-skrip verwyder dit.

Teken die verfrissing op dieselfde plek as die res van die gasheer se roetekonfigurasie aan. 'n Roete wat net tot die volgende herbegin bestaan, is 'n toets, nie 'n oplossing nie.

Hou die binneste beleid apart

Om die buitenste pad te skuif, verleen nie toegang tot 'n nuwe private subnet nie, en dit verander nie watter bestemmings die bediener in die tonnel stoot nie. Die onderliggende roete kies die draad; die gestote roetes kies wat die tonnel binnegaan. Om daardie twee besluite apart te hou, is wat die splitsing voorspelbaar maak.

As die doel net is om die versleutelde vervoer van 'n gemeette skakel af te hou, laat die verstekroete staan en voeg die enkele gasheer-uitsondering by. Om die masjienwye verstek te vervang om een VPN-verbinding te skuif, breek elke ander toepassing op die gasheer.

Bevestig die resultaat met twee onafhanklike waarnemings: die sokket se plaaslike adres en toestel, en die roete waarna die private bestemming oplos. Wanneer albei by jou bedoeling pas, is die splitsing werklik. Die OpenVPN 2.6-handleiding dek die remote- en plaaslike binding-opsies wat besluit watter adres die kliënt skakel.

Verwante artikels