OpenVPN redirect-gateway: әр флаг маршруттарға не істейді
Директива флагтарына сай әдепкі маршрутыңызды туннельге ауыстырады. Оған сенбес бұрын орнатылған маршруттарды және IPv6 кестесін тексеріңіз.
Профильде redirect-gateway арқылы қосылыңыз, сонда машинаңыздың әдепкі маршруты жоғалып кетуі, екіге бөлінуі немесе дәл сол орнында қалуы мүмкін, бұл ешкім екі рет оқымайтын флагтарға байланысты. Параметр тек маршруттау күйін өзгертеді, басқа ештеңе емес, сондықтан оның не істегенінің жалғыз сенімді дәлелі клиент кейін орнатқан кесте. Әрі қарай қосылымнан кейінгі кесте, туннельдің өзін тірі ұстайтын маршрут және директива ешқашан жабатынын мәлімдемейтін IPv6 трафигі келеді. Әр қадам туннель қосулы кезде клиентте орындауға болатын команда.
Әр флаг әдепкі маршрутқа не істейді
Ешбір флагсыз параметр әдеттегі әдепкі маршрутты жояды және оның орнына туннельді қояды, сондықтан қосылым қосулы кезде ескі шлюз кестеден жоғалады. def1 қосыңыз, сол әдепкі тізімде қалады, жұмысты екі тар маршрут атқарады. bypass-dhcp қосыңыз, DHCP маршруты да сақталады, бұл клиент әлі жергілікті DHCP серверіне жетуі керек желіде маңызды. OpenVPN 2.6 нұсқаулығының бетіндегі флагтар тізімі бір рет оқуға жеткілікті қысқа және әр жазба кестеге қандай маршруттар түсетінін өзгертеді.
Итерілген параметр келген бойда дәл солай әрекет етеді, сондықтан клиент профилінде ештеңе болмауы мүмкін, ал кесте толығымен бағытталған болып көрінеді. Бұл қалыпты: сервер флагтарды жіберді, клиент оларды қолданды, ал жергілікті файл директиваны ешқашан атамады. Итеру ештеңе істемейтін сияқты көрінгенде, тартылған параметрлерді қабылдайтын немесе жоққа шығаратын клиент жағындағы сүзгіні тексеріңіз, өйткені жоққа шығарылған параметр екі жақта да қате шығармайды.
def1 әдепкі маршрутыңызды ұстамай-ақ нақтылықпен жеңеді
Екі жартылай әдепкі маршрут бірге IPv4 кеңістігін жабады, 0.0.0.0/1 және 128.0.0.0/1. Әрқайсысы 0.0.0.0/0-ден нақтырақ, сондықтан іздеу оларды қалайды, ал нағыз әдепкі ең нақты емес сәйкестікті сұрайтынның бәрі үшін кестеде қалады.
Профильді емес, кестені оқыңыз, өйткені қай жағдайда екеніңізді тек кесте көрсетеді. Оларды ажырату үшін екі жол жеткілікті:
ip route show default
ip route show | grep -E '^(0\.0\.0\.0/1|128\.0\.0\.0/1)'
Әр жолдағы интерфейс пен метрикаға назар аударыңыз, тек межеге емес. Туннельге бағытталған әдепкі және туннельге бағытталған жартылай әдепкілер жұбы бір ниетті сипаттайды және туннель құлағанда әртүрлі сәтсіздікке ұшырайды, өйткені бір жағдайда қосалқы жол әлі бар. Екі өрісті де өзгеріс жазбасына жазыңыз. Аман қалған қосалқы жол кейде қашықтағы сессияны туннельді жөндеуге жеткілікті ұзақ тірі ұстайды, және ниет толық туннель болғанда трафикті ағызатын да сол.
Туннельдің соңғы нүктесін қолжетімді ұстаңыз
Клиентке туннельдің алыс ұшына өзі туннельден өтпейтін маршрут керек. OpenVPN басқа ештеңені өзгертпес бұрын сол хост маршрутын орнатады, ал маршрутты қолмен өңдеу немесе екінші VPN клиенті оны алып кетуі мүмкін. Одан кейінгі симптом — қосылғанын хабарлап, содан кейін ештеңе өткізбейтін қосылым.
Туннель қосулы кезде ядродан соңғы нүкте мекенжайы үшін қай интерфейсті қолданатынын сұраңыз. Жауап физикалық интерфейсті және оның шлюзін атауы керек, ешқашан tun0 емес:
ip route get 198.51.100.20
Егер бұл іздеу туннель құрылғысын қайтарса, туннель өз көлігін тасымалдайды және кез келген пакет сыртқа шығуы керек болғанда бірден құлайды. Жергілікті префикстер, екінші адаптер және саясат негізіндегі маршруттау мұнда әлі де маңызды, сондықтан таза ноутбукте жұмыс істейтін қайта бағыттау басқару интерфейсі мен екі әдепкісі бар хостта сәтсіздікке ұшырауы мүмкін. Әдетте профильді мекенжай жоспары жасаған нәрсе үшін кінәлайды.
IPv6 трафигі өз кестесін қолдануды жалғастырады
IPv4-ті қайта бағыттау IPv6-ны тыныш қалдырады, ал екі отбасын әртүрлі флагтар өзгертеді. Жұмыс істейтін v6 әдепкісі бар қос стекті хостта v4 трафигі туннельдің ішінде толық отыра алады, ал v6-ға қабілетті әр меже физикалық байланыс арқылы сыртқа шығады. Бір кестеде дұрыс көрінетін хост екіншісінде ағады.
Қосылғаннан кейін v6 кестесін туннель жапты деп болжаудың орнына тексеріңіз. Директива мекенжай отбасы флагтарын дәл осы себеппен алып жүреді, ал оларды өткізіп жіберген профиль платформаның әдепкі түрде жасайтынын мұра етеді:
ip -6 route show default
ip -6 route get 2001:db8::10
Қолданбаның қай интерфейсті қолданатынын дәлелдеңіз
Қосылған күй — бұл блок емес, ал маршрут өзгерісі — авариялық сөндіргіш емес. Егер туннель істен шыққанда тікелей трафик тоқтауы керек болса, бұл саясат файрволда тұрады және өз сынағы қажет.
Профиль сипаттайтын жолды емес, қолданба шынымен жүретін жолды сынаңыз. Алдымен маршрутты сұраңыз, содан кейін кезекпен әр интерфейске сұранысты байланыстырып, алыс жақтың не хабарлайтынын салыстырыңыз:
ip route get 203.0.113.10
curl -s --interface tun0 https://ifconfig.me
curl -s --interface eth0 https://ifconfig.me
Егер екі сұраныс та бірдей мекенжайды қайтарса, маршруттау кестесі қажет десе де, қолданба туннельді қолданбайды. Егер тек туннельге байланған сұраныс сәтті болса, физикалық жол сол меже үшін сүзілген және туннель сіз сұрағанды жасайды. Флагтарды, орнатылған маршруттарды, соңғы нүкте іздеуін және екі шығу нәтижесін өзгерістер журналына жазыңыз, келесі адам скриншот емес, фактілерді мұра алсын.