Линија сервера која меша 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 приручник документује аргументе помоћника и његово проширење, што вреди прочитати пре него што претпоставите да директива користи исти запис као њен сусед.

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