Retransmisii TCP versus respingeri de reluare IPsec: citiți fiecare strat
Un fanion de retransmisie, un ACK duplicat și un contor de respingeri de reluare ESP măsoară evenimente diferite la straturi diferite. Citiți fiecare contor acolo unde este produs.
Trei instrumente diferite raportează trei duplicate diferite, și doar unul dintre ele este un eveniment de rețea pe care puteți acționa. O retransmisie TCP este un expeditor care retrimite un interval, un ACK duplicat este un receptor care repetă o confirmare, iar o respingere de reluare ESP este o asociere de securitate care refuză un număr de secvență pe care l-a acceptat deja. Niciunul dintre cele trei nu îl implică pe celelalte. Citiți fiecare contor la stratul care îl produce înainte de a le lega într-o poveste.
Trei contoare care nu măsoară niciodată același eveniment
Adnotarea de retransmisie TCP înseamnă că expeditorul a pus din nou un interval de secvență pe fir. Pierderea este unul dintre motive, iar captura pe care o aveți poate pur și simplu să nu conțină pachetul original sau confirmarea care ar explica momentul. Un ACK duplicat este receptorul care repetă o confirmare cumulativă conform regulilor de recuperare TCP, ceea ce nu este nici o scriere duplicată a aplicației, nici o a doua copie a datelor.
ESP lucrează în propriul spațiu de secvență. Fiecare asociere de securitate numerotează pachetele pe care le trimite, iar receptorul ține o fereastră de numere pe care le-a acceptat deja, astfel încât un pachet ESP care sosește de două ori este aruncat doar pe baza acestor reguli. De aceea un segment TCP retransmis călătorește într-un pachet ESP nou cu un număr de secvență nou, ceea ce este comportamentul corect la ambele straturi. Aceiași octeți pot părea noi într-un contor și vechi în altul, și niciunul dintre cele două straturi nu minte.
Ce poate și ce nu poate vedea analizorul
Începeți cu vocabularul analizorului, pentru că numele filtrelor descriu observații, nu interiorul punctelor terminale. Numărarea cu aceleași nume pe care le folosește instrumentul vă ține onești cu privire la ce s-a măsurat de fapt. O numărătoare dintr-o captură incompletă este o numărătoare a ceea ce a supraviețuit, nu a ceea ce s-a întâmplat pe fir.
tshark -r trace.pcap -Y "tcp.analysis.retransmission" | wc -l
tshark -r trace.pcap -Y "tcp.analysis.duplicate_ack" | wc -l
Citiți informațiile de expert lângă acele numere, pentru că avertismentele despre suma de control și ordine schimbă câtă greutate merită. O urmă fuzionată din doi senzori poate arăta un cadru de două ori, iar numărarea ambelor copii inventează un eveniment de recuperare care nu s-a întâmplat niciodată.
Contoarele ESP trăiesc în starea nucleului
Numerele de secvență ESP aparțin asocierii de securitate, nu fluxului TCP, așa că gateway-ul este locul unde trebuie întrebat. Listarea stării raportează contoare de pachete și erori pe asociere pe care nicio captură nu le poate reconstrui.
ip -s xfrm state
tshark -r trace.pcap -Y "esp" -T fields -e esp.seq | head
RFC 4303 definește numărul de secvență și fereastra anti-reluare care îl consumă, motiv pentru care contorul crește chiar și când nimic nu este în neregulă. Numerele de secvență exterioare monotone fără o anomalie TCP corespunzătoare indică un alt expeditor sau o cale duplicată, nu o furtună de retransmisii. O captură exterioară a unui tunel criptat ascunde de obicei numerele de secvență TCP interioare, așa că nu poate dovedi ce a făcut stiva interioară. Capturați în interiorul tunelului doar unde politica permite, și nu dezactivați niciodată anti-reluarea pentru a reduce la tăcere un avertisment nelegat.
Unde punctul de observație schimbă răspunsul
Înainte de a escalada, notați cum a fost făcută captura: interfața, dacă procesul de captură a raportat pierderi și dacă marcajele de timp sunt comparabile între senzori. Un singur punct de observație nu poate vedea ambele capete ale unei căi, așa că orice afirmație despre comportamentul receptorului este o inferență, nu o măsurătoare. O urmă luată pe gateway și una luată pe gazdă nu vor fi de acord asupra ordinii sub sarcină, iar dezacordul aparține de obicei capturii, nu tunelului. Corelarea a două vederi este ceea ce transformă o numărătoare în dovadă.
Folosiți un singur flux de aplicație permis și notați contoarele punctelor terminale lângă numărătorile capturii în același moment. Dacă numerele nu sunt de acord, aveți încredere în stratul care deține evenimentul și tratați-l pe celălalt ca artefact de observație până la proba contrarie. Această regulă rezolvă majoritatea acestor cazuri fără a atinge configurația tunelului.
Citirea numerelor în ordinea corectă
Începeți cu stratul la care a fost pusă întrebarea: un avertisment TCP primește răspuns dintr-o captură TCP, iar o respingere ESP primește răspuns din contoarele asocierii de securitate de pe gateway. Abia apoi întrebați dacă cele două vederi descriu același pachet. O concluzie care are nevoie de ambele straturi ar trebui să le numească pe amândouă, pentru că o afirmație despre tunel bazată doar pe o adnotare TCP este o presupunere.
Notați stratul, contorul și punctul de observație pentru fiecare constatare, iar următorul cititor nu va fuziona trei evenimente într-o singură defecțiune imaginară. Escaladați cu aceste trei câmpuri, iar corectarea decurge de obicei din primul.