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

Клиент отырған жерден бастаңыз

Серверге тиюден бұрын клиентті қараңыз. ip -6 addr пулдан туннель мекенжайын, ал ip -6 route туннель құрылғысына сілтейтін жіберілген префиксті көрсетуі керек. Мекенжай бар, бірақ маршрут жоқ болса, жіберу жетіспейді немесе клиент оны елемеген. Екеуі де болмаса, сервер мүлде ештеңе бөлмеген.

Содан кейін клиенттің сыртқы әлем туралы не ойлайтынын тексеріңіз. Туннель арқылы өтетін әдепкі маршрут барлық IPv6 трафигін талап етеді, ал 2000::/3 үшін маршрут тек ғаламдық unicast-ты талап етеді. Екеуі де дұрыс болуы мүмкін және олар ағу туралы әртүрлі сұрақтарға жауап береді.

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

Сервер шынымен маршруттай алатын пулды тексеріңіз

Сервер тек өзі шынымен басқаратын префикстен бөле алады. Егер провайдер /56 делегацияласа, туннель үшін бір /64 қалдырып, қалғанын LAN-ға беріңіз. Провайдер WAN-да тек бір /64 беріп, одан әрі ештеңе маршруттамаса, LAN префиксін тыныш қалдырып, туннельге бірегей жергілікті ауқым беріңіз, клиенттерде ғаламдық шығу жолы болмайтынын қабылдаңыз.

Пул мен жіберу бірге жүреді. server-ipv6 2001:db8:80:10::/64 мекенжайларды бөледі, ал push "route-ipv6 2000::/3" клиенттерге туннельге не жіберу керегін айтады. 2000::/3 жіберу ғаламдық unicast-ты қамтиды және link-local мен multicast ауқымдарын туннельден тыс қалдырады.

Таңдалған префиксті орналастыру жазбасына жазыңыз. Келесіде провайдер берілісін өзгертетін адам туннель қай /64-ті алып қойғанын білуі керек.

Екінші отбасы үшін қайта бағыттауды қосыңыз

IPv4 қайта бағыттауы IPv6 қайта бағыттауын білдірмейді. net.ipv6.conf.all.forwarding=1 параметрін орнатып, IPv4 FORWARD саясаты әлдеқашан рұқсат еткеннің бәрін қайталаңыз. FORWARD тізбегі әдепкі бойынша тастайтын маршрутизаторда ережелер жинағының жоқтығы дәл өлі туннель сияқты көрінеді.

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

ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT

Бір жанама әсер соңында туннельді кінәлайтындарды ұстайды. Қайта бағыттауды қосқанда ядро Router Advertisement арқылы мекенжай конфигурациясын өткізіп жібереді, егер оған өзгеше айтпасаңыз, және солай үйренген әдепкі маршрут онымен бірге жоғалады. Немесе WAN интерфейсіне айқын әдепкі маршрутты бекітіңіз, немесе сол жерде accept_ra мәнін әдейі 2-ге қойыңыз. Кез келген өзгерістен кейін клиенттерді қайта сынамас бұрын маршрутизатордың сыртқа шығатын жарамды IPv6 жолы әлі бар екенін растаңыз.

Жоғарғы жақ маршруттамағанда көршілерді табуға жауап беріңіз

Жоғарғы жақтың жабдығы кейде делегацияланған /64-ті өз байланысына тиесілі деп санайды және VPN жәшігіне қандай да бір қосымша префиксті маршруттаудан бас тартады. Бұл орын алғанда, бірдеңе әр клиент мекенжайы үшін көрші сұрауларына жеке-жеке жауап беруі керек.

OpenVPN бөлінген мекенжайды client-connect ілгегіне ашады, сондықтан жазбалар қолмен ұсталатын тізімнің орнына нақты пулды ұстана алады. Ілгек ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0 қосады, ал сәйкес client-disconnect ілгегі оны жояды. Жоймаса, proxy кестесі ескіреді және кейінгі клиент өзі ешқашан алмаған мекенжайға арналған жазбаны мұраға алуы мүмкін. Күйді ip -6 neigh show proxy арқылы растаңыз.

Proxy-ді уақытша шешім ретінде қарастырыңыз. Туннельдің /64-і үшін маршрутизаторға бағытталған статикалық маршрут клиенттердің ауысуына төтеп береді және артықшылықты shell ілгегін мүлде қажет етпейді.

Жолды сыртқа қарай, секіріс сайын бақылаңыз

Сыртқа қарай үш қадаммен сынаңыз: әуелі маршрутизатордың туннель мекенжайы, содан соң LAN хосты, үшіншісі — traceroute6 арқылы ашық межелі орын. Пулды біріншісі дәлелдейді, қайта бағыттау мен LAN от қабырғасын екіншісі, ал жоғарғы жақ арқылы қайтару жолын үшіншісі. Әрбір сәтсіздік бүкіл дизайнды қайта ашудың орнына іздестіруді бір құрылғыға тарылтады.

Туннельдің MTU-ына назар аударыңыз, өйткені жолдағы IPv6 маршрутизаторлары сіздің орныңызға бөлшектемейді. Тым үлкен MTU таза сәтсіздіктің орнына packet-too-big қатесі және тоқтап қалған TLS ретінде көрінеді. Оны айқын орнатып, шекке жақын жүктемемен сынаңыз.

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