Un fișier comun de opțiuni pppd îți strică celălalt VPN?
Doi clienți VPN bazați pe PPP pot citi aceleași valori implicite pppd, așa că o corecție pentru unul îl schimbă în tăcere pe celălalt. Urmărește proprietarul opțiunii înainte de a edita.
Adaugi o linie ca un profil PPTP încăpățânat să se conecteze, iar o săptămână mai târziu clientul L2TP care funcționa de luni de zile se oprește. Interpretarea evidentă este că cele două protocoale se contrazic acum. Mai des, ambii clienți pornesc pppd, amândoi citesc aceleași valori implicite, iar linia adăugată nu a fost niciodată limitată la profilul pe care îl reparai. Fișierul comun de opțiuni este cuplajul, iar protocoalele sunt nevinovate.
Ce moștenește un client la pornire
Un client bazat pe PPP rareori își construiește linia de comandă de la zero. Pornește pppd, care citește valorile implicite ale sistemului, apoi un fișier de utilizator sau de terminal, apoi argumentele transmise de client, iar clientul îl poate îndrepta și spre un fișier peer. Fiecare dintre aceste straturi poate purta un plugin, o metodă de autentificare sau o directivă de rută, iar primul strat care setează o opțiune protejată o poate bloca împotriva modificărilor ulterioare.
Deci întrebarea utilă nu este care VPN este stricat, ci care strat a furnizat setarea. Un client care își generează singur argumentele pare autosuficient și totuși moștenește tot ce conține fișierul de sistem.
Stabilește proveniența liniei înainte de a o schimba
Începe cu procesul care rulează cât timp conexiunea este activă. Linia de comandă arată ce fișiere au fost transmise explicit, iar orice nu este numit acolo a venit dintr-o cale implicită.
ps -o pid=,args= -C pppdDacă lista de argumente conține un nume de peer, citește acel fișier. Dacă nu, setarea pe care o cauți locuiește într-o cale comună. manualul pppd enumeră ordinea în care sunt citite aceste fișiere și opțiunile pe care un utilizator obișnuit nu le poate suprascrie, motiv pentru care o linie ulterioară uneori nu face absolut nimic. O opțiune protejată, cum ar fi calea unui plugin, nu poate fi înlocuită de o linie ulterioară la nivel de utilizator, așa că editarea fișierului greșit nu produce niciun efect vizibil.
Linia de plugin care urmează fiecărui client
Un plugin încărcat în fișierul de sistem este cel mai rău caz, pentru că schimbă ce încearcă să încarce un proces PPP nou, indiferent pe ce buton a apăsat utilizatorul. Pluginul L2TP este exemplul clasic: corect pentru un profil, lipsit de sens sau dăunător pentru un profil PPTP care pornește din aceleași valori implicite.
Mută-l într-un fișier peer ales de client sau în setările proprii pe conexiune ale clientului, dacă le acceptă. Ștergerea lui directă repară al doilea client și îl strică pe primul, și exact așa călătoresc aceste probleme între echipe.
Verifică fiecare client după mutare
Testează ambele conexiuni de pe aceeași mașină, una după alta, și citește opțiunile negociate, nu dialogul de succes. Dumpul de mai jos tipărește setul de opțiuni pe care pppd l-a asamblat efectiv, iar doar acea listă contează.
sudo pppd call office debug dumpRepetă pentru al doilea client și compară cele două ieșiri. Opțiunea pe care ai mutat-o trebuie să apară exact într-una dintre ele. Dacă apare în ambele, clientul o regenerează, iar corecția aparține acelui profil, nu fișierului comun. Notează lângă conexiune unde locuiește acum setarea, ca următoarea persoană să nu redescopere cuplajul stricându-l din nou.