Deschideți tabelul de rutare după conectare și găsiți o singură adresă rutată prin tunel, în timp ce subrețeaua din jur merge în continuare la poarta locală. Acea intrare este o rută de gazdă: o adresă, potrivită de un prefix format din numai unu. Contează pentru că deciziile de rutare folosesc cel mai lung prefix potrivit, așa că un /32 poate înlocui un /24 sau o rută implicită fără a schimba niciuna dintre ele. Dacă este o excepție atentă sau o întrerupere viitoare depinde de adresa pe care o numește și de cine o întreține.

O adresă, o intrare în tabel

O rută de gazdă IPv4 poartă un prefix /32, iar o rută de gazdă IPv6 poartă /128, ceea ce înseamnă că intrarea poate potrivi exact o adresă de destinație. Nimic altceva din tabel nu se mișcă: subrețeaua care o acoperă și ruta implicită rămân unde erau. Intrarea îngustă câștigă pentru acea adresă pentru că prefixul ei este mai lung, nu pentru că a fost adăugată mai târziu.

Acea proprietate face dintr-o rută de gazdă o excepție bună și un obicei prost. Două intrări /32 care numesc ușa din față a unui serviciu nu acoperă a doua adresă a acestuia, adresa lui IPv6 sau adresa în care se mută luna viitoare. Un tabel plin de intrări cu o singură adresă neexplicate înseamnă de obicei că cineva continua să peticiască în jurul unei decizii de subrețea în loc să o ia. Citiți mai întâi lungimea prefixului, apoi întrebați ce ar trebui să protejeze intrarea.

Citiți intrarea de la client spre exterior

Începeți de la mașina cu problema, pentru că aceeași adresă poate fi rutată diferit pe un laptop și pe poarta din fața lui. Întrebați nucleul ce cale ar alege pentru adresa exactă pe care o folosește aplicația, în loc să citiți tabelul de sus. Răspunsul include interfața și următorul salt, care împreună sunt decizia.

ip route get 203.0.113.25
ip -6 route get 2001:db8:4::25
ip route show | grep -F 203.0.113.25
Find-NetRoute -RemoteIPAddress 203.0.113.25

Repetați interogarea pentru familia de adrese pe care aplicația o alege de fapt, deoarece un client poate prefera IPv6 și poate ocoli în liniște o excepție IPv4. Comparați rezultatul înainte și după ridicarea tunelului și păstrați ambele ieșiri. Acea comparație arată dacă clientul a adăugat intrarea la conectare sau dacă era deja acolo.

O intrare persistentă și o intrare de execuție eșuează diferit. Cea de execuție dispare cu sesiunea, în timp ce cea persistentă supraviețuiește unei reporniri și continuă să trimită trafic către o poartă care nu mai există.

Excepția punctului final și capcana recursiunii

Clienții VPN instalează de obicei o rută de gazdă către adresa externă a serverului prin poarta originală înainte de a redirecționa ruta implicită. Fără acea intrare, pachetele criptate ar fi trimise în tunelul pe care încearcă să îl construiască, iar conexiunea ar intra în buclă până la expirare.

Capcana apare când subrețelele acceptate ale tunelului includ din întâmplare acea adresă a punctului final, sau când un al doilea profil adaugă mai târziu o rută mai largă. Atunci intrarea punctului final pierde în fața unui prefix mai lung, iar sesiunea se prăbușește de îndată ce începe să treacă trafic. Scrierea adresei punctului final lângă subrețelele acceptate este cea mai ieftină cale de a observa coliziunea înaintea utilizatorilor. Explică și de ce același profil funcționează dintr-o rețea și eșuează din alta.

Verificați calea pe care aplicația o folosește cu adevărat

Un ping reușit către numele gazdei este o dovadă slabă când aplicația se conectează la altă adresă sau la altă familie. Verificați combinația exactă de adresă, familie, port și interfață, de pe mașina care rulează clientul.

ip route get 203.0.113.25
sudo nft list ruleset | grep -A 4 'chain output'
curl -sS --max-time 8 -o /dev/null -w '%{remote_ip}
' https://app.example.net

Dacă calea este greșită, decideți dacă cerința este o rețea sau o singură adresă înainte de a edita ceva. O cerință de adresă unică justifică o rută de gazdă cu un comentariu și un proprietar; un serviciu cu adrese rotative are nevoie de rutare bazată pe domeniu sau de o decizie onestă de subrețea.

Eliminați intrările care nu mai corespund unei destinații reale și notați-le pe cele pe care le păstrați. Un /32 neexplicat este de nedistins de o eroare trei luni mai târziu, iar următoarea persoană îl va șterge fără să știe de ce depindea.

Articole similare