Duplicitné pakety IKE: nájdite chýbajúci prechod
Opakovaná požiadavka IKE je udalosť časovača, nie diagnóza. Zostavte jednu reťaz dôkazov od iniciátora po odpoveď, so správnymi identifikátormi verzie.
Záznam zobrazuje tú istú požiadavku IKE dvakrát, niekto ukazuje na mobilný uplink a tiket sa uzatvára s domnienkou. Tá domnienka je mýtus: opakovaný paket je pozorovanie o jednej výmene, nie diagnóza spojenia. Opakované odoslanie je normálne správanie s vlastnými pravidlami a objavuje sa na zdravých cestách vždy, keď je odpoveď pomalá. Sledujte odpoveď, skôr než obviníte rozhranie.
Mýtus: opakovaná požiadavka dokazuje stratu na jednom spojení
Dve rôzne veci vytvárajú duplikát a ani jedna neuvádza vinníka. Žiadateľ môže požiadavku zopakovať, pretože nedostal odpoveď, alebo odpočúvacie miesto môže zobraziť ten istý paket dvakrát podľa toho, kde je pripojené k zásobníku. Sonda, ktorá vidí vstup aj výstup na tom istom hostiteľovi, ochotne zapíše jeden paket ako dva, a operátor čítajúci tento záznam nemá bez identifikátorov výmeny ako rozdiel rozoznať. Berte duplikát ako udalosť časovača, kým nebudete vedieť povedať, ktorú z tých dvoch držíte.
Dva uplinky zmätok skôr zhoršia než zlepšia. Jeden riadok záznamu pomenúva jedno rozhranie, zatiaľ čo odpoveď mohla odísť druhým, takže rozhranie v správe opisuje, kde bol paket videný, a nie tvar konverzácie. Preto je prvou otázkou, na ktorú výmenu sa pozeráte, a nie ktoré spojenie je chybné.
Čo vám opakované odoslanie skutočne hovorí
V IKEv2 funguje opakované odoslanie takto: žiadateľ zopakuje požiadavku, keď neprišla odpoveď, a respondent môže znova odoslať svoju uloženú odpoveď namiesto toho, aby počítal novú. Identifikátory správ patria tejto výmene, a práve preto je opakovaná požiadavka s rovnakým identifikátorom rozpoznateľná ako práca protokolu, nie ako nový pokus. Prvý pokus často potrebuje na prepojenie viac než zdrojovú adresu alebo SPI iniciátora, takže vlastný záznam výmeny platformy je lepší než zoznam paketov. IKEv1 sa riadi inými pravidlami s inými identifikátormi a upozornenie dodávateľa na duplikát prvého paketu neznamená vo všetkých verziách to isté.
Takže časová pečiatka opakovaného odoslania hovorí, že časovač vypršal. Nehovorí, ktorý skok bol pomalý, a rozhodne nehovorí, že je na vine operátor. To sú oddelené tvrdenia a v tikete je užitočné len to druhé.
Praktickým dôsledkom je zaznamenať výmenu skôr, než urobíte záver. Poznamenajte miestnu prijímaciu adresu, cestu odpovede, ktorú zvolila politika, dvojicu partnera a identifikátory výmeny na jedno miesto, pretože každý z nich odpovedá na inú otázku, keď sa záznam neskôr číta.
Štyri pozorovacie body ako jeden reťaz
Berte výmenu ako štyri články reťaze, nie ako štyri oddelené miesta na pozeranie. Článok drží dôkaz alebo zostáva neznámy, a reťaz je len taká informatívna, aký je jej najslabší zaznamenaný článok. Tabuľka nižšie je inventár: čo môže každá pozícia preukázať a čo necháva nedotknuté.
| Pozícia | Dôkaz, ktorý môže poskytnúť | Čo necháva otvorené |
|---|---|---|
| Iniciátor odosiela | Požiadavka opustila tohto hostiteľa | Či dorazila k partnerovi |
| Respondent prijíma | Požiadavka dorazila | Či vznikla odpoveď |
| Respondent odosiela | Odpoveď opustila bránu | Či išla zamýšľanou cestou |
| Iniciátor prijíma | Výmena bola dokončená | Či politika výsledok prijala |
Vypĺňajte reťaz len tam, kde máte prístup, a zvyšok označte ako neznámy, namiesto toho, aby ste ho odvodzovali. Háčik, ktorý zaznamenáva pakety na jednom stroji, nehovorí nič o tom, čo prijal vzdialený stroj, a riadok záznamu, že bola požiadavka videná, nie je dôkazom, že niekedy odišla odpoveď. Poctivé medzery sú užitočnejšie než záznam, ktorý vyzerá úplne a je postavený na domnienkach.
Nájdite prvý chýbajúci prechod
Prejdite reťaz od iniciátora von a zastavte sa pri prvom článku bez dôkazu. Ak brána požiadavku nikdy nezaznamená, porucha je na ceste pred ňou. Keď brána zaznamenáva tú istú požiadavku znova a znova, zatiaľ čo klient nikdy nezaznamená odpoveď, podozrivý je spätný smer: zdrojová adresa, preklad a filtrovanie na každej hranici, ktorú ovládate. Ak odpoveď dorazí a klient napriek tomu nepokračuje, otázka opustila transport a stala sa politikou alebo stavom.
Pri porovnávaní držte partnera a protokol pevné a pamätajte, že oneskorenie, strata, politika a stav vytvárajú každý inú časovú os. Mobilná sieť nie je automaticky príčinou a pevná linka nie je automaticky dosť spoľahlivá pre každú požiadavku. Zachyťte oba smery, kým výmena beží:
tcpdump -ni any -vv 'udp port 500 or udp port 4500'
Keď sa prístup skončí pred vzdialeným koncom, záznam stále pomáha, ak hovorí, kde sa končí. Zachytenie len na iniciátorovi môže ukázať odchádzajúcu požiadavku a žiadnu prichádzajúcu odpoveď, čo zúži poruchu na všetko po tomto háčiku, bez predstierania, že viete, ktorý skok ju zhodil. Označte vzdialené články ako neznáme a nechajte ich vyplniť ďalšiemu človeku s prístupom. Takto zapísaný záznam zostáva poctivý a stále krátky.
Porovnávajte, kým čokoľvek zmeníte. Opakovanie tej istej požiadavky voči tomu istému partnerovi s tým istým protokolom udržiava premenné spočítateľné, zatiaľ čo reset, obnovenie kľúča alebo úprava politiky medzi zachyteniami porovnanie ničí. Ak je zmena nevyhnutná, zachyťte znova hneď po nej, aby pred a po stále opisovalo tú istú výmenu.
Čo hovorí užitočná správa
Správa, ktorá stojí za akciu, spája jednu požiadavku s jej odpoveďou a pomenúva prvý krok, za ktorým nestojí dôkaz. Tá veta prežije čítanie o týždeň neskôr inžinierom, ktorý tam nebol, a dáva ďalšiemu človeku miesto, kde začať, nie podozrivého.
Nikdy neoslabujte kontroly identity a nerozširujte povolenú množinu protokolov len preto, aby ste overili teóriu opakovaného odoslania. Pred akýmkoľvek resetom uložte pôvodné pakety a záznamy udalostí, pretože reset ničí presne ten materiál, ktorý ste sa chystali zhromaždiť, a maže časovanie, ktoré ukazovalo, kde sa výmena zasekla.
Mýtus je, že jeden duplikát dokazuje vinu operátora. Realita je, že jeden duplikát dokazuje, že vypršal časovač, a odpoveď žije na ceste odpovede.