Помошник на серверот OpenVPN: мрежа плус мрежна маска, никогаш CIDR
Помошникот на серверот IPv4 прима порамнета мрежа и точкаста маска, а не CIDR-наставка. Проверете опсегот, потврдете го базенот во дневникот, потоа безбедно променете ја големината.
Ред на серверот што меша 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 прирачникот ги документира аргументите на помошникот и неговото проширување, што вреди да се прочита пред да претпоставите дека директивата го користи истиот запис како нејзиниот сосед.