Duplicirani IKE paketi: pronađite prijelaz koji nedostaje
Ponovljeni IKE zahtjev je događaj tajmera, a ne dijagnoza. Izgradite jedan lanac dokaza od inicijatora do odgovora, s ispravnim identifikatorima verzije.
Zapis prikazuje isti IKE zahtjev dvaput, neko pokazuje na mobilni uplink, a tiket se zatvara nagađanjem. To nagađanje je mit: ponovljeni paket je zapažanje o jednoj razmjeni, a ne dijagnoza linka. Ponovno slanje je normalno ponašanje sa svojim pravilima i pojavljuje se na zdravim putevima kad god je odgovor spor. Pratite odgovor prije nego što okrivite interfejs.
Mit: ponovljeni zahtjev dokazuje gubitak na jednom linku
Dvije različite stvari proizvode duplikat i nijedna ne imenuje krivca. Podnosilac zahtjeva može ponoviti zahtjev jer nije dobio odgovor, ili tačka snimanja može prikazati isti paket dvaput zbog toga gdje je priključena na stek. Prisluškivač koji vidi ulaz i izlaz na istom hostu rado će zabilježiti jedan paket kao dva, a operater koji čita taj zapis nema načina da razlikuje to dvoje bez identifikatora razmjene. Tretirajte duplikat kao događaj tajmera dok ne budete mogli reći koji od ta dva držite.
Dva uplinka pogoršavaju zbrku umjesto da je smanje. Jedan red zapisa imenuje jedan interfejs, dok je odgovor možda otišao kroz drugi, pa interfejs u poruci opisuje gdje je paket viđen, a ne oblik razgovora. Zato je prvo pitanje koju razmjenu gledate, a ne koji je link neispravan.
Šta vam ponovno slanje zapravo govori
U IKEv2 ponovno slanje radi ovako: podnosilac ponavlja zahtjev kada odgovor nije stigao, a odgovarač može ponovo poslati svoj keširani odgovor umjesto da izračuna novi. Identifikatori poruka pripadaju toj razmjeni i zato je ponovljeni zahtjev s istim identifikatorom prepoznatljiv kao rad protokola, a ne kao novi pokušaj. Početni pokušaj često zahtijeva više od izvorne adrese ili inicijatorovog SPI-ja za povezivanje, pa je vlastiti zapis razmjene platforme bolji od spiska paketa. IKEv1 slijedi drugačija pravila s drugačijim identifikatorima, a upozorenje dobavljača o duplikatu prvog paketa ne znači isto u svim verzijama.
Dakle, vremenska oznaka ponovnog slanja govori vam da je tajmer istekao. Ne govori vam koji je hop bio spor i sigurno ne govori da je operater kriv. To su odvojene tvrdnje i samo je druga korisna u tiketu.
Praktična posljedica je da zabilježite razmjenu prije nego donesete zaključak. Zapišite lokalnu adresu primanja, putanju odgovora koju je odabrala politika, parnjakov tuple i identifikatore razmjene na jednom mjestu, jer svaki od njih odgovara na drugo pitanje kada se zapis kasnije čita.
Četiri tačke posmatranja kao jedan lanac
Zamislite razmjenu kao četiri karike u lancu, a ne kao četiri odvojena mjesta za gledanje. Karika drži dokaz ili ostaje nepoznata, a lanac je informativan onoliko koliko je informativna njegova najslabija zabilježena karika. Tabela ispod je inventar: šta svaka pozicija može utvrditi i šta ostavlja netaknutim.
| Pozicija | Dokaz koji može dati | Šta ostavlja otvorenim |
|---|---|---|
| Inicijator šalje | Zahtjev je napustio ovaj host | Da li je stigao do parnjaka |
| Odgovarač prima | Zahtjev je stigao | Da li je odgovor proizveden |
| Odgovarač šalje | Odgovor je napustio gateway | Da li je slijedio predviđenu putanju |
| Inicijator prima | Razmjena je završena | Da li je politika prihvatila rezultat |
Popunite lanac samo tamo gdje imate pristup, a ostatak označite nepoznatim umjesto da ga izvodite. Kuka koja snima pakete na jednoj mašini ne govori ništa o tome šta je primila udaljena mašina, a red zapisa koji bilježi da je zahtjev viđen nije dokaz da je odgovor ikada otišao. Iskrene praznine su korisnije od zapisa koji izgleda potpun, a sastavljen je od nagađanja.
Pronađite prvi prijelaz koji nedostaje
Prođite lanac od inicijatora prema van i zaustavite se na prvoj karici bez dokaza. Ako gateway nikada ne zabilježi zahtjev, kvar je na putu prije njega. Kada gateway iznova bilježi isti zahtjev, a klijent nikada ne zabilježi odgovor, sumnjiv je povratni smjer: izvorna adresa, translacija i filtriranje na svakoj granici koju kontrolišete. Ako odgovor stigne, a klijent se i dalje ne pomjera, pitanje je napustilo transport i postalo politika ili stanje.
Držite parnjaka i protokol fiksnim dok poredite i zapamtite da kašnjenje, gubitak, politika i stanje svaki proizvode drugačiju vremensku liniju. Mobilna mreža nije automatski uzrok, a fiksna linija nije automatski dovoljno pouzdana za svaki zahtjev. Snimite oba smjera dok je razmjena aktivna:
tcpdump -ni any -vv 'udp port 500 or udp port 4500'
Kada pristup prestane prije udaljenog kraja, zapis i dalje pomaže ako kaže gdje prestaje. Snimanje samo na inicijatoru može pokazati zahtjev koji odlazi i odgovor koji ne dolazi, što sužava kvar na sve nakon te kuke bez pretvaranja da znate koji ga je hop ispustio. Označite udaljene karike nepoznatim i prepustite sljedećoj osobi s pristupom da ih popuni. Tako zapisano, zapis ostaje iskren i kratak.
Uporedite prije nego što bilo šta promijenite. Ponavljanje istog zahtjeva prema istom parnjaku s istim protokolom drži varijable prebrojivim, dok reset, obnavljanje ključa ili izmjena politike između snimanja uništava poređenje. Ako je promjena neizbježna, snimite odmah nakon nje kako bi prije i poslije i dalje opisivali istu razmjenu.
Šta kaže koristan izvještaj
Izvještaj vrijedan djelovanja spaja jedan zahtjev s njegovim odgovorom i imenuje prvi korak iza kojeg nema dokaza. Ta rečenica preživi čitanje sedmicu kasnije od strane inženjera koji nije bio tamo i daje sljedećoj osobi mjesto za početak, a ne osumnjičenog.
Nikada ne slabe provjere identiteta niti širite dozvoljeni skup protokola samo da biste provjerili teoriju ponovnog slanja. Sačuvajte originalne pakete i zapise događaja prije bilo kakvog reseta, jer reset uništava tačno materijal koji ste namjeravali prikupiti i briše vrijeme koje je pokazivalo gdje se razmjena zaglavila.
Mit je da jedan duplikat dokazuje krivicu operatera. Stvarnost je da jedan duplikat dokazuje da je tajmer istekao, a odgovor živi na putanji odgovora.