Дневник приказује исти IKE захтев два пута, неко показује на мобилни аплинк и тикет се затвара претпоставком. Та претпоставка је мит: поновљен пакет је запажање о једној размени, а не дијагноза везе. Поновно слање је нормално понашање са својим правилима и појављује се на здравим путевима кад год је одговор спор. Пратите одговор пре него што оптужите интерфејс.

Мит: поновљен захтев доказује губитак на једној вези

Две различите ствари стварају дупликат и ниједна не именује кривца. Подносилац захтева може да понови захтев јер није добио одговор, или тачка снимања може да прикаже исти пакет два пута због тога где је прикључена на стек. Сонда која види улаз и излаз на истом домаћину радо ће забележити један пакет као два, а оператер који чита тај дневник нема начин да их разликује без идентификатора размене. Третирајте дупликат као догађај тајмера док не будете могли да кажете који од два држите.

Два аплинка погоршавају збрку уместо да је поправе. Један ред дневника именује један интерфејс, док је одговор можда изашао кроз други, па интерфејс у поруци описује где је пакет виђен, а не облик разговора. Зато је прво питање коју размену гледате, а не која је веза неисправна.

Шта вам поновно слање заиста говори

У IKEv2, поновно слање ради овако: подносилац понавља захтев када одговор није стигао, а одговорна страна може поново да пошаље свој кеширани одговор уместо да израчуна нови. Идентификатори порука припадају тој размени и управо то чини поновљен захтев са истим идентификатором препознатљивим као рад протокола, а не као нови покушај. Почетни покушај често захтева више од адресе извора или SPI иницијатора за повезивање, зато је сопствени запис размене платформе бољи од списка пакета. IKEv1 следи другачија правила са другачијим идентификаторима, а упозорење добављача о дупликату првог пакета не значи исто у свим верзијама.

Дакле временска ознака поновног слања каже да је тајмер истекао. Не каже који је хоп био спор и сигурно не каже да је оператер крив. То су одвојене тврдње и само је друга корисна у тикету.

Практична последица је да забележите размену пре него што донесете закључак. Запишите локалну адресу пријема, путању одговора коју је изабрала политика, пар друге стране и идентификаторе размене на једном месту, јер сваки од њих одговара на друго питање када се запис касније чита.

Четири тачке посматрања као један ланац

Замислите размену као четири карике у ланцу, а не као четири одвојена места за гледање. Карика држи доказ или остаје непозната, а ланац је информативан онолико колико је информативна његова најслабија забележена карика. Табела испод је попис: шта свака позиција може да утврди и шта оставља нетакнуто.

ПозицијаДоказ који може да пружиШта оставља отворено
Иницијатор шаљеЗахтев је напустио овај домаћинДа ли је стигао до друге стране
Одговорна страна примаЗахтев је стигаоДа ли је одговор створен
Одговорна страна шаљеОдговор је напустио мрежни пролазДа ли је следио предвиђену путању
Иницијатор примаРазмена је завршенаДа ли је политика прихватила резултат

Попуните ланац само тамо где имате приступ, а остатак означите као непознат уместо да га изводите. Кука која снима пакете на једном рачунару не говори ништа о томе шта је примио удаљени рачунар, а ред дневника да је захтев виђен није доказ да је икада изашао одговор. Искрене празнине су корисније од записа који изгледа потпун, а састављен је од претпоставки.

Пронађите први прелаз који недостаје

Прођите ланац од иницијатора ка споља и зауставите се на првој карици без доказа. Ако мрежни пролаз никада не забележи захтев, квар је на путу пре њега. Када мрежни пролаз изнова бележи исти захтев, а клијент никада не забележи одговор, сумњив је повратни смер: адреса извора, превођење и филтрирање на свакој граници коју контролишете. Ако одговор стигне, а клијент ипак не напредује, питање је напустило транспорт и постало политика или стање.

Држите другу страну и протокол фиксним док поредите и запамтите да кашњење, губитак, политика и стање сваки стварају другачију временску линију. Мобилна мрежа није аутоматски узрок, а фиксна линија није аутоматски довољно поуздана за сваки захтев. Снимите оба смера док је размена жива:

tcpdump -ni any -vv 'udp port 500 or udp port 4500'

Када приступ престане пре удаљеног краја, запис и даље помаже ако каже где престаје. Снимање само на иницијатору може да покаже захтев који излази и одговор који не пристиже, што сужава квар на све после те куке без претварања да знате који га је хоп испустио. Означите удаљене карике као непознате и пустите следећу особу са приступом да их попуни. Тако записано, запис остаје искрен и још увек кратак.

Упоредите пре него што било шта промените. Понављање истог захтева ка истој другој страни са истим протоколом држи променљиве пребројивим, док ресетовање, обнављање кључа или измена политике између снимања уништава поређење. Ако је промена неизбежна, снимите одмах после ње да би пре и после још описивали исту размену.

Шта каже користан извештај

Извештај вредан деловања спаја један захтев са његовим одговором и именује први корак иза којег нема доказа. Та реченица издржава читање недељу дана касније од стране инжењера који није био тамо и даје следећој особи почетну тачку уместо осумњиченог.

Никада не слабите провере идентитета и не ширите дозвољени скуп протокола само да бисте проверили теорију поновног слања. Сачувајте оригиналне пакете и записе догађаја пре било каквог ресетовања, јер ресетовање уништава управо материјал који сте намеравали да прикупите и брише време које је показивало где се размена заглавила.

Мит је да један дупликат доказује кривицу оператера. Стварност је да један дупликат доказује да је тајмер истекао, а одговор живи на путањи одговора.

Повезани чланци