Rozbije sdílený soubor voleb pppd vaši druhou VPN?
Dva VPN klienti postavení na PPP mohou číst stejné výchozí hodnoty pppd, takže oprava jednoho tiše změní druhý. Než začnete editovat, zjistěte, komu volba patří.
Přidáte jeden řádek, aby se zatvrzelý profil PPTP připojil, a o týden později klient L2TP, který měsíce fungoval, přestane fungovat. Nabízející se výklad je, že si oba protokoly nyní konkurují. Častěji ale oba klienti spouštějí pppd, oba čtou stejné výchozí hodnoty a přidaný řádek nebyl nikdy omezen na profil, který jste opravovali. Tím svázáním je sdílený soubor voleb a protokoly jsou nevinné.
Co klient při startu dědí
Klient postavený na PPP málokdy skládá příkazový řádek od nuly. Spustí pppd, který přečte systémové výchozí hodnoty, pak uživatelský nebo terminálový soubor, potom argumenty předané klientem a klient ho může odkázat i na soubor peer. Každá z těchto vrstev může nést plugin, metodu ověřování nebo direktivu trasy a první vrstva, která nastaví chráněnou volbu, ji může uzamknout proti pozdějším změnám.
Užitečná otázka tedy není, která VPN je rozbitá, ale která vrstva to nastavení dodala. Klient, který si generuje vlastní argumenty, vypadá soběstačně, a přesto dědí vše, co systémový soubor obsahuje.
Než řádek změníte, zjistěte jeho původ
Začněte procesem, který běží, dokud je spojení navázané. Příkazový řádek ukazuje, které soubory byly předány výslovně, a vše, co tam uvedeno není, přišlo z výchozí cesty.
ps -o pid=,args= -C pppdPokud seznam argumentů obsahuje jméno peer, přečtěte ten soubor. Pokud ne, nastavení, které hledáte, sídlí ve sdílené cestě. příručka pppd uvádí pořadí čtení těchto souborů a volby, které běžný uživatel nemůže přepsat, a proto pozdější řádek někdy neudělá vůbec nic. Chráněnou volbu, jako je cesta k pluginu, nelze nahradit pozdějším řádkem na uživatelské úrovni, takže úprava špatného souboru nemá viditelný účinek.
Řádek pluginu, který jde za každým klientem
Plugin načtený v systémovém souboru je nejhorší případ, protože mění, co se nový proces PPP pokusí načíst, bez ohledu na to, které tlačítko uživatel stiskl. Plugin L2TP je klasický příklad: správný pro jeden profil, bezvýznamný nebo škodlivý pro profil PPTP, který startuje ze stejných výchozích hodnot.
Přesuňte ho do souboru peer, který klient volí, nebo do vlastního nastavení jednotlivého spojení, pokud ho klient podporuje. Pouhé smazání opraví druhého klienta a rozbije prvního, a právě tak tyto problémy cestují mezi týmy.
Po přesunu ověřte každého klienta
Otestujte obě spojení ze stejného stroje, jedno po druhém, a čtěte vyjednané volby, ne dialog o úspěchu. Výpis níže vytiskne sadu voleb, kterou pppd skutečně sestavil, a jen tento seznam je podstatný.
sudo pppd call office debug dumpZopakujte to pro druhého klienta a oba výstupy porovnejte. Přesunutá volba se má objevit přesně v jednom z nich. Pokud je v obou, klient ji znovu generuje a oprava patří do toho profilu, ne do sdíleného souboru. Poznamenejte si vedle spojení, kde nastavení nyní sídlí, aby je příští člověk neobjevoval znovu tím, že je zase rozbije.