Една вдигната, нула свързани: какво брои този ред на strongSwan
Старият надпис брои IKE асоциациите, а не подмрежите или дъщерните SA, затова първо четете заредените дефиниции и инсталираните деца.
Прочетете ред за състоянието Security Associations (1 up, 0 connecting) и изглежда като отчет за един работещ тунел. Две подмрежи прекарват трафик през него едновременно, затова числото изглежда, че лъже. Не лъже; то брои IKE асоциации, а една от тях може да подслони няколко деца. Прочетете инвентарите, преди да пипате предложение или маршрут.
Защо надписът и трафикът се разминават
Старият изход на stroke нарича общата си бройка асоциации за сигурност и я извежда от мениджъра на IKE асоциации. Всяка установена IKE асоциация добавя по една, независимо колко CHILD SA стоят под нея. Един родител IKEv2 обикновено носи няколко деца, по едно за всяка двойка селектори на трафик, а договорените селектори на едно дете могат да покриват повече от един адрес или префикс. Затова броят на адресите в конфигурацията ви няма фиксирана връзка с числото в надписа.
Съвременният изход понякога показва обща бройка вместо старата формулировка “up”, а демон, управляван от swanctl, изобщо не се води от старите настройки на stroke. Не приемайте нито формулировката, нито правилото за броене между версиите.
Сравнете три инвентара, преди да промените нещо
Започнете с това, което е заредено, после с това, което е договорено, после с това, което наистина пренася пакети. Това са три различни въпроса и всеки има своя команда.
swanctl --list-conns
swanctl --list-sas
Първият изброява дефинициите на връзки, които демонът е приел. Вторият изброява установените IKE асоциации с децата им и точно там се появява истинската йерархия. Дефиниция, която присъства във файл, но липсва в първия списък, никога не е била заредена и никакъв брой повторни опити на инициатора няма да го поправи. Ако вместо това ползвате стария интерфейс, еквивалентната двойка е ipsec statusall и същият списък на swanctl, според това кой плъгин притежава конфигурацията. Не смесвайте инструменти между два демона на един хост и не очаквайте един последователен отговор.
swanctl --list-sas --raw | head -40
ip -s xfrm state
Суровият формат държи идентификаторите и селекторите видими за сравнение, а списъкът на състоянието в ядрото показва какво стекът смята, че е инсталирал. Когато демонът и ядрото се разминават, демонът е рестартиран около съществуващо дете или обектът в ядрото е премахнат под него.
Четете йерархията, а не общата бройка
Илюстративен установен родител с две деца изглежда като един възел с две деца под него, всяко отбелязано със своето състояние и режим. Извадете действителния изход и пребройте децата сами, вместо да четете резюме, което някой е поставил от табло.
swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'
Един родител с две инсталирани деца е здрав тунел за две подмрежи. Един родител с едно инсталирано и едно липсващо дете е друга ситуация и селекторите на липсващото дете са това, което се сравнява с предложението на отдалечената страна. По време на смяна на ключове старо дете и неговият заместник могат да се появят заедно за кратък прозорец. Пазете времевата марка със снимката, защото бройка, взета по средата на смяната, изглежда като дублиране, а бройка след нея — като загуба.
Заредено, инсталирано и пренасящо трафик
Дете в инсталирано състояние има договорени параметри и запис в ядрото. Но то не е пренесло непременно пакет: селекторите могат да са по-тесни от трафика, който очаквате, и маршрут може да отведе този трафик другаде, преди тунелът изобщо да го види. Изпратете поток, който отговаря на договорените селектори, от оторизиран хост, после четете броячите на детето, а не надписа. Брояч, който остава на нула, докато генерирате съответен трафик, сочи към маршрутизация или политика, а не към IKE.
swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'
Стартирането на именувано дете е умишлено действие с видим резултат и то разделя “връзката е бездейна, защото никой не е поискал” от “връзката не може да се вдигне”. Политика на капан при поискване се държи точно като първия случай, затова прочетете настройката за стартиране на връзката, преди да я наречете неизправност.
Когато бройката наистина е грешна
Ако дефиниция липсва в заредения инвентар, погледнете зареждането на конфигурацията и кой екземпляр на демона работи. Ако е заредена, но никога не договаря, сравнете предложенията, контекста за удостоверяване и селекторите с партньора, по едно дете наведнъж. Променяйте по един елемент на опит и записвайте идентификатора, който сте променили. Връщането на предложение е тривиално, когато знаете кое; то е догадка след три редакции, които никога не са били разделени.
Поправете първо погрешното четене. Повечето съобщения за “липсващ” втори тунел завършват с две инсталирани деца под един родител и единственото, което някога е било счупено, е редът с резюмето, на който хората са вярвали вместо на йерархията.