Додајете 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

Ако претрага показује на тунел, дистрибуција је радила и преостали проблем је негде другде. Ако показује на подразумевани гејтвеј, рута није инсталирана, филтрирана је опцијом на страни клијента или припада профилу који клијент не користи.

Претпоставите да је дистрибуција радила и да ипак ништа не одговара: тада проверите прослеђивање на гејтвеју, повратну руту супротне стране и било који заштитни зид између њих. Рута бира пут, она не даје приступ.

Повезани чланци