Недостасува VPN рута во NetworkManager: политика на профилот или скрипта?
Тунелот се поврзува и еден префикс никогаш не се појавува. Одлучете помеѓу политика на профилот, податоци од приклучокот и втор сопственик на рутата пред да додадете помошна скрипта.
Се поврзувате, се појавува интерфејсот на тунелот, а еден префикс што ви треба едноставно го нема во табелата. Следниот чекор обично е барање скрипта што го додава. Тоа барање води до одговори што лепат OpenVPN помошник во профил, а половината од тие одговори ја влошуваат состојбата наместо да ја подобрат, зашто рутата што недостасува има три можни сопственици и само еден од нив е скрипта што недостасува.
Одлучете кој сопственик е одговорен пред да напишете нешто.
Три сопственици, еден префикс што недостасува
Префиксот може да отсуствува зашто никој не го доставил, зашто профилот го одбил, или зашто бил инсталиран некаде каде што не гледате. Тоа се различни дефекти и имаат различни поправки.
Првиот е најлесно да се провери: дали серверот или приклучокот некогаш ја понудиле рутата? Позадина што никогаш не го примила префиксот не може да го инсталира, а помошната скрипта не може да измисли достапност што партнерот никогаш не ја опишал. Вториот е политиката на профилот, која може да потисне рути што врската инаку би ги зела. Третиот е табела или правило, што може да ја држи рутата на место што стандардното пребарување никогаш не го проверува.
Четвртиот сопственик сте вие, подоцна: скрипта што ја додава рутата при поврзување, но не ја отстранува при исклучување. Тоа создава префикс што го надживува тунелот, покажува на мртов интерфејс и го збунува следниот човек што ќе ја дебагира машината.
Прочитајте го профилот пред да додадете нешто
Започнете со сопствените својства на зачуваната врска. Читајте ги без да истурате тајни, и користете UUID ако името на профилот е двосмислено.
nmcli -f vpn.service-type,ipv4.never-default,ipv4.ignore-auto-routes,ipv4.route-table,ipv4.routes connection show office
vpn.service-type ви кажува која позадина ја поседува врската, и тоа е важно зашто податоците на приклучокот се специфични за позадината. Клуч што еден приклучок го прифаќа не е поддржана инструкција за друг, затоа извадок копиран од документација на друг клиент не е доказ за ништо.
ipv4.ignore-auto-routes и ipv4.never-default одговараат на различни прашања. Првиот може да одбие рути што врската инаку би ги зела автоматски, а вториот контролира дали профилот може да стане стандардна рута. Профил што ги игнорира автоматските рути и не се потпира на ништо друго ќе се поврзе чисто и речиси ништо нема да инсталира.
ip -4 rule show
ip -4 route show table all
Овие две команди ја решаваат третата можност. Барајте го вашиот префикс во секоја табела, не само во main, и проверете дали правило за политика го испраќа соодветното пребарување на друго место. Ако префиксот е во друга табела и ништо не го проверува, немате рута што недостасува; имате пребарување што никогаш не стигнува до неа.
Што не може да поправи скрипта
Додавањето помошна скрипта му дава на vpn.data на NetworkManager програма за извршување. Тоа е вистински механизам и тој е погрешен за повеќето од овие случаи, зашто скриптата добива контрола откако политиката на профилот веќе одлучила што да прифати.
script-security на OpenVPN е другата постојана забуна. Тоа е поставка на OpenVPN што одредува кои скрипти клиентот смее да ги извршува и што смее да стави во нивната околина; ниво 3 дозволува пренесување на акредитиви преку околината, што е одлука за ракување со тајни, а не поправка на рутирање. Неговото лепење во профил чија позадина не е OpenVPN, или неговото покачување кога ниту една скрипта не го бара, додава изложеност без да додаде рута.
Потоа е рефлексот за рестартирање. Рестартирањето на услугата NetworkManager ги урива и повторно ги гради сите управувани врски, вклучително и таа преку која сте поврзани ако работите оддалечено. Тоа е нарушувачка акција, а не безопасна дијагностика, и на сервер може да биде разликата помеѓу сесија што преживува и таква што не.
Одлуката, по ред
Поставете три прашања по ред. Дали партнерот го достави префиксот, што ќе го покаже дневникот на позадината или нејзиниот сопствен излез за состојба? Ако да, дали профилот е конфигуриран да прифаќа и инсталира рути, или ги потиснува? Ако рутата постои некаде, дали патеката за пребарување е точна за сообраќајот што го тестирате?
Само кога првиот одговор е да, вториот е да и третиот е точен, дополнителна скрипта станува одбранива, и дури тогаш треба да прашате дали позадината ја поддржува рутата нативно. Референцата за VPN поставки го документира service-type и речникот на податоци специфичен за приклучокот, и токму таму треба да се започне пред да се претпостави дека клучот постои.
По одобрена корекција, поврзете се повторно и тестирајте ја дестинацијата по адреса, а потоа по име, па исклучете се и поврзете се повторно за да потврдите дека состојбата е повторива. Еден сопственик, една табела и рута што исчезнува со тунелот е резултатот што вреди да се има.