TCP ponovna slanja nasuprot IPsec odbacivanjima ponavljanja: čitajte svaki sloj
Zastavica ponovnog slanja, duplikat ACK i brojač odbačenih ESP ponavljanja mjere različite događaje na različitim slojevima. Čitajte svaki brojač tamo gdje nastaje.
Tri različita alata prijavljuju tri različita duplikata, a samo je jedan od njih mrežni događaj na koji možete djelovati. TCP ponovno slanje je pošiljalac koji ponovo šalje opseg, duplikat ACK je primalac koji ponavlja potvrdu, a odbacivanje ESP ponavljanja je sigurnosna asocijacija koja odbija redni broj koji je već prihvatila. Nijedno od troje ne podrazumijeva ostala dva. Čitajte svaki brojač na sloju koji ga stvara prije nego što ih spojite u priču.
Tri brojača koji nikada ne mjere isti događaj
Oznaka TCP ponovnog slanja znači da je pošiljalac ponovo stavio opseg sekvence na žicu. Gubitak je jedan od razloga za to, a snimak koji imate možda jednostavno nema originalni paket ili potvrdu koja bi objasnila vrijeme. Duplikat ACK je primalac koji ponavlja kumulativnu potvrdu po pravilima TCP oporavka, što nije ni duplikat zapisa aplikacije ni druga kopija podataka.
ESP radi u vlastitom prostoru sekvenci. Svaka sigurnosna asocijacija numeriše pakete koje šalje, a primalac drži prozor brojeva koje je već prihvatio, pa se ESP paket koji stigne dvaput odbacuje samo po tim pravilima. Zato ponovo poslani TCP segment putuje u novom ESP paketu s novim rednim brojem, što je ispravno ponašanje na oba sloja. Isti bajtovi mogu izgledati novi u jednom brojaču i stari u drugom, i nijedan sloj ne laže.
Šta analizator može, a šta ne može vidjeti
Počnite s rječnikom analizatora, jer nazivi filtera opisuju zapažanja, a ne unutrašnjost krajnjih tačaka. Brojanje istim nazivima koje alat koristi čuva vas iskrenim u pogledu toga šta je zaista izmjereno. Broj iz nepotpunog snimka je broj onoga što je preživjelo, a ne onoga što se dogodilo na žici.
tshark -r trace.pcap -Y "tcp.analysis.retransmission" | wc -l
tshark -r trace.pcap -Y "tcp.analysis.duplicate_ack" | wc -l
Čitajte stručne informacije pored tih brojeva, jer upozorenja o kontrolnom zbiru i redoslijedu mijenjaju koliku težinu zaslužuju. Spojeni trag s dva senzora može prikazati jedan okvir dvaput, a brojanje obje kopije izmišlja događaj oporavka koji se nikada nije dogodio.
ESP brojači žive u stanju kernela
ESP redni brojevi pripadaju sigurnosnoj asocijaciji, a ne TCP toku, pa je gateway mjesto na kojem treba pitati. Popis stanja prijavljuje brojače paketa i grešaka po asocijaciji koje nijedan snimak ne može rekonstruisati.
ip -s xfrm state
tshark -r trace.pcap -Y "esp" -T fields -e esp.seq | head
RFC 4303 definiše redni broj i prozor protiv ponavljanja koji ga troši, zbog čega brojač raste i kada ništa nije u redu. Monotoni vanjski redni brojevi bez odgovarajuće TCP anomalije upućuju na drugog pošiljaoca ili dupliranu putanju, a ne na oluju ponovnog slanja. Vanjski snimak šifrovanog tunela obično skriva unutrašnje TCP redne brojeve, pa ne može dokazati šta je unutrašnji stek uradio. Snimajte unutar tunela samo gdje politika dozvoljava i nikada ne isključujte zaštitu od ponavljanja da ućutkate nepovezano upozorenje.
Gdje gledište mijenja odgovor
Prije eskalacije zapišite kako je snimak napravljen: interfejs, da li je proces snimanja prijavio gubitke i da li su vremenske oznake uporedive među senzorima. Jedno gledište ne može vidjeti oba kraja putanje, pa je svaka tvrdnja o ponašanju primaoca zaključak, a ne mjerenje. Trag snimljen na gatewayu i trag snimljen na hostu neće se slagati oko redoslijeda pod opterećenjem, a to neslaganje obično pripada snimku, a ne tunelu. Povezivanje dva pogleda pretvara broj u dokaz.
Koristite jedan dozvoljeni aplikacijski tok i zabilježite brojače krajnjih tačaka pored brojeva snimka u istom trenutku. Ako se brojevi ne slažu, vjerujte sloju koji posjeduje događaj, a drugi tretirajte kao artefakt posmatranja dok se ne dokaže suprotno. To pravilo rješava većinu ovih tiketa bez diranja konfiguracije tunela.
Čitanje brojeva u ispravnom redu
Počnite od sloja na kojem je pitanje postavljeno: na TCP upozorenje odgovara se iz TCP snimka, a na ESP odbacivanje odgovara se iz brojača sigurnosne asocijacije na gatewayu. Tek tada pitajte da li dva pogleda opisuju isti paket. Zaključak koji traži oba sloja treba da imenuje oba, jer tvrdnja o tunelu koja počiva samo na TCP oznaci je nagađanje.
Zabilježite sloj, brojač i gledište za svaki nalaz i sljedeći čitalac neće spojiti tri događaja u jedan izmišljeni kvar. Eskalirajte s ta tri polja i popravka obično slijedi iz prvog.