Conectezi tunelul, rulezi ip route, iar poarta implicită originală este încă acolo. Următorul gând este că clientul nu a preluat ruta, așa că ștergi manual ruta implicită și pierzi complet conectivitatea. Acea intrare ar trebui să rămână. Cu redirect-gateway def1, OpenVPN instalează două rute mai specifice care depășesc ruta implicită obișnuită în loc să o înlocuiască. Poarta veche rămâne și nu mai transportă traficul pe care îl testai.

Ce face def1 de fapt

Fanionul adaugă 0.0.0.0/1 și 128.0.0.0/1, ambele îndreptate spre tunel. 0.0.0.0/1 acoperă fiecare adresă al cărei prim octet este de la 0 la 127, iar 128.0.0.0/1 acoperă de la 128 la 255, așa că fiecare destinație IPv4 are o potrivire mai specifică decât vechea rută implicită. Lungimea prefixului, nu metrica, decide care rută câștigă.

Lăsarea rutei implicite originale pe loc este intenționată. Clientul nu trebuie să-și amintească ce a înlocuit și nu rescrie ruta care duce propria conexiune la serverul VPN. La deconectare elimină cele două jumătăți de rută, iar tabelul revine la ce era.

De ce /1 și nu /0

Rutarea alege prefixul potrivit cel mai lung, nu metrica cea mai mică, așa că un /1 învinge un /0 indiferent ce spune metrica rutei implicite. Ambele jumătăți există pentru că un /1 acoperă doar jumătate din spațiu; cu doar 0.0.0.0/1 prezent, tot ce este de la 128.0.0.0 în sus urmează în continuare vechea rută implicită, ceea ce produce simptomul înșelător în care unele site-uri funcționează, iar altele nu.

Creșterea sau scăderea metricii vechii rute implicite nu schimbă nimic, iar o rută implicită cu metrică mai mică pe altă interfață nu fură nici ea traficul. Mai întâi decide lungimea prefixului, iar doar prefixele egale apelează la metrică.

Citește un tabel de rutare real

Un gazdă conectată poate afișa toate cele trei intrări deodată, cu tunelul purtând jumătățile și poarta originală încă în listă. Adresele sunt exemple, nu o configurație de copiat, pentru că numele interfețelor, topologia tunelului și rutele suplimentare diferă în funcție de platformă și client.

default via 192.168.50.1 dev wlan0
0.0.0.0/1 via 10.8.0.1 dev tun0
128.0.0.0/1 via 10.8.0.1 dev tun0

Importantă este relația: două jumătăți concrete deasupra unei rute implicite generale. Linia vechii porți rămâne pentru că nimic nu a înlocuit-o.

Verifică ce rută ia pachetul cu adevărat

Rutele mai specifice pot câștiga în continuare: o rută pentru un interval privat, o subrețea locală sau adresa serverului VPN însuși este mai lungă decât un /1. Tunelul are nevoie de o cale exterioară către serverul său, iar trimiterea acelei conexiuni înapoi în tunel ar rupe-o imediat. Pe Linux întreabă nucleul în loc să citești tabelul cu ochiul: ip route get cu destinația care te interesează tipărește ruta aleasă, interfața și sursa. Dacă este configurată rutarea bazată pe politici, examinează și regulile, pentru că o regulă poate selecta alt tabel înainte ca tabelul principal să fie consultat.

Dacă doar o parte din IPv4 se comportă greșit, confirmă că ambele jumătăți sunt instalate și apoi caută o excepție care corespunde destinației care eșuează. Ștergerea vechii rute implicite nu este o soluție și elimină ruta de care clientul are nevoie pentru a demonta curat tunelul.

Ce nu acoperă def1

Două intrări IPv4 nu spun nimic despre IPv6: o gazdă cu conectivitate IPv6 continuă să folosească propria rută implicită până când ceva redirecționează separat acea familie, motiv pentru care într-o rețea cu stivă dublă o parte din trafic pare să ocolească tunelul. Alți clienți și manageri de rețea implementează rutarea de tunel complet diferit, iar tabelele lor nu vor coincide. Comportamentul def1 descris aici aparține fanionului documentat al OpenVPN, nu fiecărui VPN de pe mașină.

Un kill switch răspunde la altă întrebare: ce face mașina când tunelul cade. Prioritatea rutelor decide unde merge traficul cât timp tunelul este activ; nu decide ce face un firewall după aceea. Ordinea de lucru: citește tabelul, confirmă că ambele jumătăți există, rulează ip route get pentru destinația care eșuează, verifică regulile de politică și apoi uită-te separat la IPv6. Lasă vechea rută implicită unde este.

Articole similare