OpenVPN DHCP жаңартуынан кейін үзіледі: соңғы нүкте маршрутын сақтаңыз
DHCP жаңартуы туннельдің соңғы нүктесін ескірген шлюзде қалдыруы мүмкін, ал жартылай әдепкі маршруттар туннельді жұтып қояды. Метриканы емес, сол маршрутқа кім ие екенін түзетіңіз.
Туннель қосылады, содан кейін қатынау сілтемесіндегі жалдау жаңартуы оны өлтіреді, ал журнал маршрутты емес, уақыт шегінен асуды кінәлайды. VPN конфигурациясында ештеңе өзгерген жоқ, және бұл ишара: одан тыс бірдеңе өзгерді. DHCP оқиғасы мекенжайды немесе шлюзді қайта жазды, ал туннельдің соңғы нүктесін қолжетімді ұстаған хост маршруты енді жоқ келесі секіріске сілтейді. Бұл маршруттау мәселесі болмас бұрын меншік мәселесі.
Симптомды жартылай әдепкі маршруттармен салыстырыңыз
redirect-gateway def1 көмегімен OpenVPN әдепкі маршрутты ауыстырудың орнына 0.0.0.0/1 және 128.0.0.0/1 орнатады. Екеуі бірге бүкіл мекенжай кеңістігін қамтиды және 0.0.0.0/0 маршрутын тек префикс ұзындығымен жеңеді. Сондықтан дәлірек сәйкестігі жоқ кез келген межелі туннельге кіреді.
Соңғы нүктеге ерекшелік қажет. OpenVPN жартылай әдепкі маршруттар кірмес бұрын бастапқы қатынау шлюзі арқылы сервер мекенжайына хост маршрутын қосады, сонда капсулаланған пакеттер шыға алады. Бұл ерекшелік жоғалғанда немесе енді жоқ келесі секірісті ұстап қалғанда, туннельдің өз сыртқы пакеттері жартылай әдепкі маршрутқа сәйкес келіп, туннельге қайта жіберіледі. Нәтижесі келесі keepalive немесе қол алысу кезінде өлетін қосылым, журналда маршруттау қатесіне ұқсайтын ештеңе жоқ.
Басқа нәрсеге тимес бұрын кестенің пішінін растаңыз. ip route show екі жартыны және сервер мекенжайына арналған хост маршрутын тізімдеуі керек; хост маршруты болмаса, тергеудің қалғанының айқын бастапқы нүктесі бар.
Жартылай әдепкі маршруттар метриканы өзгертпей неге жеңеді
Төмен метрика ұзынырақ префиксті жеңбейді. /1 маршруттары жеңеді, өйткені ядро ең нақты маршрутты бірінші сәйкестендіреді, сондықтан әдепкі маршруттағы метриканы көтеру туннельге бағытталған трафиктің қайда кететініне ештеңе өзгертпейді. Метрикалардың соңынан қуу бұл диагностикадағы ең көп тараған қате бұрылыс.
Таңдауды ip route get 203.0.113.10 арқылы тексеріп, оны нақты сервер мекенжайымен алмастырыңыз. Жауап ядро шынымен қолданатын интерфейс пен келесі секірісті атайды, бұл кестені оқып, ол туралы ойланудан гөрі ақпараттырақ.
Бұл пәрменді туннель басталмас бұрын, ол жұмыс істеп тұрғанда және жалдау оқиғасынан кейін орындаңыз. Бір пәрменнен үш жауап, және ауытқу нүктесі көрінеді.
Бір емес, үш сурет түсіріңіз
Қатынау мекенжайын, қатынау шлюзін, соңғы нүктенің межелісін, таңдалған маршрутты және кез келген саясат ережесін үш сәтте жинаңыз: қатынау сілтемесі конфигурацияланғаннан кейін, VPN қосылғаннан кейін және жалдау немесе оператор оқиғасынан кейін. Әр сурет бір уыс пәрмен, және олар тек бірге мағына береді. Ақаудан кейінгі жалғыз сурет ауысуды емес, күйді жазады. Пәрмендерді шағын скриптке жазыңыз, сонда әр сурет бірдей жолмен алынады.
Суреттерді уақыт белгілерімен бір файлда сақтаңыз, өйткені кейінірек қызықты сұрақ реттілік. DHCP оқиғасы OpenVPN өз маршрутын жаңартпас бұрын келді ме, әлде кейін бе? Жауап оны кім түзетуі керектігін шешеді. Қате сағаттың уақыт белгісі жоқтықтан жаман, сондықтан оны маршруттау кестесіне ие хосттан алыңыз.
Соңғы нүкте мекенжайдың орнына атау ретінде конфигурацияланса, оны әр суретте де шешіңіз. Қатынау сілтемесіндегі DNS өзгерісі ешбір маршрутқа тимей-ақ соңғы нүктені жылжыта алады.
Қай компонент ерекшелікті жаңартатынын шешіңіз
dhcpcd жүйесінде ілмектер ілмек каталогынан және шығу ілмегінен іске қосылады, ал менеджер режимі ауқымы бойынша әр интерфейс режимінен ерекшеленеді. Ілмек не істесе де, ол идемпотентті болуы керек, өйткені жаңартулар топтап келуі мүмкін.
Сенімді ие екі жағын да бұрыннан білетін интеграция: VPN қосылымын басқаратын желі менеджері немесе қатынау сілтемесі көтерілгеннен кейін реттелген unit. Ілмек қосқан статикалық маршрут келесі шлюз өзгерісіне дейін жұмыс істейді, содан кейін дәл сол сияқты сәтсіз аяқталады. Егер ілмекті бәрібір қолдансаңыз, бүгін көрген шлюзді қатты кодтаудың орнына оған орындалу кезінде ағымдағы шлюзді оқытуға рұқсат етіңіз.
Иені конфигурацияның ішіне жазып қойыңыз. Қайта қосылуды жөндейтін келесі адам ерекшелік маршрутына VPN емес, ілмек жауапты екенін білуі керек.
Тек қайта қосылуды емес, өмірлік циклды сынаңыз
dhcpcd -n eth0 арқылы немесе жалдауды босатып, қайта алу арқылы жаңартуды мәжбүрлеңіз, содан кейін соңғы нүкте үшін ip route get қайта тексеріңіз. Мұны екі рет жасаңыз, өйткені екінші жүгіріс қосарланған маршруттар қосатын ілмектерді ұстайды. Содан кейін қайта жүктеңіз, өйткені тұрақтылық дұрыстықтан басқа қасиет.
Жаңартудан және қайта жүктеуден аман өткен туннельдің иесі және жұмыс істейтін ерекшелігі бар. Тек қолмен қайта іске қосудың ғана аман өтетін туннельде екеуі де жоқ, және ол сіз жоспарлай алмайтын келесі оқиғада сәтсіз аяқталады.