Даччыная SA IPsec паднятая, але яе лічыльнікі пакетаў трымаюцца на нулі
Нулявыя лічыльнікі пакетаў на ўсталяванай даччынай SA звычайна азначаюць, што нічога з ёй не супала. Прасачыце адзін замацаваны паток праз лічыльнікі, маршрут, селектары і крыніцу.
Вы паднялі тунель, таймер перазадання ключоў ідзе ўніз, а ў абодвух напрамках па-ранейшаму нуль пакетаў. Гэтая пара лічбаў нічога не кажа пра тое, што партнёр адхіліў ваш тунель: усталяваная CHILD SA з прастойнымі лічыльнікамі — нармальны стан асацыяцыі, з якой яшчэ нічога не супала. Задача — даказаць, што пакет павінен быў супасці, а затым знайсці кропку, дзе ён сышоў з шляху, які апісваюць селектары. Зрабіце гэта адзін раз, па парадку, і трымайце запыт аднолькавым паміж прагонамі.
Што на самой справе даказвае нулявы лічыльнік
CHILD SA — гэта пара селектараў плюс ключы і SPI, якія шыфруюць трафік, што трапляе ў гэтыя дыяпазоны. Усталяваць яе азначае толькі тое, што абодва бакі дамовіліся пра гэтыя дыяпазоны і вытворныя ключы; ядро будзе трымаць яе гадзінамі без адзінага пакета. Таму пытанне ніколі не ў тым, ці існуе тунель, а ў тым, ці трапіў хоць адзін пакет вашага тэсту ў дыяпазоны, пра якія дамовіліся бакі. Калі не, лічыльнікі застаюцца на нулі, і асацыяцыя сканчаецца нявыкарыстанай у канцы свайго тэрміну.
Гэтае адрозненне змяняе тое, што вы правяраеце першым. Адхіленая прапанова, збой аўтэнтыфікацыі або паміраючая IKE SA — усё гэта праяўляецца ў журнале або ў спісе SA, а не як ціхі нуль. Тунель, які чыста дамаўляецца і потым прастойвае, паказвае хутчэй на супастаўленне, маршрутызацыю або крыніцу тэставага трафіку.
Адпраўце паток, які вы можаце апісаць да адпраўкі
Выберыце прызначэнне ўнутры абароненай падсеткі і адкрыйце да яго новае злучэнне; старонка, якую вы загрузілі гадзіну таму, можа быць аддадзена з кэша, а кэшаваны адказ ніколі не кранае тунель. Затым запішыце чатыры значэнні, пакуль запыт яшчэ гіпатэтычны: адрас крыніцы, які звяжа праграма, прызначэнне, сямейства адрасоў і імя або пару селектараў даччынай асацыяцыі, якую вы назіраеце. Менавіта гэты запіс ператварае плоскі лічыльнік у правяральнае сцвярджэнне.
Адрас крыніцы — гэта значэнне, якое людзі прапускаюць, і менавіта яно часцей за ўсё ламае тэст. Наўтбук з дратавым адрасам, адрасам Wi-Fi і адрасам тунеля можа звязваць любы з іх у залежнасці ад пошуку маршруту, і толькі адзін можа ляжаць унутры дамоўленага дыяпазону. Выкарыстоўвайце інструмент, які дазваляе замацаваць крыніцу, напрыклад ping -I 10.1.0.5 10.2.0.9 або curl --interface 10.1.0.5, каб пакет не мог ціха выбраць іншы адрас. Калі замацаваны прагон рухае лічыльнікі, а незамацаваны не, вы знайшлі праблему маршрутызацыі, а не праблему IPsec.
Якія лічбы чытаць і дзе яны жывуць
У Linux ip -s xfrm state друкуе кожную асацыяцыю з радком lifetime current:, чый агульны аб'ём байтаў і пакетаў належыць толькі гэтай SA, за ім ідзе радок stats: для лічыльнікаў паўтораў і памылак. На баку strongSwan swanctl --list-sas паказвае адзін радок in і адзін радок out на кожную ўсталяваную даччыную асацыяцыю, кожны сканчаецца колькасцю байтаў і пакетаў; старэйшыя інструменты stroke называюць тую ж пару bytes_i і bytes_o. Чытайце два напрамкі асобна, бо напрамак, які застаўся плоскім, і ёсць знаходка. Складанне іх разам хавае менавіта тую асіметрыю, якую вы шукаеце.
Абодва выгляды — па кожнай асацыяцыі, таму перазаданне ўсталёўвае свежую пару SPI, і ваша база вяртаецца да нуля без нічога зламанага. Запішыце SPI, за якім назіраеце, перш чым спрацуе таймер перазадання, інакш вы будзеце параўноўваць новую SA са старым лікам. Калі зыходны расце, а ўваходны застаецца плоскім, селектар супаў, а адказ так і не вярнуўся, што пераносіць расследаванне на перасылку ў партнёра і яго ўласную палітыку. Дакументацыя па наладзе IKEv2 ад strongSwan апісвае жыццёвы цыкл даччынай SA і тэрміны перазадання за гэтымі лічбамі.
Кропка назірання — асобная зменная ад крыніцы пакета. Апаратнае выгружанне можа павялічваць лічыльнікі асацыяцыі, пакуль праграмны захоп на інтэрфейсе не паказвае нічога, бо выгружаныя пакеты абыходзяць крук, на якім сядзіць захоп, і ўваходны напрамак можа разыходзіцца гэтак жа. Калі яны разыходзяцца, выкарыстоўвайце лічыльнікі, каб адказаць, ці нешта супала, а захоп — каб адказаць, як выглядаў пакет.
Маршрут, селектары і дзе нарадзіўся пакет
Параўнайце тры рэчы побач: маршрут, які выбірае ядро для вашага прызначэння, палітыку, якая накіроўвае трафік у тунель, і пару селектараў, пра якую дамовілася даччыная асацыяцыя. ip route get 10.2.0.9 from 10.1.0.5 называе інтэрфейс і крыніцу, якія выкарыстала б ядро, і гэта часта не тая пара, якую вы меркавалі. ip xfrm policy паказвае лакальна ўсталяваныя шаблоны і селектары, а swanctl --list-sas паказвае, пра што дамовіўся партнёр. Пошук, які адпраўляе пакет праз фізічны інтэрфейс, зусім не даходзіць да палітыкі, таму лічыльнікі не могуць рухацца.
Няўзгодненасці бываюць некалькіх відаў, якія з боку лічыльніка выглядаюць аднолькава. Прызначэнне IPv6 па-за селектарам IPv4, адрас крыніцы з чужой падсеткі і палітыка, вузейшая за даччыную асацыяцыю, даюць адзін і той жа нуль. Спачатку выпраўце самую вузкую прычыну, бо пашырэнне селектара толькі дзеля зруху лічбы змяняе тое, што абараняе тунель.
Далей ідзе крыніца пакета — пастка, якую шлюз ставіць свайму ж аператару. Трафік, які шлюз генеруе сам, супастаўляецца з палітыкай выхаду, а пакет, які ён перасылае для кліента, — з палітыкай перасылкі, таму ping з самай скрыні можа прайсці па шляху, якім не ідзе ніводны кліент.
Адна зваротная змена і справаздача, якая вытрымае разгляд
Змяніце адзін элемент, паўтарыце ідэнтычны запыт і прачытайце тыя ж лічыльнікі. Ачыстка ўсіх правілаў брандмаўэра або замена ўсіх селектараў адразу зрушыць лічбу і знішчыць доказ, які сказаў вам чаму. Калі другі прагон па-ранейшаму паказвае нуль, вы выключылі адну гіпотэзу замест таго, каб марнаваць пасляабедзенны час.
Запішыце знаходку ў форме, якую іншы чалавек зможа ўзнавіць: імя даччынай асацыяцыі, прынятыя дыяпазоны, замацаваная вамі крыніца, праверанае прызначэнне, напрамак, які застаўся нулявым, і SPI, які вы чыталі. Гэты сказ аддзяляе асацыяцыю, якой ніхто не карыстаўся, ад аддаленай праграмы, якая атрымала трафік і адмовіла. Адкотвайце змену, калі яна не зрушыла лічыльнікі, і захавайце запіс; наступны чалавек пачне там, дзе вы спыніліся. Нічога ў тунелі не трэба было перабудоўваць для ўсяго гэтага, і ў гэтым сэнс праверкі супастаўлення перад тым, як чапаць канфігурацыю.