Ajutorul serverului OpenVPN: rețea plus mască, niciodată CIDR
Ajutorul serverului IPv4 primește o rețea aliniată și o mască cu puncte, nu un sufix CIDR. Verificați intervalul, confirmați pool-ul în jurnal, apoi redimensionați în siguranță.
O linie de server care amestecă un sufix CIDR cu o mască cu puncte oprește daemonul înainte ca acesta să deschidă măcar un port. Ajutorul server pentru IPv4 vrea două argumente separate: o adresă de rețea aliniată, apoi masca de rețea în formă cu puncte. Tot restul de pe acea linie este inferență, iar în inferență se încurcă dimensiunile pool-ului și măștile clienților.
Cele două argumente pe care le acceptă ajutorul
Scrieți mai întâi rețeaua și apoi masca, fără nimic lipit de adresă:
server 10.72.16.0 255.255.240.0Aceasta este forma pentru un /20. Linia de mai jos este greșeala și eșuează la analiza opțiunilor, nu în timpul rulării:
server 10.72.16.0/20 255.255.240.0Țineți cele două idei separate când depanați asta. Lungimea prefixului și o mască cu puncte descriu același interval, dar ajutorul nu le acceptă pe amândouă deodată, iar o linie respinsă produce o eroare de opțiuni care numește directiva, nu aritmetica.
Aliniați rețeaua înainte de a tasta masca
Prima adresă este adresa de rețea a intervalului, nu o adresă de client comodă în interiorul lui. Pentru un /20 intervalul merge de la 10.72.16.0 la 10.72.31.255, și doar prima dintre ele este un argument de rețea valid. Un /21 folosește 255.255.248.0 și acoperă de la 10.72.16.0 până la 10.72.23.255, deci linia lui este server 10.72.16.0 255.255.248.0.
Schimbarea prefixului schimbă intervalul și nimic altceva. Nu schimbă câte adrese primește un singur client, pentru că aceasta este o proprietate a topologiei, nu a măștii de pe această linie.
Confirmați pool-ul dinspre server
Porniți instanța în prim-plan cu jurnalizare detaliată și citiți liniile pe care le emite ajutorul. Pool-ul pe care l-a construit este tipărit la pornire, ceea ce este mai sigur decât să calculați aritmetica de mână:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Căutați rezumatul pool-ului aproape de partea de sus a ieșirii. El enumeră intervalul pe care ajutorul l-a rezervat, iar dacă acel interval nu corespunde intenției dumneavoastră, argumentele de pe linie sunt greșite, indiferent ce spune aritmetica măștii.
Apoi conectați un client și găsiți linia care înregistrează adresa care i-a fost dată. Acea singură adresă, lângă intervalul pool-ului, vă spune dacă clientul a aterizat în blocul rezervat sau undeva unde nu vă așteptați. Dacă cele două nu se potrivesc, corectați argumentele, nu clientul. Dacă se potrivesc și clientul tot nu ajunge nicăieri, pool-ul nu a fost niciodată problema.
Citiți masca clientului ținând cont de topologie
Un client care arată un /30 pe interfața sa de tunel nu este dovada unui pool stricat. La adresarea punct-la-punct fiecare client primește un bloc mic și masca interfeței sale descrie acel bloc, în timp ce pool-ul serverului acoperă ansamblul. La o topologie de subrețea, masca clientului se potrivește în schimb cu masca pool-ului. Deci masca singură spune ce topologie este în joc, nu dacă pool-ul a fost scris corect.
Verificați împreună topologia configurată și adresa atribuită înainte de a trage o concluzie:
ip -4 addr show tun0Dacă adresa este în interiorul pool-ului și masca este mai îngustă decât pool-ul, este topologia care își face treaba. Dacă adresa este în afara pool-ului, pool-ul este greșit, iar nicio inspecție din partea clientului nu o va corecta.
Schimbarea unui pool activ
Alegeți un interval care nu se suprapune cu pool-ul curent, cu LAN-ul sau cu oricio rută deja trimisă către clienți. Suprapunerea este defecțiunea care supraviețuiește unei reporniri și apoi, după câteva zile, apare ca un singur sit inaccesibil dintr-o direcție.
Schimbați linia, reporniți și recitiți pool-ul de pornire înainte de a lăsa utilizatorii să revină. Dacă noul interval se ciocnește cu ceva, aceeași ieșire de pornire îl arată imediat, iar revenirea este o editare de o linie plus încă o repornire.
Păstrați intervalul vechi rezervat o vreme după schimbare. Clienții care se reconectează târziu pot ține încă o adresă din pool-ul anterior, iar un interval nou care refolosește acele adrese produce atribuiri duplicate care arată ca o defecțiune de rutare. Manualul OpenVPN 2.6 documentează argumentele ajutorului și extinderea lui, ceea ce merită citit înainte de a presupune că o directivă folosește aceeași notație ca vecina ei.