Ред на сървъра, който смесва наставка CIDR с точкова маска, спира демона, преди той изобщо да отвори порт. Помощникът server за IPv4 иска два отделни аргумента: подравнен мрежов адрес, след това маската в точкова форма. Всичко останало на този ред е предположение, а предположението е мястото, където размерите на пула и маските на клиентите се объркват.

Двата аргумента, които помощникът приема

Напишете първо мрежата и след това маската, без нищо да е прилепено към адреса:

server 10.72.16.0 255.255.240.0

Това е формата за /20. Редът по-долу е грешката и тя се проваля при разбора на опциите, а не по време на изпълнение:

server 10.72.16.0/20 255.255.240.0

Дръжте двете идеи отделно, когато отстранявате това. Дължината на префикса и точковата маска описват един и същ обхват, но помощникът не приема и двете наведнъж, а отхвърленият ред дава грешка в опциите, която назовава директивата, а не аритметиката.

Подравнете мрежата, преди да въведете маската

Първият адрес е мрежовият адрес на обхвата, а не удобен клиентски адрес вътре в него. За /20 обхватът върви от 10.72.16.0 до 10.72.31.255 и само първият от тях е валиден мрежов аргумент. /21 използва 255.255.248.0 и обхваща 10.72.16.0 до 10.72.23.255, така че неговият ред е server 10.72.16.0 255.255.248.0.

Смяната на префикса променя обхвата и нищо друго. Тя не променя колко адреса получава един клиент, защото това е свойство на топологията, а не на маската на този ред.

Потвърдете пула от страната на сървъра

Стартирайте инстанцията на преден план с подробно журналиране и прочетете редовете, които помощникът извежда. Пулът, който е изградил, се отпечатва при стартиране, което е по-надеждно от това да смятате аритметиката на ръка:

openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195

Търсете обобщението на пула близо до горната част на изхода. То изброява обхвата, който помощникът е резервирал, и ако този обхват не съвпада с намерението ви, аргументите на реда са грешни, независимо какво казва аритметиката на маската.

След това свържете един клиент и намерете реда, който записва адреса, който му е даден. Този един адрес, до обхвата на пула, ви казва дали клиентът е попаднал в резервирания блок, или някъде, където не сте очаквали. Ако двете не съвпадат, поправете аргументите, а не клиента. Ако съвпадат и клиентът все още не може да достигне нищо, пулът никога не е бил проблемът.

Четете маската на клиента с оглед на топологията

Клиент, който показва /30 на тунелния си интерфейс, не е доказателство за счупен пул. При адресиране точка-точка всеки клиент получава малък блок и маската на интерфейса му описва този блок, докато пулът на сървъра покрива съвкупността. При топология на подмрежа маската на клиента вместо това съвпада с маската на пула. Следователно само маската ви казва коя топология е в действие, а не дали пулът е написан правилно.

Проверете конфигурираната топология и зададения адрес заедно, преди да правите заключение:

ip -4 addr show tun0

Ако адресът е вътре в пула и маската е по-тясна от пула, това е топологията, която си върши работата. Ако адресът е извън пула, пулът е грешен и никакво инспектиране от страна на клиента няма да го поправи.

Промяна на работещ пул

Изберете обхват, който не се припокрива с текущия пул, LAN или какъвто и да е маршрут, вече изпратен към клиентите. Припокриването е отказът, който преживява рестарт и след дни се появява като един сайт, недостъпен от една посока.

Променете реда, рестартирайте и прочетете отново пула при стартиране, преди да пуснете потребителите обратно. Ако новият обхват се сблъска с нещо, същият изход при стартиране го показва веднага, а връщането назад е редакция на един ред плюс още един рестарт.

Запазете стария обхват резервиран известно време след промяната. Клиентите, които се свързват късно, все още могат да държат адрес от предишния пул, а нов обхват, който използва повторно тези адреси, създава дублирани назначения, които изглеждат като маршрутна повреда. Ръководството на OpenVPN 2.6 документира аргументите на помощника и неговото разширяване, което си струва да прочетете, преди да приемете, че дадена директива използва същата нотация като съседната.

Подобни статии