Додавате route 10.60.0.0 255.255.255.0 во конфигурацијата на серверот, рестартирате, повторно поврзувате лаптоп и подмрежата сѐ уште е недостапна од тој лаптоп. Линијата беше прифатена, услугата стартуваше чисто и ништо во дневникот не изгледа погрешно. Она што се случи е дека рутата беше инсталирана на машината што ја уредувавте: портата сега верува дека може да стигне до тој префикс, додека на клиентот ништо не му беше кажано. Позицијата е целото прашање и има четири места каде истата линија може да живее.

Четирите места и кој го добива секое

Рута може да се додаде со сопствената конфигурација на клиентот, да се понуди на секој клиент преку глобален push, да се понуди на еден клиент преку датотека специфична за клиент или да се запише во сопствениот контекст за рутирање на серверот.

Овие четири случаи користат речиси идентична синтакса и даваат сосема различни резултати. Првите три влијаат на тоа што клиентот праќа во тунелот; четвртиот влијае на тоа како серверот стигнува до мрежа, што е корисно кога на самиот сервер му треба патека и штетно кога се заменува со дистрибуција.

Одлучете која од четирите ја сакате пред да ја напишете линијата, потоа потврдете го примачот.

PlacementEffectReceiver
Client profile routeInstalled by the client at connectThat client only
Global push "route ..."Sent to every client that accepts pushed optionsAll pulling clients
Client-specific pushSent to the matching client contextOne identity
Server config route, no pushAdded to the server's own tableThe 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 меѓу нив. Рутата избира пат, таа не дава пристап.

Поврзани статии