Ai ridicat tunelul, temporizatorul de rekey numără invers, iar ambele direcții citesc în continuare zero pachete. Nimic din acea pereche de numere nu spune că peer-ul ți-a respins tunelul: un CHILD SA instalat cu contoare inactive este starea normală a unei asocieri cu care nimic nu s-a potrivit încă. Munca este să demonstrezi că un pachet ar fi trebuit să se potrivească, apoi să găsești punctul în care a părăsit calea descrisă de selectoare. Fă-o o dată, în ordine, și păstrează cererea identică între rulări.

Ce dovedește de fapt un contor zero

Un CHILD SA este o pereche de selectoare plus cheile și SPI-ul care criptează traficul ce cade în acele intervale. A-l instala înseamnă doar că ambele peer-uri au căzut de acord asupra acelor intervale și a cheilor derivate; kernelul îl ține ore întregi fără ca un singur pachet să sosească. Așadar întrebarea nu este niciodată dacă tunelul există, ci dacă vreun pachet trimis de testul tău a căzut în intervalele negociate de cele două peer-uri. Dacă niciunul nu a căzut, contoarele rămân la zero și asocierea expiră nefolosită la sfârșitul duratei de viață.

Această distincție schimbă ce inspectezi mai întâi. O propunere respinsă, un eșec de autentificare sau un IKE SA pe moarte apar toate în log sau în lista de SA, nu ca un zero tăcut. Un tunel care negociază curat și apoi rămâne inactiv indică mai degrabă potrivirea, rutarea sau originea traficului de test.

Trimite un flux pe care îl poți descrie înainte de a-l trimite

Alege o destinație din subrețeaua protejată și deschide o conexiune nouă către ea; o pagină încărcată acum o oră poate veni din cache, iar un răspuns din cache nu atinge niciodată tunelul. Apoi notează patru valori cât timp cererea este încă ipotetică: adresa sursă pe care aplicația o va lega, destinația, familia de adrese și numele sau perechea de selectoare a copilului pe care îl urmărești. Acea înregistrare este ce transformă un contor plat într-o afirmație verificabilă.

Adresa sursă este valoarea pe care oamenii o sar, și este cea care strică cel mai des testul. Un laptop cu adresă cu fir, adresă Wi-Fi și adresă de tunel poate lega oricare dintre ele în funcție de căutarea rutei, iar doar una poate sta în intervalul negociat. Folosește un instrument care îți permite să fixezi sursa, cum ar fi ping -I 10.1.0.5 10.2.0.9 sau curl --interface 10.1.0.5, astfel încât pachetul să nu poată alege în liniște altă adresă. Când rularea fixată mișcă contoarele iar cea nefixată nu, ai găsit o problemă de rutare, nu una de IPsec.

Ce numere să citești și unde locuiesc ele

Pe Linux, ip -s xfrm state tipărește fiecare asociere cu o linie lifetime current: al cărei total de octeți și de pachete aparțin numai acelui SA, urmată de o linie stats: pentru reluare și numărări de erori. La un peer strongSwan, swanctl --list-sas tipărește o linie in și o linie out pentru fiecare copil instalat, fiecare terminându-se cu un număr de octeți și un număr de pachete; uneltele stroke mai vechi numesc aceeași pereche bytes_i și bytes_o. Citește cele două direcții separat, pentru că cea care a rămas plată este constatarea. Însumarea lor ascunde exact asimetria pe care o cauți.

Ambele vizualizări sunt pe asociere, deci un rekey instalează o pereche SPI nouă și linia ta de bază revine la zero fără ca nimic să fie stricat. Notează SPI-ul pe care îl urmărești înainte să declanșeze temporizatorul de rekey, altfel vei compara un SA nou cu un număr vechi. Dacă ieșirea crește în timp ce intrarea rămâne plată, selectorul s-a potrivit și răspunsul nu a revenit niciodată, ceea ce mută investigația către forwardingul peer-ului și propria lui politică. Documentația de configurare IKEv2 a strongSwan acoperă ciclul de viață al SA-ului copil și momentul rekey din spatele acestor cifre.

Punctul de observare este o variabilă separată de originea pachetului. Un offload hardware poate incrementa contoarele asocierii în timp ce o captură software pe interfață nu arată nimic, pentru că pachetele descărcate ocolesc cârligul pe care stă captura, iar intrarea poate divergea la fel. Când cele două nu sunt de acord, folosește contoarele ca să răspunzi dacă ceva s-a potrivit și captura ca să răspunzi cum arăta pachetul.

Rută, selectoare și unde s-a născut pachetul

Compară trei lucruri alături: ruta pe care kernelul o alege pentru destinația ta, politica ce direcționează traficul în tunel și perechea de selectoare negociată de copil. ip route get 10.2.0.9 from 10.1.0.5 numește interfața și sursa pe care kernelul le-ar folosi, care adesea nu este perechea pe care ai presupus-o. ip xfrm policy arată șabloanele și selectoarele instalate local, în timp ce swanctl --list-sas arată cu ce a fost de acord peer-ul. O căutare care scoate pachetul pe interfața fizică nu ajunge deloc la politică, așa că contoarele nu se pot mișca.

Nepotrivirile vin în mai multe forme care arată identic dintr-un contor. O destinație IPv6 în afara unui selector IPv4, o adresă sursă din subrețeaua greșită și o politică mai îngustă decât copilul produc toate același zero. Repară mai întâi cauza cea mai îngustă, pentru că lărgirea unui selector doar ca să muti un număr schimbă ce protejează tunelul.

Apoi este originea pachetului, capcana pe care un gateway o întinde propriului operator. Traficul pe care gateway-ul îl generează el însuși este potrivit cu politica de ieșire, în timp ce un pachet pe care îl transmite pentru un client este potrivit cu politica de forwarding, așa că un ping din cutie poate reuși pe o cale pe care niciun client nu merge vreodată.

O singură schimbare reversibilă și un raport care trece de revizuire

Schimbă un singur element, repetă cererea identică și citește aceleași contoare. Ștergerea tuturor regulilor de firewall sau înlocuirea tuturor selectoarelor deodată va mișca un număr și va distruge dovada care ți-a spus de ce. Dacă a doua rulare arată tot zero, ai eliminat o ipoteză în loc să pierzi după-amiaza.

Scrie constatarea într-o formă pe care altcineva o poate reproduce: numele copilului, intervalele acceptate, sursa pe care ai fixat-o, destinația pe care ai testat-o, direcția care a rămas la zero și SPI-ul pe care îl citeai. Acea propoziție separă o asociere pe care nimeni nu a folosit-o de o aplicație la distanță care a primit traficul și l-a refuzat. Dă schimbarea înapoi când nu a mișcat contoarele și păstrează înregistrarea; următoarea persoană începe de unde te-ai oprit. Nimic din tunel nu a trebuit reconstruit pentru toate acestea, și acesta este rostul verificării potrivirii înainte de a atinge configurația.

Articole similare