Rutele VPN importate diferă de clientul care funcționează? Compară ambele
Un profil NetworkManager salvat și rutele chiar instalate sunt două lucruri diferite. Compară destinațiile private și publice înainte de a schimba ceva.
Un serviciu privat răspunde prin VPN în timp ce traficul obișnuit de internet se comportă complet altfel decât pe mașina unui coleg, iar tentația este să concluzionezi că clientul Ubuntu este defect. Această concluzie sare peste un pas. O operațiune privată funcțională și o cale publică diferită sunt două observații, iar diferența se află de obicei în politica de trafic instalată de fiecare client, nu în clientul însuși.
Compararea configurației salvate cu starea efectivă a rețelei cere trei comenzi și răspunde la întrebarea la care încercau să răspundă presupunerile.
Mai întâi profilul salvat, apoi starea efectivă
O conexiune OpenVPN importată devine un profil NetworkManager propriu. Fișierul .ovpn din care provine încetează să mai fie sursa de adevăr în momentul în care importul se termină, așa că editarea acelui fișier mai târziu nu schimbă nimic în conexiunea pe care o folosești. Acesta este primul loc în care comparația merge greșit, și merge greșit în tăcere.
nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn
Citește UUID-ul când numele se ciocnesc; numele duplicate supraviețuiesc reinstalărilor și restaurărilor de profil, iar tu poți petrece o oră editând copia care nu este folosită. Valorile pe care le vezi descriu intenția salvată: dacă profilul poate prelua ruta implicită, ce rute au fost stocate și ce resolveri și domenii de căutare solicită. Nu descriu ce s-a întâmplat la activarea conexiunii, pentru că un plugin sau un push de la server poate adăuga stare pe care profilul nu o menționează. De aceea contează următoarea comandă.
Apoi uită-te la ce a făcut de fapt sistemul cu acea intenție, inclusiv regulile de politică și fiecare tabelă, nu doar tabela principală. Proprietățile salvate sunt date de intrare, iar tabelele instalate sunt rezultatul.
ip -4 rule show
ip -4 route show table all
Două destinații, o comparație
Alege o destinație privată care funcționează și o destinație publică obișnuită, apoi întreabă nucleul ce cale ar lua fiecare. A face asta pe ambele mașini este ceea ce transformă o diferență vagă într-una specifică.
ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20
Adresele sunt exemple de înlocuit cu ale tale; contează perechea, nu numerele. Compară interfața, adresa sursă și tabela numită în fiecare ieșire. Când căutarea privată indică tunelul și cea publică indică și ea tunelul, ai un tunel complet, iar celălalt client poate avea unul divizat, sau invers.
Nu cere celor doi clienți să afișeze text identic. redirect-gateway def1 la OpenVPN este exprimat de obicei ca două rute de semiprefix în loc de una implicită, iar un manager care le afișează diferit nu este prin asta greșit. Judecă acoperirea, pe care o arată căutările, nu formatarea.
Unde cei doi clienți diferă în mod legitim
Valorile implicite ale clienților sunt alegeri de politică și au voie să nu fie de acord. Un produs poate prefera un tunel complet, altul poate păstra implicitul local și ruta doar prefixele private, iar al treilea poate urma ce a trimis serverul. O diferență este defect doar când contrazice cerința pe care ai primit-o.
Așa că compară fiecare client cu intenția aprobată de tunel divizat sau complet, nu unul cu altul. Dacă cerința este ca traficul privat să folosească tunelul, iar calea locală de internet să rămână locală, atunci tunelul complet este eroarea și tunelul divizat este corect, indiferent care client a făcut ce. Notează intenția înainte de a te uita la oricare dintre configurații, altfel primul client pe care îl inspectezi devine în tăcere standardul.
DNS este o a doua axă și eșuează independent. O rută corectă poate trimite în continuare interogări către un resolver care nu poate răspunde pentru zona privată, iar un resolver corect nu repară o rută greșită. Verifică ambele și tratează un nume privat care se rezolvă în timp ce o adresă privată nu o face ca dovadă că cele două straturi sunt rezolvate separat.
Păstrează comparația curată
Rulează un singur proprietar de conexiune odată. O sesiune OpenVPN din linia de comandă care rulează lângă profilul importat își instalează propriile rute și propria stare de resolver, iar amestecul rezultat nu este comportamentul niciunui client. Demontează unul înainte de a-l măsura pe celălalt. Repornește dacă nu ești sigur ce mai ține stare, pentru că o rută veche de o oră va arăta exact ca o problemă de politică.
Ține fix și tot restul: același endpoint, același cont, aceleași versiuni de software, aceeași rețea. Un succes pe laptopul Windows al unui coleg testează un alt client, o altă integrare de resolver și posibil un alt profil de server, deci nu este dovadă despre managerul Ubuntu.
Referința de setări IPv4 a NetworkManager definește precis never-default și proprietățile rutelor salvate, ceea ce merită citit înainte de a modifica o valoare gestionată. Și ține minte domeniul acestei comparații: acoperă IPv4 și nu spune nimic despre politica IPv6 corespunzătoare, care are propriile valori implicite și propriul mod de a te surprinde.