Кірістірілген IPsec туралы ойлау екі қабат әртүрлі машиналарда аяқталғанда жеңіл. Төрт шлюз, екі туннель және дизайнның жұмыс істейтінін шешетін бір сұрақ: ішкі туннель пакетпен бітіргеннен кейін сыртқы туннель шын мәнінде нені көреді? Оған жауап беріңіз, содан кейін селекторлар, маршруттар және ақауларды жою тәртібі өзі келеді. Қателессеңіз, техникалық тұрғыдан көтерілген туннельді түзеуге бір күн жұмсайсыз.

Төрт шлюз моделі

Сыртқы A және B шлюздері екі алаң арасындағы бірінші туннельді салады. A-ның артында транзиттік мекенжайы 10.60.0.2 бар ішкі C шлюзі, ал B-ның артында транзиттік мекенжайы 10.70.0.2 бар ішкі D шлюзі тұр. Қолданба желілері C мен D-ның артында өмір сүреді, және мысалдағы әрбір мекенжай әдейі қабаттаспайды.

application net -> C -> A == outer IPsec == B -> D -> application net
                       \---------- inner IPsec ----------/

C transit: 10.60.0.2      D transit: 10.70.0.2
A and B:    underlay addresses only

Қабаттарды төрт хостқа бөлу әр машинаның бір шекараны ұстануын білдіреді. Екі қабатты бір хостта жүргізетін машина бір машинада екі саясат жиынтығын, екі маршруттау кестесін және екі істен шығу режимін үйлестіруі керек, бұл мүмкін және байқау әлдеқайда қиын.

Әр қабат тек өз қорғанысын алып тастайды

C D үшін қолданба пакетін шифрлайды. Нәтиже C-ден D-ге адрестеледі, және дәл сол A-ға жетеді. Төмендегінің бәрі осы қайта жазуға тәуелді.

A оны B үшін қайтадан шифрлайды. B сыртқы қабаттың шифрын шешеді, C-ден D-ге пакетті көреді және оны әлі де шифрланған күйде жібереді. D ішкі қорғанысты алып тастап, қолданба пакетін жеткізеді.

Осылайша A мен B ішкі шеткі нүктелерді және олардың метадеректерін көреді, бірақ олар қолданба жүктемесін шешетін тарап емес. Бұл дизайнның нақты қасиеті, C, D немесе қолданба хосттары сенімді деген мәлімдеме емес.

Сыртқы селекторлар ішкі шлюздерді атайды

Дәл осы жерде мұндай құрылыстардың көбі сәтсіз болады. Саясатқа негізделген сыртқы туннель үшін келісілетін селекторлар A мен B шын мәнінде өңдейтін мекенжайларды қамтуы керек: 10.60.0.2/32 және 10.70.0.2/32, дұрыс жергілікті және қашықтағы ретпен.

Соңғы қолданба қосымша желілерін сыртқы селекторларға қою жұмыс істемейді, өйткені пакет A-ға жеткенде ішкі инкапсуляция A қорғауы тиіс нәрсені қайта жазған болады. Сонда сыртқы саясат ештеңемен сәйкеспейді және туннель деректер тасымалдамай көтеріледі.

Сыртқы рұқсатты UDP 500-ге дейін тарылтпаңыз. Ішкі қосылымның өз деректер жолы бар, ол келісілгеніне қарай ESP немесе UDP инкапсуляциясын пайдаланады, және сыртқы саясат сол протоколға рұқсат беруі керек.

Нәтижені әр шлюзде swanctl --list-sas арқылы тексеріп, кіші қауіпсіздік ассоциациялары сіз ойлаған мекенжайларды хабарлайтынына, болжағандарыңызды емес, көз жеткізіңіз. Егер тізім қолданба қосымша желілерін көрсетсе, сыртқы саясат қате қабат үшін жазылған. Маршруттауды жөндеуден бұрын селекторларды түзетіңіз, өйткені маршруттау дұрыс көрінеді, ал есептегіштер қозғалмайды.

Жіберу және рекурсия тұзағы

Селекторлар маршруттауды алмастырмайды. A мен B C мен D арасындағы трафикті екі бағытта да жіберуі керек, яғни IP жіберу қосулы, туннельге сілтейтін маршруттар және қарсы жақта бар қайтару жолы болуы керек.

Егер сыртқы туннель XFRM интерфейстерін пайдаланса, маршруттар интерфейсті таңдайды, ал келісілген саясаттар оның нені тасымалдайтынын әлі де шектейді. Интерфейс қорғалған аймақты кеңейтпейді; ол ядроның пакетті қалай алатынын ғана өзгертеді.

Тұзақ — рекурсия. A-ның B-ның сыртқы шеткі нүктесіне маршруты A салып жатқан туннельге емес, төменгі желіге сүйенуі керек, әйтпесе инкапсуляция өз ішінде жүруге тырысады және қосылым ешқашан аяқталмайды.

Қабаттарды қоспас бұрын аударманы қараңыз

Басқа нәрсені реттемес бұрын A мен B-дегі кез келген көз NAT-ты қараңыз. IPsec саясаты қолданылмай тұрып C мекенжайын қайта жазатын ереже келісілген селекторларды бұзуы мүмкін, сондай-ақ D қарсы жақта нені алатынын өзгертуі мүмкін.

Кең маскировка екі қабат болғандықтан қауіпсіз бола қоймайды. Ол алыс жақтың қай мекенжайды көретінін жасырады, ал туннель қосулы, қолданба жұмыс істемегенде дәл сол ақпарат керек.

Егер NAT ережесі шынымен қажет болса, әр тарап қай мекенжаймен сөйлесемін деп ойлайтынын жазыңыз. Сол бір жол туннель ме, әлде аударма ма кінәлі деген даудың көбін шешеді. Ол сондай-ақ келесі инженерге ереже бір жылдан кейін алынғанда қайда қарауға болатынын айтады. Ping мұның ешқайсысын істемейді.

fail-closed дәлелдеп, MTU-ды тексеріңіз

Маршруттың жоғалуы өз алдына fail-closed саясаты емес. Басқа кесте, әдепкі маршрут немесе саясат ережесі үнсіз сақтық жол бере алады, және мұны білудің бір ғана жолы — сыртқы туннельді түсіріп, қолданба трафигінің не істейтінін байқау. Мұны кездейсоқ табудан гөрі терезеде әдейі жасаңыз.

Үш күйді тексеріңіз: сыртқы туннель төмен, ішкі туннель төмен және екеуі де қайта көтерілгеннен кейінгі қалпына келу. Әр шлюзде саясат есептегіштерін пайдаланыңыз, өйткені екі орнатылған IKE сессиясы тек басқару жазықтығындағы келіссөздің сәтті болғанын дәлелдейді.

Екі инкапсуляцияны да есепке алыңыз. Жұмыс істейтін IKE — шағын пакеттердің нәтижесі, ал толық өлшемді қолданба пакеттері екі тақырып қосылғаннан кейін де сәтсіз болуы мүмкін; сандар қосылады деп болжаудың орнына нақты жолда белгілі жүктеме өлшемімен сынаңыз. Арифметика оңай, жол олай емес.

Қатысты мақалалар