Серверныя памочнікі наладжваюць падсетку, а затым запаўняюць яе дынамічным пулам на свой выбар. Гэтае значэнне па змаўчанні зручнае, пакуль некаторыя адрасы павінны заставацца па-за размеркаваннем — ці то зарэзерваваныя для фіксаваных прызначэнняў, ці прыбераныя для будучага сегмента. Каб адключыць аўтаматычны пул і аб’явіць дыяпазон самастойна, патрэбны два радкі і адно ўсвядомленае рашэнне пра тое, якія адрасы не прызначаны для размеркавання. Астатняе — аперацыйная дысцыпліна: інвентарызацыя, ужыванне, праверка, адкат.

Гэта змяненне працуючага сэрвісу, таму стаўцеся да яго як да аперацыйнай задачы: спачатку інвентарызацыя, затым ужыванне праз звычайны жыццёвы цыкл, праверка новым кліентам і захаванне адкату.

Пачніце з падсеткі, якая ў вас ужо ёсць

Прачытайце бягучую канфігурацыю сервера і адрасы, якія кліенты фактычна займаюць. Змяненне пула мае сэнс толькі адносна гэтай базы, а база не заўсёды такая, як падказвае файл, бо кіраваны прадукт або генератар канфігурацыі можа валодаць файлам, які вы чытаеце.

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

Пацвердзіце дзейную тапалогію. Пры тапалогіі падсеткі кожны кліент бярэ адзін адрас з пула; старэйшыя схемы net30 выдзяляюць невялікі блок на кожнага кліента, і арыфметыка цалкам іншая. Калі сервер дагэтуль на net30, гэтая старонка — няправільнае кіраўніцтва па міграцыі, і нумары пула не будуць азначаць тое, што вы чакаеце. Праверце гэты радок, перш чым капіяваць арыфметыку адрасоў аднекуль іншага.

Запішыце ўласны адрас сервера, кожнае фіксаванае прызначэнне ў каталогу канфігурацыі кліентаў і любы адрас, ад якога залежыць маршрут або правіла доступу. Менавіта гэтыя адрасы павінны заставацца па-за дынамічным дыяпазонам. Іх папярэдні запіс робіць дыяпазон рашэннем, а не здагадкай. Ён таксама дае адкату нешта канкрэтнае для аднаўлення.

Дадайце nopool і аб’явіце дыяпазон

Дапаможнае ключавое слова прымае nopool, якое захоўвае канфігурацыю падсеткі і адключае аўтаматычны дынамічны пул, як апісвае кіраўніцтва OpenVPN 2.6. Затым явны радок ifconfig-pool дае ўключны дыяпазон, які вы маеце на ўвазе, а яго маска сеткі адпавядае падсетцы. Абодва радкі належаць аднаму блоку сервера, бо пул без сваёй падсеткі не мае сэнсу. Парадак паміж імі важны толькі для чытальнасці, бо памочнік разгортвае пару пры запуску сэрвісу.

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

Абедзве мяжы ўключныя, таму прыклад прапаноўвае семдзесят з лішнім адзін адрас. Трымайце адрас сервера і кожнае фіксаванае прызначэнне па-за гэтым прамежкам; фіксаванае прызначэнне, якое трапляе ў дынамічны дыяпазон, стварае калізію, што залежыць ад парадку падключэння, а гэта найгоршы від для адладкі. Трымайце запас паміж зарэзерваваным наборам і дыяпазонам, калі фіксаваныя прызначэнні, верагодна, будуць расці.

Памер дыяпазону і адначасовасць — гэта асобныя абмежаванні. Сто адрасоў не азначаюць сто адначасовых кліентаў, калі max-clients кажа іншае, а пул, большы за мяжу адначасовасці, — гэта норма, а не марнатраўства. Важна тое, што абодва абмежаванні абраныя ўсвядомлена, а не ўспадкаваныя ад значэння па змаўчанні.

Трымайце фіксаваныя прызначэнні па-за дынамічным дыяпазонам

Кліенцкі ifconfig-push — гэта іншы механізм, чым размеркаванне з пула, і ён павінен выкарыстоўваць параметры, адпаведныя актыўнай тапалогіі. У рэжыме падсеткі гэта адзін адрас і маска сеткі; пераносіць пару net30 толькі таму, што яна трапілася ў старым прыкладзе, — распаўсюджаная памылка.

Гісторыя размеркавання — гэта падказка, а не ўлада. Файл persist памятае, які кліент меў які адрас, таму кліенты, што перападключаюцца, схільныя атрымліваць той жа, і ён не рэзервуе адрасы, не вызваляе іх і не замяняе фіксаванае прызначэнне. Калі пэўная прылада павінна заўсёды мець пэўны адрас, выкарыстайце фіксаванае прызначэнне, а не спадзявайцеся на файл persist.

Затым праверце шляхі, якія залежаць ад адрасоў. Маршрут, што праштурхоўваецца кліентам, правіла міжсеткавага экрана, якое дапускае падсетку, або праверка маніторынгу, што чакае пэўны хост, — усе яны могуць меркаваць стары дыяпазон. Змяненне пула без іх чытання пераносіць збой у месца, якое выглядае незвязаным.

Ужывіце праз жыццёвы цыкл, затым праверце

Ужывіце змяненне так, як сэрвіс звычайна атрымлівае канфігурацыю: альбо непасрэдны файл плюс перазапуск, альбо кіраўнічы пласт, які перагенеруе файл. Ручная праўка згенераванага файла жыве да наступнай генерацыі і не даўжэй. Запішыце, які механізм валодае файлам, бо наступнаму аператару трэба будзе ведаць, дзе зрабіць тое ж змяненне. Затым перазапусціце адзін раз і прачытайце журнал, перш чым запрашаць кліента.

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

Падключыце кліента, які раней не падключаўся, і пацвердзіце, што адрас трапляе ў аб’яўлены дыяпазон і па-за зарэзерваваны набор. Затым пацвердзіце зваротны шлях: кліент павінен дасягаць таго, што дазваляе палітыка, і не больш. Адрас, які адпавядае плану, але не мае працоўнага маршруту, — не паспяховае змяненне.

Перападключыце кліента, які меў адрас са старога дыяпазону. Ён павінен атрымаць адрас з новага дыяпазону, а любы стан на ўзроўні сеанса, звязаны са старым адрасам, павінен знікнуць. Калі ён захоўвае стары адрас, значыць, яго прызначае нешта іншае, і пул — не той уласнік, пра які вы думаеце.

Адкат змянення дыяпазону

Захавайце папярэднія тры радкі ў запісе змяненняў, а не толькі папярэдні файл. Іх аднаўленне і перазапуск вяртаюць размеркаванне да старога паводзінаў, і кліенты, што падключаюцца пасля, атрымаюць адрасы з яго.

Дзве засцярогі належаць у запіс. Кліенты, ужо падключаныя на момант адкату, захоўваюць бягучыя адрасы, пакуль не перападключацца, таму адкат не імгненны для ўсяго парку. І калі стары дыяпазон перакрываўся з фіксаваным прызначэннем, аднаўленне вяртае і калізію; менавіта гэтае перакрыццё было прычынай змянення, і яно патрабуе іншага выпраўлення, чым адкат.

Змяненне пула завершана, калі новы кліент атрымлівае адрас у межах дыяпазону, зарэзерваваны адрас ніколі не выдаецца, а маршруты і правілы, што выкарыстоўваюць гэтыя адрасы, паводзяць сябе як задумана. Усё меншае пакідае наступнаму чалавеку выявіць, якое з трох не выконваецца.

Падобныя артыкулы