Ескі әдепкі маршрутыңыз OpenVPN-нен кейін әдейі сақталады
Екі /1 маршруты әдепкі маршрутты алмастырмай-ақ одан жоғары тұрады. Межелі нүкте шынымен қай маршрутты алатынын тексеріңіз, содан кейін ескі шлюзді орнында қалдырыңыз.
Сіз туннельге қосылып, ip route іске қосасыз, ал бастапқы әдепкі шлюз әлі де сонда тұр. Келесі ой — клиент маршрутты қабылдай алмады, сондықтан әдепкі маршрутты қолмен жоясыз да, байланыстан мүлдем айырыласыз. Бұл жазба қалуы керек еді. redirect-gateway def1 көмегімен OpenVPN қарапайым әдепкі маршрутты алмастырудың орнына одан жоғары тұратын екі нақтырақ маршрут орнатады. Ескі шлюз қалады және сіз сынап жатқан трафикті тасымалдауды тоқтатады.
def1 шын мәнінде не істейді
Бұл жалауша 0.0.0.0/1 және 128.0.0.0/1 қосады, екеуі де туннельге бағытталған. 0.0.0.0/1 бірінші октеті 0-ден 127-ге дейін болатын әрбір мекенжайды қамтиды, ал 128.0.0.0/1 128-ден 255-ке дейінгіні қамтиды, сондықтан әрбір IPv4 межелі нүктесінің ескі әдепкіден нақтырақ сәйкестігі болады. Қай маршрут жеңетінін метрика емес, префикс ұзындығы шешеді.
Бастапқы әдепкі маршрутты орнында қалдыру әдейі жасалған. Клиент нені алмастырғанын есте сақтауы қажет емес және VPN серверіне өзінің қосылымын тасымалдайтын маршрутты қайта жазбайды. Ажырату кезінде ол екі жарты маршрутты жояды, ал кесте бұрынғы қалпына оралады.
Неге /1, /0 емес
Маршруттау ең ұзын сәйкес префиксті таңдайды, ең төмен метриканы емес, сондықтан әдепкі маршруттың метрикасы не десе де, /1 /0-ден озады. Екі жарты да бар, өйткені бір /1 кеңістіктің тек жартысын қамтиды; тек 0.0.0.0/1 болғанда 128.0.0.0-ден жоғарының бәрі ескі әдепкі маршрутты ұстайды, бұл кейбір сайттар жұмыс істеп, басқалары істемейтін шатастыратын белгі тудырады.
Ескі әдепкі маршруттың метрикасын арттыру немесе азайту ештеңені өзгертпейді, ал басқа интерфейстегі төменірек метрикалы әдепкі маршрут та трафикті ұрламайды. Алдымен префикс ұзындығы шешеді, ал метрикаға тек тең префикстер жүгінеді.
Нақты маршруттау кестесін оқыңыз
Қосылған хост үш жазбаны да бір уақытта көрсете алады, мұнда туннель жартыларды тасымалдайды, ал бастапқы шлюз әлі тізімде тұр. Мекенжайлар көшіруге арналған конфигурация емес, мысалдар, өйткені интерфейс атаулары, туннель топологиясы және қосымша маршруттар платформа мен клиентке қарай өзгереді.
default via 192.168.50.1 dev wlan0
0.0.0.0/1 via 10.8.0.1 dev tun0
128.0.0.0/1 via 10.8.0.1 dev tun0Маңыздысы — қатынас: бір жалпы әдепкі маршруттың үстінде екі нақты жарты. Ескі шлюз жолы қалады, өйткені оны ештеңе алмастырған жоқ.
Пакет шынымен қай маршрутты алатынын тексеріңіз
Нақтырақ маршруттар әлі де жеңуі мүмкін: жеке ауқымға, жергілікті ішкі желіге арналған маршрут немесе VPN серверінің өз мекенжайы /1-ден ұзынырақ. Туннельге өз серверіне сыртқы жол қажет, ал бұл қосылымды қайта туннельге жіберу оны бірден бұзар еді. Linux-та кестені көзбен оқудың орнына ядродан сұраңыз: сізді қызықтыратын межелі нүктемен ip route get таңдалған маршрутты, интерфейсті және көзді басып шығарады. Егер саясатқа негізделген маршруттау конфигурацияланса, ережелерді де қарап шығыңыз, өйткені ереже негізгі кестеге жүгірместен бұрын басқа кестені таңдауы мүмкін.
Егер тек IPv4-тің бір бөлігі дұрыс емес әрекет етсе, екі жартының да орнатылғанын растаңыз, содан кейін сәтсіз межелі нүктеге сәйкес келетін ерекшелікті іздеңіз. Ескі әдепкі маршрутты жою шешім емес, ол клиентке туннельді таза бөлшектеу үшін қажет маршрутты алып тастайды.
def1 нені қамтымайды
Екі IPv4 жазбасы IPv6 туралы ештеңе айтпайды: IPv6 байланысы бар хост бұл отбасын бөлек бағыттағанша өз әдепкісін пайдалана береді, сондықтан қос стекті желіде кейбір трафик туннельді айналып өткендей көрінеді. Басқа клиенттер мен желі менеджерлері толық туннель маршруттауын басқаша жүзеге асырады, олардың кестелері сәйкес келмейді. Мұнда сипатталған def1 әрекеті OpenVPN-нің құжатталған жалаушасына жатады, машинадағы әрбір VPN-ге емес.
Апаттық қосқыш басқа сұраққа жауап береді: туннель құлағанда машина не істейді. Маршрут басымдығы туннель қосулы тұрғанда трафиктің қайда кететінін шешеді; ол кейіннен брандмауэрдің не істейтінін шешпейді. Жұмыс тәртібі: кестені оқыңыз, екі жартының бар екенін растаңыз, сәтсіз межелі нүкте үшін ip route get іске қосыңыз, саясат ережелерін тексеріңіз, содан кейін IPv6-ны бөлек қараңыз. Ескі әдепкі маршрутты қайда болса, сонда қалдырыңыз.