Servera palīgi konfigurē apakštīklu un pēc tam piepilda to ar savas izvēles dinamisku pūlu. Šis noklusējums ir ērts, līdz dažām adresēm jāpaliek ārpus sadalījuma — vai nu tās rezervētas fiksētiem piešķīrumiem, vai atstātas nākamam segmentam. Automātiskā pūla izslēgšana un diapazona norādīšana pašam prasa divas rindas un vienu apzinātu lēmumu par to, kuras adreses nav paredzētas sadalījumam. Pārējais ir operatīvā disciplīna: uzskaite, piemērošana, pārbaude, atritināšana.

Šī ir izmaiņa strādājošā pakalpojumā, tāpēc uztveriet to kā operatīvu uzdevumu: vispirms uzskaite, tad piemērošana parastajā dzīves ciklā, pārbaude ar jaunu klientu un sagatavota atritināšana.

Sāciet ar apakštīklu, kas jums jau ir

Izlasiet pašreizējo servera konfigurāciju un adreses, kuras klienti patiešām tur. Pūla izmaiņa ir jēgpilna tikai attiecībā pret šo bāzi, un bāze ne vienmēr ir tas, ko liecina fails, jo pārvaldīts produkts vai konfigurācijas ģenerators var būt tā faila īpašnieks, kuru jūs lasāt.

grep -nE '^(topology|server|ifconfig-pool|max-clients|client-config-dir)' /etc/openvpn/server/lab.conf
ip -4 addr show tun0

Apstipriniet spēkā esošo topoloģiju. Apakštīkla topoloģijā katrs klients paņem vienu adresi no pūla; vecāki net30 izkārtojumi katram klientam piešķir nelielu bloku, un aritmētika ir pilnīgi citāda. Ja serveris joprojām ir uz net30, šī lapa ir nepareizā migrācijas rokasgrāmata un pūla skaitļi nenozīmēs to, ko gaidāt. Pārbaudiet šo rindu, pirms kopējat adrešu aritmētiku no citurienes.

Pierakstiet paša servera adresi, katru fiksēto piešķīrumu klientu konfigurāciju direktorijā un jebkuru adresi, no kuras atkarīgs maršruts vai piekļuves noteikums. Tieši šīm adresēm jāpaliek ārpus dinamiskā diapazona. To pierakstīšana vispirms ir tas, kas diapazonu padara par lēmumu, nevis minējumu. Tas arī dod atritināšanai ko konkrētu atjaunot.

Pievienojiet nopool un norādiet diapazonu

Palīgatslēgvārds pieņem nopool, kas saglabā apakštīkla konfigurāciju un izslēdz automātisko dinamisko pūlu, kā apraksta OpenVPN 2.6 rokasgrāmata. Pēc tam skaidrā ifconfig-pool rinda nodrošina paredzēto iekļaujošo diapazonu, un tās tīkla maska atbilst apakštīklam. Abas rindas pieder vienam servera blokam, jo pūlam bez sava apakštīkla nav nozīmes. To secība svarīga tikai lasāmībai, jo palīgs pāri izvērš, kad pakalpojums startē.

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.0

Abas robežas ir iekļaujošas, tāpēc piemērs piedāvā septiņdesmit vienu adresi. Turiet servera adresi un katru fiksēto piešķīrumu ārpus šī tvēruma; fiksēts piešķīrums, kas iekrīt dinamiskajā diapazonā, rada sadursmi, kas atkarīga no savienojumu secības, un tas ir sliktākais veids atkļūdošanai. Ja fiksētie piešķīrumi, visticamāk, augs, atstājiet rezervi starp rezervēto kopu un diapazonu.

Diapazona lielums un vienlaicība ir atsevišķi ierobežojumi. Simts adreses nenozīmē simts vienlaicīgu klientu, ja max-clients saka citādi, un pūls, kas lielāks par vienlaicības ierobežojumu, ir normāls, nevis izšķērdīgs. Svarīgi ir tas, ka abi ierobežojumi tiek izvēlēti apzināti, nevis mantoti no noklusējuma.

Turiet fiksētos piešķīrumus ārpus dinamiskā diapazona

Konkrētam klientam paredzēts ifconfig-push ir cits mehānisms nekā sadalījums no pūla, un tam jāizmanto aktīvajai topoloģijai atbilstoši parametri. Apakštīkla režīmā tas ir viena adrese un tīkla maska; net30 pāra pārnešana tāpēc, ka tas parādījās vecā piemērā, ir bieža kļūda.

Sadalījuma vēsture ir mājiens, nevis autoritāte. persist fails atceras, kuram klientam bija kura adrese, tāpēc klienti, kas atkārtoti pieslēdzas, parasti saņem to pašu, un tas nerezervē adreses, neatbrīvo tās un neaizstāj fiksētu piešķīrumu. Ja konkrētai ierīcei vienmēr jābūt konkrētai adresei, izmantojiet fiksētu piešķīrumu, nevis paļaujieties uz persist failu.

Pēc tam pārbaudiet ceļus, kas atkarīgi no adresēm. Klientiem piespiestais maršruts, ugunsmūra noteikums, kas atļauj apakštīklu, vai uzraudzības pārbaude, kas gaida konkrētu saimnieku, var visi pieņemt veco diapazonu. Pūla maiņa, tos neizlasot, pārvieto kļūmi uz vietu, kas izskatās nesaistīta.

Piemērojiet dzīves ciklā un pēc tam pārbaudiet

Piemērojiet izmaiņu tā, kā pakalpojums parasti saņem konfigurāciju — vai nu tiešs fails un restartēšana, vai pārvaldības slānis, kas failu ģenerē no jauna. Manuāls labojums ģenerētā failā saglabājas līdz nākamajai ģenerācijai un ne ilgāk. Pierakstiet, kurš mehānisms pārvalda failu, jo nākamajam operatoram būs jāzina, kur veikt to pašu izmaiņu. Pēc tam vienreiz restartējiet un izlasiet žurnālu, pirms aicināt klientu.

systemctl restart openvpn-server@lab
journalctl -u openvpn-server@lab -n 30 --no-pager
# on a fresh client
ip -4 addr show tun0

Pieslēdziet klientu, kas iepriekš nebija pieslēgts, un apstipriniet, ka adrese iekrīt norādītajā diapazonā un ārpus rezervētās kopas. Pēc tam apstipriniet atgriešanās ceļu: klientam jāsasniedz tas, ko politika atļauj, un nekas vairāk. Adrese, kas atbilst plānam, bet kam nav strādājoša maršruta, nav veiksmīga izmaiņa.

Atkārtoti pieslēdziet klientu, kuram bija adrese no vecā diapazona. Tam jāsaņem adrese no jaunā diapazona, un jebkuram sesijas līmeņa stāvoklim, kas saistīts ar veco adresi, jābūt pazudušam. Ja tas patur veco adresi, to piešķir kaut kas cits un pūls nav tas īpašnieks, ko domājat.

Diapazona izmaiņu atritināšana

Saglabājiet iepriekšējās trīs rindas savā izmaiņu ierakstā, ne tikai iepriekšējo failu. To atjaunošana un restartēšana atgriež sadalījumu pie vecās uzvedības, un klienti, kas pēc tam pieslēdzas, saņems adreses no tā.

Ierakstā ietilpst divi brīdinājumi. Klienti, kas jau pieslēgušies atritināšanas brīdī, saglabā pašreizējās adreses, līdz pieslēdzas no jauna, tāpēc atritināšana nav acumirklīga visā parkā. Un, ja vecais diapazons pārklājās ar fiksētu piešķīrumu, tā atjaunošana atjauno arī sadursmi; tieši šī pārklāšanās bija izmaiņu iemesls, un tai vajadzīgs cits risinājums nekā atritināšana.

Pūla izmaiņa ir pabeigta, kad jauns klients saņem adresi diapazona iekšienē, rezervētā adrese nekad netiek izsniegta un maršruti un noteikumi, kas izmanto šīs adreses, joprojām darbojas kā paredzēts. Viss mazāk atstāj nākamajam cilvēkam noskaidrot, kura no trim nav patiesa.

Saistītie raksti