Připojíte se, objeví se rozhraní tunelu a jeden prefix, který potřebujete, prostě v tabulce není. Dalším krokem je obvykle hledání skriptu, který ho přidá. To hledání vede k odpovědím, které do profilu vloží pomocníka OpenVPN, a polovina těchto odpovědí situaci spíš zhorší než zlepší, protože chybějící trasa má tři možné vlastníky a jen jeden z nich je chybějící skript.

Rozhodněte, který vlastník je odpovědný, než něco napíšete.

Tři vlastníci, jeden chybějící prefix

Prefix může chybět proto, že ho nikdo nedodal, protože ho profil odmítl, nebo protože byl nainstalován někde, kam se nedíváte. To jsou různé závady a mají různá řešení.

První se ověřuje nejsnáze: nabídl server nebo plugin trasu vůbec někdy? Backend, který prefix nikdy nedostal, ho nemůže nainstalovat, a pomocný skript nemůže vymyslet dostupnost, kterou protějšek nikdy nepopsal. Druhý je zásada profilu, která může potlačit trasy, které by spojení jinak převzalo. Třetí je tabulka nebo pravidlo, které může trasu držet na místě, kam se výchozí vyhledávání nikdy nepodívá.

Čtvrtý vlastník jste vy, později: skript, který trasu přidá při připojení, ale neodebere ji při odpojení. To vytvoří prefix, který tunel přežije, ukazuje na mrtvé rozhraní a plete dalšího člověka, který bude stroj ladit.

Přečtěte si profil, než něco přidáte

Začněte vlastnostmi uloženého připojení. Čtěte je, aniž byste vylili tajemství, a použijte UUID, pokud je název profilu nejednoznačný.

nmcli -f vpn.service-type,ipv4.never-default,ipv4.ignore-auto-routes,ipv4.route-table,ipv4.routes connection show office

vpn.service-type vám řekne, který backend připojení vlastní, a to je důležité, protože data pluginu jsou specifická pro backend. Klíč přijímaný jedním pluginem není podporovaná instrukce pro jiný, takže úryvek zkopírovaný z dokumentace jiného klienta není důkazem ničeho.

ipv4.ignore-auto-routes a ipv4.never-default odpovídají na různé otázky. První může odmítnout trasy, které by spojení jinak převzalo automaticky, a druhý řídí, zda se profil může stát výchozí trasou. Profil, který ignoruje automatické trasy a nespoléhá na nic jiného, se připojí čistě a nenainstaluje téměř nic.

ip -4 rule show
ip -4 route show table all

Tyto dva příkazy vyřeší třetí možnost. Hledejte svůj prefix v každé tabulce, nejen v main, a zkontrolujte, zda pravidlo zásad neposílá příslušné vyhledávání jinam. Pokud je prefix v jiné tabulce a nic ho nekonzultuje, nemáte chybějící trasu; máte vyhledávání, které k ní nikdy nedojde.

Co skript nedokáže opravit

Přidání pomocného skriptu dá vpn.data v NetworkManageru program ke spuštění. Je to skutečný mechanismus a u většiny těchto případů je to špatný mechanismus, protože skript dostane kontrolu poté, co zásady profilu už rozhodly, co přijmout.

script-security v OpenVPN je další opakující se zmatek. Je to nastavení OpenVPN, které určuje, které skripty klient smí spouštět a co smí vložit do jejich prostředí; úroveň 3 umožňuje předávat přihlašovací údaje prostředím, což je rozhodnutí o zacházení s tajemstvími, nikoli oprava směrování. Vložit ho do profilu, jehož backend není OpenVPN, nebo ho zvýšit, když ho žádný skript nepotřebuje, přidává expozici, aniž by přidalo trasu.

Pak je tu reflex restartu. Restart služby NetworkManager strhne a znovu postaví každé spravované spojení, včetně toho, kterým jste připojeni, pokud pracujete vzdáleně. Je to rušivá akce, ne neškodná diagnostika, a na serveru může být rozdílem mezi relací, která přežije, a tou, která ne.

Rozhodnutí, v pořadí

Položte tři otázky za sebou. Dodala protistrana prefix, což ukáže log backendu nebo jeho vlastní výstup stavu? Pokud ano, je profil nakonfigurován tak, aby trasy přijímal a instaloval, nebo je potlačuje? Pokud trasa někde existuje, je cesta vyhledávání správná pro provoz, který testujete?

Teprve když je první odpověď ano, druhá ano a třetí správná, stává se doplňkový skript obhajitelným, a i tehdy byste se měli ptát, zda backend trasu podporuje nativně. Referenční příručka nastavení VPN dokumentuje service-type a slovník dat specifický pro plugin, a právě tam je třeba začít, než předpokládáte, že klíč existuje.

Po schválené opravě se znovu připojte a otestujte cíl podle adresy a poté podle jména, pak se odpojte a znovu připojte, abyste potvrdili, že stav je opakovatelný. Jeden vlastník, jedna tabulka a trasa, která zmizí s tunelem, je výsledek, který stojí za to.

Související články