Каде припаѓа рутата во OpenVPN: кај клиентот или кај серверот?
Гола рута во конфигурацијата на серверот го менува серверот, не клиентот. Изберете ја клиентската датотека, глобалeн push или push за еден клиент и проверете што пристигна.
Додавате route 10.60.0.0 255.255.255.0 во конфигурацијата на серверот, рестартирате, повторно поврзувате лаптоп и подмрежата сѐ уште е недостапна од тој лаптоп. Линијата беше прифатена, услугата стартуваше чисто и ништо во дневникот не изгледа погрешно. Она што се случи е дека рутата беше инсталирана на машината што ја уредувавте: портата сега верува дека може да стигне до тој префикс, додека на клиентот ништо не му беше кажано. Позицијата е целото прашање и има четири места каде истата линија може да живее.
Четирите места и кој го добива секое
Рута може да се додаде со сопствената конфигурација на клиентот, да се понуди на секој клиент преку глобален push, да се понуди на еден клиент преку датотека специфична за клиент или да се запише во сопствениот контекст за рутирање на серверот.
Овие четири случаи користат речиси идентична синтакса и даваат сосема различни резултати. Првите три влијаат на тоа што клиентот праќа во тунелот; четвртиот влијае на тоа како серверот стигнува до мрежа, што е корисно кога на самиот сервер му треба патека и штетно кога се заменува со дистрибуција.
Одлучете која од четирите ја сакате пред да ја напишете линијата, потоа потврдете го примачот.
| Placement | Effect | Receiver |
|---|---|---|
| Client profile route | Installed by the client at connect | That client only |
Global push "route ..." | Sent to every client that accepts pushed options | All pulling clients |
| Client-specific push | Sent to the matching client context | One identity |
| Server config route, no push | Added to the server's own table | The gateway itself |
Зошто голата серверска рута ги изненадува луѓето
Конфигурацијата на серверот е првото место каде администраторите гледаат, и директивата за рута таму се чита како изјава за VPN мрежата. Не е. OpenVPN ја третира како локална инсталација на рута на машината каде работи демонот, што е точно истиот вид промена што би ја направиле со ip route и потоа би ја заборавиле.
Дистрибуцијата бара рутата да биде пратена со push, а push бара клиентот да ја повлече. Клиент стартуван со исклучени повлечени опции целосно ја игнорира понудата. Проверете ги двата краја на тоа ракување пред да ја препишете серверската датотека, бидејќи дневникот на серверот нема да се жали: од негова страна понудата беше испратена. Прифатената рута исто така стапува во сила само при следното поврзување, никогаш во сесијата во која веќе сте.
Кога ќе ги видите двете како одделни операции, грешката престанува да биде мистериозна: серверот стигнува до префиксот, клиентот не може и двете тврдења се точни истовремено.
Датотеки за поединечни клиенти и идентитетот што го совпаѓаат
Датотека специфична за клиент се именува по идентитетот што серверот го автентицираше, што по default е заедничкото име на сертификатот. Пријателското име на врската во десктоп клиент не е таа вредност и несовпаѓањето создава датотека што никогаш не се чита.
Проверете го директориумот што серверот навистина го користи, потоа потврдете дека името на датотеката точно се совпаѓа со автентицираниот идентитет, вклучително големи и мали букви.
grep -n 'client-config-dir' /etc/openvpn/server/server.conf
ls -l /etc/openvpn/ccd/Внатре во таа датотека рутата сѐ уште мора да се прати со push, бидејќи контекстот за поединечен клиент е збир опции што се применуваат на сесијата на тој клиент, а не локална табела за рутирање. Голата рута таму го има истиот проблем како голата рута во глобалната датотека.
Сопствената датотека на клиентот и алатката што ја поседува
Рута поставена во конфигурацијата на клиентот се инсталира кога клиентот се поврзува и се отстранува кога се исклучува, што е вистинскиот животен циклус за статична дестинација.
Ако профилот го поседува мрежен менаџер, тој може еднаш да ги увезе тие опции и потоа да ја чува сопствената копија. Уредувањето на преземената датотека подоцна не менува ништо, што е честа причина за "рутата е таму, но не се применува".
Проверете го активниот профил наместо датотеката што сте ја презеле и проверете ги увезените поставки што ги прикажува менаџерот. Потоа поврзете се и прашајте го системот кој пат го користи одредена адреса, наместо да претпоставите дека тунелот победил затоа што рутата постоела во текстуална датотека.
Проверете на клиентот, потоа проверете ја повратната патека
Прашајте ја сопствената табела за рутирање на клиентот за дестинацијата, не онаа на серверот. Пребарување за еден хост внатре во префиксот е доволно за да се покажат интерфејсот и следниот скок што ќе се користат.
ip route get 10.60.0.10Ако пребарувањето покажува кон тунелот, дистрибуцијата работеше и преостанатиот проблем е на друго место. Ако покажува кон стандардната порта, рутата не беше инсталирана, беше филтрирана од опција на клиентската страна или припаѓа на профил што клиентот не го користи.
Претпоставете дека дистрибуцијата работеше и сѐ уште ништо не одговара: тогаш проверете го препраќањето на портата, повратната рута на спротивната страна и секој firewall меѓу нив. Рутата избира пат, таа не дава пристап.