Хост IPsec серіктесіне жетеді, Docker контейнері жетпейді
Көпір желісіндегі контейнер басқа көзді пайдаланып, қайта бағыттау арқылы кіреді, сондықтан хосттың туннелі азды дәлелдейді. Docker-ді қайта іске қоспас бұрын селекторларды тексеріңіз.
Сіз Linux машинасынан қашықтағы хостқа ping жібересіз, ол жауап береді, демек туннель жұмыс істейді. Жаныңыздағы контейнер әлі де уақыт бітіруге ұшырайды, ал келесі табиғи қадам — Docker-ді қайта іске қосу. Көпір желісіндегі контейнер әдетте басқа көз мекенжайымен басталады және хостқа қолданбаның өз шығыс жолымен емес, қайта бағыттау арқылы кіреді, сондықтан сәтті сынақ басқа пакетті өлшеді. Саясатқа негізделген strongSwan туннелі үшін қашықтағы қосалқы желіге қарай қарапайым маршрут жеткіліксіз, егер қайта бағытталған пакет орнатылған IPsec саясатына сәйкес келмесе.
Төмендегі нұсқаулық бір мақсатты екі көз арқылы қадағалап, бірдеңені өзгертуден бұрын күйді оқиды.
Бір мақсат пен екі көзден бастаңыз
Алдымен IP бойынша белгілі қызметті таңдаңыз, сонда бір уақытта DNS жөндеумен айналыспайсыз. Үш фактіні жазып алыңыз: контейнердің көпір префиксі, сәтті хост сұранысының көз мекенжайы және туннель үшін келісілген жергілікті мен қашықтағы трафик селекторлары. Осы үш сан бұл симптомның барлық дерлік жағдайын түсіндіреді.
Содан кейін сәтсіз сұранысты контейнердің ішінен қайталап, ол шын мәнінде қолданатын көзді ұстап алыңыз. Егер бұл мекенжай жергілікті селектормен қамтылмаса, нәтижені білесіз, ал контейнерді қайта жасау мұны өзгертпейді.
Docker-ге тимес бұрын саясаттарды оқыңыз
Тек оқуға арналған хост тексерулері маршруттау шешімдерін, саясат дерекқорын және олардың арасынан таңдайтын ережелерді қамтиды:
ip rule show
ip route show table all
ip xfrm policyСаясаттар тізімі селекторлар мен бағытты кілт материалына толы IPsec күйін шығарусыз көрсетеді, сондықтан оны тикетке қою қауіпсіз. Хост мекенжайын қамтитын, бірақ көпір префиксін қамтымайтын жергілікті селекторды іздеңіз. Қабаттасуды да тексеріңіз: қашықтағы мақсатты жергілікті деп санайтын контейнер маршруты күтілген қайта бағытталған пакетті ешқашан шығармайды, ал туннель кінәланады. Бұл тізімді контейнердің көз мекенжайының қасында сақтаңыз, өйткені екеуі бірге бүкіл салыстыру.
Егер контейнер префиксі жоқ болса, тоқтап, басқа нәрсені өңдеуден бұрын архитектураны шешіңіз. Нұсқаулықтың қалғаны қай көз мекенжайы желіде көрінуі керектігі туралы келіскеніңізді болжайды.
Сүзгілеу мен аударманы ретімен тексеріңіз
Docker-дің Linux көпір қақпасы қайта бағыттауды IPsec-тен тәуелсіз блоктай алады. iptables бэкендімен FORWARD жолын және DOCKER-USER шешімдерін қарап шығыңыз, бұрынғы үкімнен кейін қосылған ереже ешқашан орындалмауы мүмкін екенін есте сақтаңыз. nftables бэкенді басқаша біріктіріледі, сондықтан тек iptables мысалы оны осылай атағаны үшін DOCKER-USER тізбегін жасамаңыз; демоныңыз шын мәнінде қай бэкенді қолданатынын тексеріңіз.
Содан кейін көз аудармасын тексеріңіз. Кең MASQUERADE ережесі бұрын IPsec селекторына сәйкес келген пакетті енді сәйкес келмейтін пакетке айналдыруы мүмкін, ал ақау дәл маршруттау мәселесіне ұқсайды. strongSwan қайта бағыттау нұсқаулығы саясатқа әлдеқашан сәйкес трафик үшін осындай аудармадан бұрын қажет NAT ерекшелігін құжаттайды.
Бұл ерекшелік туннельге қамтылмаған контейнер көзін қосудың жолы емес. Ол тек жобаға әлдеқашан сай трафикті қорғайды, сондықтан алдымен селектор мен қайту жолы сұрақтарын шешіңіз, содан кейін NAT пен сүзгілеуді жауапқа сәйкестендіріңіз. Егер ерекшелікті кеңейте бастасаңыз, өзгерту керек нәрсе — селектор, NAT ережесі емес.
Содан кейін маршрутталған немесе аударылған деп шешіңіз
Маршрутталған контейнер қосалқы желісі екі серіктестің де оны қабылдауын және оған қашықтағы қайту жолының болуын талап етеді, бұл әдетте екі ұшта селекторды өзгертуді және алыс жақтың иесімен сөйлесуді білдіреді. Әдейі аударылған жоба болса, тиісті іздеу кезеңінде саясатпен қамтылған мекенжайды ұсынуы керек, бұл әдетте әдепкі MASQUERADE орнына тар, құжатталған ережені білдіреді.
Екі шешімнің ешқайсысы хосттың жұмыс істеп тұрған туннелінен автоматты түрде туындамайды, ал олардың арасынан таңдау — иесі бар жобалау шешімі. Қайсын таңдағаныңызды жазыңыз, әйтпесе келесі инженер оны қақпа санағыштарынан қайта шығарады.
Гибридті ақауға да назар аударыңыз: ережелер жиынтығының жартысы аударылған, жартысы аударылмаған, бұл мақсат портына тәуелді және желідегі ешнәрсеге тәуелді емес үзілісті табыс береді.
Қайта іске қосумен емес, жаңа қосылыммен тексеріңіз
Тар қақпа санағыштары мен қашықтағы қабылдағышты бақылай отырып, жаңа қолданба қосылымын пайдаланыңыз, сонда әр байқаудың көзі болады. Docker-ді қайта іске қосу ережелер күйін өзгертуі мүмкін және жұмыс жүктемелерін де бұзады, бұл сіз алғыңыз келген таза сигналдан айырады.
Тұрақты нәтиже — көрсете алатын төрт тұжырым: контейнер көзі, сәйкес келетін қорғалған жол, рұқсат етілген қайта бағыттау және қайтып келетін жауап. Төртеуі де орындалса, контейнер серіктеске хост сияқты сол себептен жетеді.