OpenVPN зертханасына жеке IPv6 қосу, бір уақытта бір бақылау нүктесі
Сыртқы тасымалды IPv4-те қалдырып, ішкі жоспарды кеңейтіңіз. Бес бақылау нүктесі: префикстер, көмекші, маршрутты итеру, қайта жіберу және клиент жағындағы сынақ.
Сізде IPv4 арқылы қосылып, сервердің артындағы жеке IPv4 жұмыс жүктемесіне жететін клиент бар. Мақсат — сыртқы тасымалға қол тигізбей, сол туннель арқылы жеке IPv6 жұмыс жүктемесіне жету. Бұл реттілік маңызды: сыртқы жол IPv4 болып қалады, тек ішкі мекенжай жоспары, клиент маршруты және серверден LAN-ға қайту жолы өзгереді. Бес бақылау нүктесі, әрқайсысында әрі қарай жылжымас бұрын қарауға тұрарлық нақты нәрсе бар.
Бірінші бақылау нүктесі: әлдеқашан жұмыс істеп тұрған қосылым
Бірдеңе қоспас бұрын клиентті қосып, IPv4 жолын растаңыз. Жұмыс істеп тұрған туннель жаңа IPv6 қатесін ескі қосылым мәселесінен ажырататын базалық сызық береді. Ол сондай-ақ қай сервер данасын шын мәнінде өңдеп жатқаныңызды көрсетеді.
Сіз сүйеніп отырған пулды, топологияны және итерілген маршруттарды жазып алыңыз. IPv6 жұмысы сол конфигурацияны кеңейтеді; оны алмастырмайды.
Екінші бақылау нүктесі: ішкі префикстерді таңдаңыз
Сайт үшін ULA /48 таңдап, одан екі /64 қиып алыңыз: біреуі туннель клиенттеріне, біреуі IPv6 жұмыс жүктемесі бар LAN сегментіне. Мысал префиксті көшірудің орнына 40 биттік ғаламдық ID жасаңыз, және екі ішкі желіні де сайт әлдеқашан маршруттайтын әр желімен салыстырыңыз:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1Екі тәуелсіз /64 клиент пулының LAN сегментінен қиылып кетуіне жол бермейді, бұл кейінірек қайту маршрутын жазғанда маңызды. Жоғарыдағы мәндер — бір өңделген мысал, қайта пайдаланылатын префикс емес.
Үшінші бақылау нүктесі: көмекші мен маршрутты итеруді қосыңыз
Бірдеңе қоспас бұрын сервердің ағымдағы конфигурациясын оқыңыз. Бар директиваның екінші көшірмесі біріншісімен бірікпейді, ал шыққан қате IPv6-ны емес, директиваны атайды. Бар IPv4 көмекшісі болғанда оны екі жол кеңейтеді. Әрқайсысы басқа сұраққа жауап береді:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Біріншісі — интерфейс пен клиент пулын реттейтін қолайлы көмекші. Екіншісі клиент жетуі тиіс LAN межесін атайды. Клиентке IPv6 мекенжайын беру оған сервердің артында қандай желілер барын айтпайды, сондықтан екі жол да қажет.
Көмекші статикалық IPv6 пулымен немесе nopool-мен қатар өмір сүрмейді. Егер орналастыру мекенжайларды әдейі статикалық бөлсе, сол саясатты ұстаныңыз және мысалға сәйкестендіру үшін саясатты жоймай, IPv6 баламасын анық жобалаңыз.
Төртінші бақылау нүктесі: қайта жіберу және жауап маршруты
Серверде IPv6 қайта жіберуді жүйенің өз конфигурация иесі арқылы қосыңыз, ұмытып кететін бір реттік орындалу жазбасымен емес. Орындалу түрі жылдам сынақ үшін пайдалы. Тұрақты конфигурация дистрибутивтің желі иесі оқитын drop-in файлына тиесілі:
sysctl -w net.ipv6.conf.all.forwarding=1Қайта жіберу пакеттерді маршруттаудан тыс хосттың IPv6 тәртібін өзгертеді. Клиент ретінде маршрутизатор хабарламаларын қабылдаған хост қайта жібере бастағанда дәл солай қабылдауды тоқтатады. Сондықтан IPv6 жоғары арнасы RA-ға тәуелді машина сол арна үшін айқын жоспар қажет етеді.
Содан кейін LAN-ға туннель пулына қайтатын маршрут беріңіз. Жұмыс жүктемесінің IPv6 шлюзі VPN сервері емес, LAN маршрутизаторы, сондықтан маршрут сол маршрутизаторда болады және сервердің LAN мекенжайына сілтейді:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Байланысқа қажет ICMPv6 түрлерін, соның ішінде жол-MTU кері байланысын сақтаңыз. IPv4 брандмауэр ережесі IPv6 ережесін білдірмейді, ал IPv6-ны толық бұғаттау көршілерді табуды маршрут ақауына ұқсайтындай бұзады.
Бесінші бақылау нүктесі: клиентті оқыңыз, содан кейін сынаңыз
Клиентті қайта қосып, сервердің көмекші мекенжайынан болжаудың орнына ол шын мәнінде алған мекенжайларды оқыңыз. Интерфейс тізімі екі отбасын бір құрылғыда көрсетеді:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20Туннельді таңдайтын маршрут клиенттің пакетті қайда жіберу керегін білетінін дәлелдейді. Бірақ сервердің оны қайта жіберетінін, LAN маршрутизаторында қайту маршруты барын немесе қолданбаға жауап беруге рұқсат екенін дәлелдемейді.
Қолданбаның өзін әр отбасы бойынша кезекпе-кезек сынап, қайта қосылғаннан және хост қайта іске қосылғаннан кейін қайталаңыз. Тек қайта жүктеуге дейін ғана өмір сүретін маршрут немесе sysctl — сынақ, жоба емес.
AAAA жазбасын IPv6 жолы ұшынан ұшына жауап бергенде ғана жариялаңыз. IPv4 арқылы сұралған DNS әлі де IPv6 мекенжайын қайтаруы мүмкін, сондықтан шешілетін атау бірдеңенің тыңдап жатқанына дәлел емес. RFC 4193 ULA нұсқаулығы осы префикстерді көшірме емес, өзіңіздікі ететін ғаламдық ID жасауды қамтиды.