Чаму палітыка бяспекі IPsec — не радок табліцы маршрутызацыі
Працоўны маршрут нічога не даказвае пра IPsec. Прачытайце пошук маршруту і селектары палітыкі для аднаго і таго ж патоку, затым пераканайцеся, што асацыяцыя яго пакрывае.
Правядзіце ping да 10.20.0.5 праз тунэль — і нічога не вяртаецца, хоць табліца маршрутызацыі настойвае, што гэтая падсетка дасягальная. Маршрутызацыя і IPsec адказваюць на розныя пытанні, і толькі адно з іх пра дасягальнасць. Прамы пошук выбірае шлях, потым база даных палітыкі бяспекі вырашае, ці гэты шлях трэба абараніць, пакінуць як ёсць ці адхіліць. Калі дзве сістэмы разыходзяцца, пакет памірае ціха, таму чытайце іх у такім парадку.
Пачніце з пошуку, а не з табліцы
Спытайце ядро, што яно сапраўды зробіць: ip route get 10.20.0.5 друкуе выбраны маршрут, зыходны інтэрфейс і адрас крыніцы, які будзе выкарыстаны. Прэфікс, правіла палітыкі, метка або пераважная крыніца могуць змяніць гэты адказ, таму жывы пошук лепшы за чытанне табліцы на вока.
Праверце пункт прызначэння ўнутры абароненага дыяпазону, а не адрас шлюза. Дасягненне шлюза на тым баку даказвае толькі тое, што нейкі маршрут існуе; яно нічога не кажа пра падсетку, якая вам сапраўды патрэбна. Затым пераканайцеся, што інтэрфейс, выбраны пошукам, — той, які вы чакаеце ад тунэля.
Супастаўце селектары з абодвух бакоў
База даных палітыкі мае ўласныя запісы, і кожны называе кірунак, крыніцу, прызначэнне і пратакол, а затым указвае, што рабіць з адпаведнымі пакетамі. Каб пералічыць іх, выкарыстайце ip xfrm policy; сцягі паказваюць, ці дзеянне — абарона, абыход ці блакаванне. Палітыка, чые селектары шырэйшыя або вузейшыя за ваш тэставы паток, не супадзе з ім, і пакет выйдзе незабароненым. Гэта тая няспраўнасць, якую вы шукаеце, а не адсутны маршрут.
Параўнайце фактычныя значэнні: крыніцу, прызначэнне, пратакол і парты. Калі пошук вызначыў адну пару адрасоў, а запіс палітыкі пакрывае іншую, два прадстаўленні апісваюць розны трафік. Перазапусціце абодва з адным і тым жа карцэжам, перш чым рабіць выснову, інакш вы зменіце палітыку, якой ніколі не было на шляху.
Супадзенне з палітыкай — не ўсталяваны стан
Адпаведная палітыка толькі кажа, што пакет трэба абараніць; ядру ўсё яшчэ патрэбна асацыяцыя бяспекі, каб выканаць абарону. Пералічыце іх з ip xfrm state або з swanctl --list-sas, калі перамовы вядзе strongSwan, і прачытайце селектары і лічыльнікі ў кожным запісе.
Калі палітыка супадае, а ніводная асацыяцыя не пакрывае тыя ж селектары, пакет скідваецца, а не адпраўляецца адкрытым тэкстам. Гэта тое скідванне, якое трэба шукаць, калі тунэль працуе, але адна падсетка не дае выніку. Лічыльнікі кажуць рэшту: асацыяцыя, якая ніколі не расце, ніколі не выбіралася, а тая, што расце і ўсё ж сканчаецца скідваннем, паказвае на аддалены бок. Выпраўленне селектараў і перазамена ключоў — розныя рамонты, таму вырашыце, які вам патрэбны, перш чым чапаць канфігурацыю.
Што ўсё яшчэ патрабуе тунэль на аснове маршруту
Інтэрфейс XFRM робіць тунэль падобным на прыладу, у якую можна маршрутызаваць, і гэта сапраўды карысна. Ён не прыбірае палітыку і стан, якія вырашаюць, што адбудзецца, калі пакет туды дабярэцца. Маршрут дадае наступны крок і не больш.
Калі прылада існуе і маршрут вядзе ў яе, але ніводная асацыяцыя не адпавядае ўнутраным селектарам, пакет адкідаецца, і ніякая колькасць праўкі маршруту не стварае ключоў або селектараў. Праверце інтэрфейс з тымі ж крыніцай і прызначэннем, якія вы маршрутызавалі, затым параўнайце гэта са спісам станаў.
Вызначце ўласніка, перш чым нешта правіць
Хаставы міжсеткавы экран дадае трэцяе рашэнне, пра якое не ведае ні адна з дзвюх баз даных. Правільны маршрут плюс адпаведная палітыка плюс усталяваная асацыяцыя ўсё яшчэ могуць скончыцца скідваннем пакета, а праграма паведамляе толькі пра тайм-аўт. Пераканайцеся, што міжсеткавы экран дазваляе абаронены трафік, перш чым вінаваціць IPsec. Перахоп на прыладзе тунэля і на фізічным інтэрфейсе паказвае, з якога боку шыфравання пакет знік.
Уласнік канфігурацыі вырашае, ці перажыве ваша выпраўленне перазапуск. Адзін кампанент можа ўсталёўваць стан, а іншы кіруе маршрутамі, і ручная праўка другога перазапішацца наступным разам, калі тунэль падымецца. Змяніце канфігурацыю ўласніка, потым прачытайце абодва прадстаўленні зноў; RFC 4301 трымае дзве базы даных асобна, калі вам даводзіцца тлумачыць гэты падзел камусьці іншаму.