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

Құралдың шын мәнінде нені өлшегенін анықтаңыз

Ең жиі кездесетін жалған дабыл — link-local мекенжайы, ол fe80:-дан басталады және IPv6-ға қабілетті әрбір интерфейсте болады, машина IPv6 арқылы интернетке шыға ала ма, жоқ па — маңызды емес. Ол интерфейстер тізімінде және кейбір қолданба диагностикасында көрінеді және трафик жолыңыз туралы ештеңе айтпайды.

Екінші жалған дабыл — fc00::/7 ішіндегі бірегей жергілікті мекенжай, ол желі ішінде қолданылатын жеке ауқым. Хосттың барлық мекенжайын басып шығаратын құрал оны жария мекенжайдың қасында қуана тізімдейді. Жылдам оқыған адам оны ағып кету деп атайды, содан кейін жоқ мәселеге бір сағат жұмсайды.

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

ip -6 addr show scope global
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co

Егер бірінші команда жаһандық мекенжайды басып шығарса, ал үшіншісі туннельдікі емес жария IPv6 мекенжайын қайтарса, туннельден тыс нақты жолыңыз бар. Егер біріншісі тек link-local жазбаларын басып шығарса, түзететін ағып кету ешқашан болмаған.

Бақылауды үш шарт анықтайды

Шешім «IPv6 жақсы» немесе «IPv6 нашар» емес. Шешім — үш жағдайдың қайсысында екеніңіз, және әрқайсысының дұрыс жауабы басқа, қателессеңіз құны да басқа.

SituationCorrect controlCost if you disable IPv6 instead
Exit has no IPv6, host doesBlock IPv6 deliberately in the tunnel policySame visible result, no documentation of intent
Exit carries IPv6, host leaksRoute IPv6 into the tunnel and verifyYou lose IPv6 reachability entirely
Access network is IPv6-onlyChange nothing; use the tunnel's IPv6Machine loses connectivity completely

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

Үшінші жол — жалпы кеңес белсенді зиянды болатын жер. Ұялы операторлар мен кейбір үй қосылымдары IPv4 межелері үшін аудармасы бар IPv6-only желілерін жүргізеді. Онда IPv6-ны алып тастасаңыз, желі ұсынатын жалғыз тасымалды алып тастайсыз, бұл сіз жөндеп жатқан ақаудан әлдеқайда нашар үзіліс тудырады.

Егер шығыста IPv6 болмаса, оны әдейі бөгеңіз

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

block-ipv6
ip6tables -A OUTPUT -o eth0 -j REJECT --reject-with ipv6-port-unreachable

Нұсқаулық профильге тиесілі; ереже тексеріп, жоя алатын firewall-ға тиесілі. Екеуі де жабық күйде сәтсіздікке ұшырайды, бұл керегіңіз, және екеуі де конфигурация diff-інде көрінеді, ал іске қосу скриптіне көмілген ядро sysctl-і көрінбейді.

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

Егер шығыс IPv6 тасымалдаса, оны маршруттап, екі отбасын да сынаңыз

IPv6 тасымалдау — сервер қолдаса, жақсырақ жауап, және әлдеқайда қиын емес. Талап: туннель интерфейсінде сол отбасының мекенжайы болуы және оның әдепкі бағыты физикалық интерфейстен тыс емес, туннель ішіне бағытталуы керек:

ip -6 route get 2606:4700:4700::1111
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
curl -4 -sS --max-time 6 https://ifconfig.co

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

Сәтті қосылымда тоқтамаңыз. Туннельді қайта қосып, қайта тексеріңіз, өйткені сервер оны тек бастапқы конфигурацияда жіберсе, итерілген IPv6 бағыты қайта орнату кезінде жоғалуы мүмкін. Содан кейін бір алып тасталған межені тексеріңіз, өйткені split-tunnel ережелері — екі отбасы ең жиі келіспейтін жер.

Егер қатынау желісі тек IPv6 болса, тиіспеңіз

Кейбір желілер тек IPv6 береді және құрылғы IPv4 қызметтеріне оператор жағындағы аударма механизмі арқылы жетеді деп күтеді. Мұндай машинада IPv6-ны өшіру қауіпсіздікті жақсарту емес; ол кез келген нәрсеге барар жалғыз жолды жояды. Бұл ешкімге керек болмаған сынақ нәтижесі үшін өзіңіз жасаған үзіліс.

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

Не таңдасаңыз да, шешімді профильде немесе firewall-да айқын ұстаңыз, оны шығыс шын мәнінде қолдайтын нәрсемен байланыстырыңыз және мынау сипаттайтын қос стек мінез-құлқын жазып қойыңыз RFC 7359 қос стек талқылауы . Жарияланған бөгеу — саясат. Өшірілген протокол — ешкім аудиттей алмайтын айналып өту, және сынақ бетінен олар бірдей көрінеді.

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