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

Қос стекті құрылғылардың екі тәуелсіз шығу жолы бар. Олардың біреуін бөгеу — жарты бөгеу.

Екі ереже жиынтығы, екі әдепкі

Linux-та iptables мен ip6tables — жеке саясаттары бар жеке кестелер. IPv4 кестесінің INPUT және OUTPUT тізбектерін DROP абалына қою IPv6 кестесінде ештеңені өзгертпейді, онда әдепкі әдетте ACCEPT. Дәл осындай бөліну nftables-та бар, онда бір отбасын қарап, ережелеріңізді тек біреуі ғана алып жүретінін байқай аласыз. Бұл асимметрия қалыпты, және бүкіл мәселе осында.

Сондықтан авариялық ажыратқыш мұқият көрініп, ішінара әрекет етуі мүмкін. IPv4 ережелерін жазған скрипт орындалды, есептегіштер артады, журнал жолы пайда болады, және IPv6 пакеті физикалық интерфейстен толығымен тиіспеген күйде шығады.

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

Интерфейс конфигурациясы сізге не дейді

wg-quick-тің нұсқаулық беті өзінің үлгі конфигурациясында IPv6 ережелерін қамтиды, және себебі дәл осы олқылық. Үлгі әшекей емес. Ол тек IPv4 ережелері екінші отбасын ашық қалдыратындықтан бар.

Үлгінің жартысын көшіру саясаттың жартысын береді. Бұл осы ақпаның ең көп тараған бастауы. Бір блог жазбасы ұзындық үшін үлгіні қысқартты. Содан кейін қысқартылған нұсқа бәрі қайта пайдаланған үлгіге айналды.

# what is actually installed, per family?
sudo iptables -S OUTPUT | head -20
sudo ip6tables -S OUTPUT | head -20

# nftables: inspect each family separately
sudo nft list ruleset inet | head -40

# does this host even have a usable IPv6 path?
ip -6 route show default

Егер екінші команда рұқсат беретін саясатты басып шығарса, ал біріншісі DROP шығарса, клиентке тимей-ақ жауапты таптыңыз. Бұл асимметрия — қате.

Неге бір іздеу бүкіл әңгіме емес

Бір атау A жазбасын да, AAAA жазбасын да қайтара алады, және қолданбалардың бәрі бірдей таңдай бермейді. Браузер желі IPv6 ұсынса, оны қалауы және сәтсіздікте артқа шегінуі мүмкін, ал фондық синхрондау немесе жаңарту бағдарламасы өз шешушісін және өз басымдығын пайдаланады. Сондықтан IPv4 арқылы бір сәтті сынақ бір жолды дәлелдейді, саясатты емес.

Желілік ауысулар да жауапты өзгертеді. Басқа Wi-Fi желісіне қосылу, ұйқыдан ояну немесе ұялы желіге ауысу құрылғыға жаңа IPv6 префиксін беруі мүмкін, ал кеңсе LAN-ында жеткілікті көрінген саясат оны қамтымауы мүмкін.

Туннель өшіп тұрған күйді сынаңыз

Қосылған күйде сынау туннель жұмыс істейтінін айтады. Қызық сынақ — қолжетімсіз күй, өйткені дәл сонда авариялық ажыратқыш ұстап тұруы керек. Туннельді әдейі тоқтатыңыз, содан кейін қорғап жатқан қолданбаңыздан маңызды межелерді сынап көріңіз.

# with the tunnel stopped, does anything still leave?
ip -6 route get 2606:4700:4700::1111
curl -6 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv6.example.net/
curl -4 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv4.example.net/

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

Сол сынақта құжатталған ерекшеліктерді де сақтаңыз. Жергілікті желіні анықтау, DHCP жаңарту немесе VPN соңғы нүктесіне жүктеу жолы қолжетімді болып қалуы қажет болуы мүмкін, және бұл ерекшеліктер саясатта аталуы керек, үзіліс кезінде табылғанның орнына. Туннель қайта көтеріле алмағандықтан сәтсіз болатын ақпа сынағы қауіпсіздік табылғасы емес, ол байланыс табылғасы.

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