Dubleeritud IKE-paketid: leidke puuduv üleminek
Korduv IKE-taotlus on taimeri sündmus, mitte diagnoos. Looge üks tõendiahel algatajast vastuseni, õigete versioonitunnustega.
Logi näitab sama IKE-taotlust kaks korda, keegi osutab mobiilsele üleslingile ja pilet suletakse oletusega. See oletus on müüt: korduv pakett on tähelepanek ühe vahetuse kohta, mitte lingi diagnoos. Kordussaatmine on normaalne käitumine omade reeglitega ja ilmneb tervetel teedel alati, kui vastus on aeglane. Jälgige vastust, enne kui süüdistate liidest.
Müüt: korduv taotlus tõestab kadu ühel lingil
Kaks erinevat asja tekitavad duplikaadi ja kumbki ei nimeta süüdlast. Taotleja võib taotlust korrata, sest vastust ei saabunud, või võib püüdmispunkt näidata sama paketti kaks korda selle tõttu, kus see virna külge on kinnitatud. Pistik, mis näeb samal hostil sissetulevat ja väljuvat liiklust, logib ühe paketi hea meelega kaheks, ja seda logi lugev operaator ei saa ilma vahetuse tunnusteta neil vahet teha. Käsitlege duplikaati taimeri sündmusena, kuni suudate öelda, kumb neist kahest käes on.
Kaks üleslinki teevad segaduse pigem hullemaks kui paremaks. Üks logirida nimetab ühte liidest, samas kui vastus võis väljuda teise kaudu, seega kirjeldab sõnumis olev liides, kus pakett nähti, mitte vestluse kuju. Seetõttu on esimene küsimus, millist vahetust te vaatate, mitte milline link on rikkis.
Mida kordussaatmine teile tegelikult ütleb
IKEv2 puhul toimib kordussaatmine nii: taotleja kordab taotlust, kui vastust pole saabunud, ja vastaja võib saata oma vahemällu salvestatud vastuse uuesti, selle asemel et uus arvutada. Sõnumitunnused kuuluvad sellele vahetusele ja just see teeb sama tunnusega korduva taotluse äratuntavaks protokolli tööna, mitte uue katsena. Algne katse vajab korreleerimiseks sageli enamat kui lähteaadress või algataja SPI, seega on platvormi enda vahetusekirje paketiloendist parem. IKEv1 järgib teistsuguseid reegleid teistsuguste tunnustega ja tarnija hoiatus dubleeritud esimese paketi kohta ei tähenda versiooniti sama asja.
Seega ütleb kordussaatmise ajatempel, et taimer aegus. See ei ütle, milline hüpe oli aeglane, ja kindlasti ei ütle, et operaator on süüdi. Need on eraldi väited ja piletil on kasulik ainult teine.
Praktiline järeldus on vahetus kirja panna enne järelduse tegemist. Märkige kohalik vastuvõtuaadress, poliitika valitud vastusetee, partneri korteež ja vahetuse tunnused ühte kohta, sest igaüks neist vastab hiljem kirjet lugedes erinevale küsimusele.
Neli vaatluspunkti ühe ahelana
Mõelge vahetusest kui ahela neljast lülist, mitte kui neljast eraldi vaatamiskohast. Lüli hoiab tõendit või jääb tundmatuks, ja ahel on informatiivne vaid niivõrd, kuivõrd on seda selle nõrgim kirja pandud lüli. Allolev tabel on inventar: mida iga positsioon suudab tuvastada ja mida see puutumata jätab.
| Positsioon | Tõend, mille see anda saab | Mida see lahtiseks jätab |
|---|---|---|
| Algataja saadab | Taotlus lahkus sellest hostist | Kas see jõudis partnerini |
| Vastaja võtab vastu | Taotlus saabus | Kas vastus loodi |
| Vastaja saadab | Vastus lahkus lüüsist | Kas see järgis kavandatud teed |
| Algataja võtab vastu | Vahetus lõppes | Kas poliitika võttis tulemuse vastu |
Täitke ahelat ainult seal, kus teil on juurdepääs, ja märkige ülejäänu tundmatuks, selle asemel et seda tuletada. Konks, mis salvestab pakette ühes masinas, ei ütle midagi selle kohta, mida kauge masin vastu võttis, ja logirida, et taotlust nähti, ei ole tõend, et vastus kunagi väljus. Ausad lüngad on kasulikumad kui oletustest kokku pandud täielikuna näiv kirje.
Leidke esimene puuduv üleminek
Kõndige ahelat algatajast väljapoole ja peatuge esimeses tõendita lülis. Kui lüüs ei logi taotlust kunagi, asub viga selle-eelsel teel. Kui lüüs logib sama taotlust ikka ja jälle, samas kui klient ei logi kunagi vastust, on kahtlane tagasisuund: lähteaadress, tõlge ja filtreerimine igal teie kontrollitaval piiril. Kui vastus saabub ja klient ei liigu ikkagi edasi, on küsimus transporti hüljanud ja muutunud poliitikaks või olekuks.
Hoidke partner ja protokoll võrdlemise ajal muutumatuna ning pidage meeles, et viivitus, kadu, poliitika ja olek loovad igaüks erineva ajajoone. Mobiilsidevõrk ei ole automaatselt põhjus ja püsiliin ei ole automaatselt iga nõude jaoks piisavalt usaldusväärne. Salvestage mõlemad suunad, kuni vahetus on elus:
tcpdump -ni any -vv 'udp port 500 or udp port 4500'
Kui juurdepääs katkeb enne kauget otsa, aitab kirje siiski, kui see ütleb, kus see katkeb. Ainult algatajal tehtud püüdmine võib näidata väljuvat taotlust ja saabumata vastust, mis kitsendab vea kõigele pärast seda konksu, teesklemata, et teate, milline hüpe selle maha viskas. Märkige kaugeid lülisid tundmatuteks ja laske järgmisel juurdepääsuga inimesel need täita. Nii kirja panduna jääb kirje ausaks ja siiski lühikeseks.
Võrrelge enne, kui midagi muudate. Sama taotluse kordamine sama partneri vastu sama protokolliga hoiab muutujad loendatavana, samas kui lähtestamine, võtmeuuendus või poliitika muutmine püüdmiste vahel hävitab võrdluse. Kui muudatus on vältimatu, püüdke kohe pärast seda uuesti, et enne ja pärast kirjeldaksid ikka sama vahetust.
Mida ütleb kasulik aruanne
Tegutsemisväärne aruanne seob ühe taotluse selle vastusega ja nimetab esimese sammu, mille taga tõendit pole. See lause peab vastu nädal hiljem lugemisele inseneri poolt, kes kohal ei olnud, ja annab järgmisele inimesele alguskoha, mitte kahtlusaluse.
Ärge kunagi nõrgendage identiteedikontrolle ega laiendage lubatud protokollide kogumit ainult kordussaatmise teooria kontrollimiseks. Salvestage algupärased paketid ja sündmuste kirjed enne mis tahes lähtestamist, sest lähtestamine hävitab täpselt selle materjali, mida kavatsesite koguda, ja kustutab ajastuse, mis näitas, kus vahetus takerdus.
Müüt on, et üks duplikaat tõestab operaatori süüd. Tegelikkus on, et üks duplikaat tõestab, et taimer aegus, ja vastus elab vastuseteel.