Тунелът работеше в офисната мрежа и спира вкъщи, а журналът показва, че първият обмен завършва, преди да се случи нещо друго. Този модел сочи към обмена за удостоверяване, а не към идентификационните данни: сертификатната верига прави това съобщение много по-голямо от предишното, а път, който не обича големи дейтаграми, ще го изпусне тихо. Замесени са два различни механизма за фрагментация и знанието кой от тях гледате определя поправката.

Два механизма за фрагментация, един симптом

IKEv2 има собствено разширение за фрагментация, дефинирано в RFC 7383, което разделя защитените IKE съобщения на по-малки IKE съобщения. Страните договарят тази възможност, а съобщението се сглобява от реализацията на IKE, а не от IP слоя.

Обикновената IP фрагментация е различен механизъм с различен режим на отказ. Рутер между страните фрагментира голяма дейтаграма или я изпуска и връща ICMP съобщение, което може никога да не достигне до подателя. Някои мрежи тихо изхвърлят фрагменти, а някои междинни устройства обработват първия фрагмент, но не останалите. От гледна точка на приложението и трите случая изглеждат еднакво.

NAT traversal добавя трета променлива, защото тогава ESP се обвива в UDP и външният пакет става по-голям, докато изглежда като обикновен UDP трафик на порт 4500. Път, който пропуска UDP добре, все още може да се провали на дейтаграма, която вече не се побира.

Прочетете обмена, който се провали

Търсете прехода, а не грешката. Журнал, който показва, че първоначалният обмен е изпратен и отговорен, последван от нищо, ви казва, че следващото съобщение така и не е завършило. Вдигнете временно нивото на журнала и сравнете отчетените размери на двете страни.

Това, което искате да установите, е дали ответникът изобщо е видял заявката. Ако инициаторът е изпратил нещо, а ответникът няма запис за него, проблемът е в доставката. Ако ответникът е разчел заявка и я е отхвърлил, проблемът е в самия сертификат, а фрагментацията е разсейване. Това разграничение струва повече от страница съобщения за изтичане на времето.

Сменете пътя, а не сертификата

Тествайте същия клиент, същия сертификат и същата конфигурация от друга мрежа. Мобилната точка за достъп обикновено е най-евтиният втори път и тя наистина е различна от офис връзката, а не само номинално.

Ако ръкостискането завърши по втория път, сертификатната верига е наред и първият път е променливата. Ако се провали по идентичен начин и по двата, спрете да тествате мрежи и погледнете самите съобщения. Това единствено сравнение премахва около половината възможни обяснения.

Измерете обмена, преди да редактирате нещо

Вземете размера на веригата и размера на пътя. И двете числа ограничават какво може да изпрати ръкостискането и двете се измерват евтино:

openssl crl2pkcs7 -nocrl -certfile chain.pem | openssl pkcs7 -print_certs -noout | grep -c subject
ls -l chain.pem
ping -M do -s 1400 198.51.100.7
ip -s link show eth0 | sed -n '1,6p'

Първите две дават броя на сертификатите и размера на файла, което е разумна представа колко голямо ще бъде съобщението за удостоверяване. Проверката с ping показва дали дейтаграма с този размер оцелява по пътя, а броячите на интерфейса показват дали фрагментите са били изпуснати от ваша страна. В Windows еквивалентната проверка е ping с флаг do-not-fragment и явен размер на полезния товар.

Повтаряйте проверката надолу, докато успее. Най-големият размер, който минава, е работният бюджет за този път и е по-полезен от всяка публикувана стойност по подразбиране.

Поправете слоя, който наистина е счупен

Ако пътят изпуска големи дейтаграми, включете фрагментация на IKE на двете страни и потвърдете, че разширението е договорено, а не само предложено. Ако пътят се справя зле с фрагментите на IP ниво, поправката принадлежи там или в MTU на външния интерфейс, а не в хранилището на сертификати.

Ако веригата е ненужно дълга, скъсете я до междинните сертификати, които дадена страна наистина се нуждае. Премахването на корен, на който клиентът вече се доверява, е разумно почистване; премахването на междинен не е, а изключването на проверката, за да се смали съобщение, заменя проблем с доставката срещу проблем със сигурността.

Запишете кой механизъм сте сменили и как е изглеждало ръкостискането след това. Следващият случай обикновено е в друга мрежа със същия симптом и бележката е това, което превръща два часа в десет минути.

Подобни статии