Strežnik OpenVPN z nopool: razglasite izrecen obseg sklada
Ohranite podomrežje in prevzemite dodeljevanje. Utajite samodejni sklad, razglasite vključne meje in preverite, kaj nov odjemalec dejansko prejme.
Pomožni programi strežnika nastavijo podomrežje in ga nato napolnijo z dinamičnim skladom po lastni izbiri. Ta privzeta nastavitev je priročna, dokler morajo nekateri naslovi ostati zunaj dodeljevanja — bodisi rezervirani za fiksne dodelitve bodisi zadržani za prihodnji segment. Utajitev samodejnega sklada in lastna razglasitev obsega zahteva dve vrstici in eno zavestno odločitev o tem, kateri naslovi niso za dodeljevanje. Ostalo je operativna disciplina: popis, uporaba, preverjanje, razveljavitev.
To je sprememba v delujoči storitvi, zato jo obravnavajte kot operativno nalogo: najprej popis, nato uporaba skozi običajni življenjski cikel, preverjanje z novim odjemalcem in pripravljena razveljavitev.
Začnite s podomrežjem, ki ga že imate
Preberite trenutno konfiguracijo strežnika in naslove, ki jih odjemalci dejansko držijo. Sprememba sklada ima smisel le glede na to osnovo, osnova pa ni vedno tisto, kar nakazuje datoteka, ker je upravljani izdelek ali generator konfiguracije lahko lastnik datoteke, ki jo berete.
grep -nE '^(topology|server|ifconfig-pool|max-clients|client-config-dir)' /etc/openvpn/server/lab.conf
ip -4 addr show tun0Potrdite veljavno topologijo. V topologiji podomrežja vsak odjemalec vzame en naslov iz sklada; starejše postavitve net30 vsakemu odjemalcu dodelijo majhen blok in aritmetika je povsem drugačna. Če je strežnik še vedno na net30, je ta stran napačen vodnik za selitev in številke sklada ne bodo pomenile tega, kar pričakujete. Preverite tisto vrstico, preden od drugod kopirate aritmetiko naslovov.
Zapišite lastni naslov strežnika, vsako fiksno dodelitev v imeniku konfiguracij odjemalcev in vsak naslov, od katerega je odvisna pot ali pravilo dostopa. To so naslovi, ki morajo ostati zunaj dinamičnega obsega. Prav to, da jih zapišete najprej, naredi obseg odločitev in ne ugibanje. Razveljavitvi tudi da nekaj konkretnega za obnovitev.
Dodajte nopool in razglasite obseg
Pomožna ključna beseda sprejme nopool, ki ohrani konfiguracijo podomrežja in utaji samodejni dinamični sklad, kot opisuje priročnik OpenVPN 2.6. Nato izrecna vrstica ifconfig-pool zagotovi predvideni vključni obseg, njena omrežna maska pa se ujema s podomrežjem. Obe vrstici spadata v isti blok strežnika, ker sklad brez svojega podomrežja nima pomena. Vrstni red med njima je pomemben le za berljivost, saj pomočnik par razširi ob zagonu storitve.
topology subnet
server 10.70.0.0 255.255.255.0 nopool
ifconfig-pool 10.70.0.50 10.70.0.120 255.255.255.0Obe meji sta vključni, zato primer ponuja enainsedemdeset naslovov. Ohranite naslov strežnika in vsako fiksno dodelitev zunaj tega razpona; fiksna dodelitev znotraj dinamičnega obsega povzroči trčenje, ki je odvisno od vrstnega reda povezav, in to je najslabša vrsta za odpravljanje napak. Pustite rezervo med rezerviranim naborom in obsegom, če bodo fiksne dodelitve verjetno rasle.
Velikost obsega in sočasnost sta ločeni omejitvi. Sto naslovov ne pomeni sto sočasnih odjemalcev, če max-clients pravi drugače, in sklad, večji od omejitve sočasnosti, je običajen in ne potraten. Pomembno je, da sta obe omejitvi izbrani zavestno in ne podedovani iz privzete vrednosti.
Ohranite fiksne dodelitve zunaj dinamičnega obsega
Odjemalcu lasten ifconfig-push je drugačen mehanizem od dodeljevanja iz sklada in mora uporabljati parametre, primerne aktivni topologiji. V načinu podomrežja je to en naslov in omrežna maska; prenašanje para net30 samo zato, ker se je pojavil v starem primeru, je pogosta napaka.
Zgodovina dodeljevanja je namig, ne avtoriteta. Datoteka persist si zapomni, kateri odjemalec je imel kateri naslov, zato odjemalci, ki se znova povežejo, običajno prejmejo istega, in ne rezervira naslovov, jih ne sprošča in ne nadomešča fiksne dodelitve. Če mora določena naprava vedno imeti določen naslov, uporabite fiksno dodelitev, namesto da bi se zanašali na datoteko persist.
Nato preverite poti, ki so odvisne od naslovov. Pot, potisnjena odjemalcem, pravilo požarnega zidu, ki prepusti podomrežje, ali nadzorna preveritev, ki pričakuje določenega gostitelja, lahko vsi predpostavljajo stari obseg. Spreminjanje sklada brez branja teh mest premakne napako na kraj, ki se zdi nepovezan.
Uporabite skozi življenjski cikel in nato preverite
Spremembo uporabite tako, kot storitev običajno prejme konfiguracijo — bodisi neposredna datoteka in ponovni zagon bodisi upravljavska plast, ki datoteko znova ustvari. Ročni popravek ustvarjene datoteke preživi do naslednjega ustvarjanja in ne dlje. Zabeležite, kateri mehanizem je lastnik datoteke, ker bo naslednji upravljavec moral vedeti, kje narediti isto spremembo. Nato enkrat znova zaženite in preberite dnevnik, preden povabite odjemalca.
systemctl restart openvpn-server@lab
journalctl -u openvpn-server@lab -n 30 --no-pager
# on a fresh client
ip -4 addr show tun0Povežite odjemalca, ki se prej ni povezal, in potrdite, da naslov pade v razglašeni obseg in zunaj rezerviranega nabora. Nato potrdite povratno pot: odjemalec mora doseči, kar politika dovoljuje, in nič več. Naslov, ki ustreza načrtu, a nima delujoče poti, ni uspešna sprememba.
Znova povežite odjemalca, ki je imel naslov iz starega obsega. Prejeti bi moral naslov iz novega obsega, vsako stanje na ravni seje, vezano na stari naslov, pa bi moralo izginiti. Če obdrži stari naslov, mu ga dodeljuje nekaj drugega in sklad ni lastnik, ki ga mislite.
Razveljavitev spremembe obsega
Shranite prejšnje tri vrstice v svoj dnevnik sprememb, ne le prejšnje datoteke. Njihova obnovitev in ponovni zagon vrneta dodeljevanje na staro vedenje, odjemalci, ki se pozneje povežejo, pa bodo prejeli naslove iz njega.
Dnevnu sprememb pripadata dve opozorili. Odjemalci, ki so ob razveljavitvi že povezani, obdržijo trenutne naslove, dokler se znova ne povežejo, zato razveljavitev ni takojšnja v celotni floti. In če se je stari obseg prekrival s fiksno dodelitvijo, obnovitev vrne tudi trčenje; prav to prekrivanje je bilo razlog za spremembo in zahteva drugačno rešitev kot razveljavitev.
Sprememba sklada je končana, ko nov odjemalec prejme naslov v obsegu, rezervirani naslov ni nikoli izdan in poti ter pravila, ki uporabljajo te naslove, se še vedno vedejo, kot je bilo mišljeno. Karkoli manj pusti naslednji osebi, da odkrije, katera od treh stvari ne drži.