OpenVPN-servilo kun nopool: deklaru eksplicitan pulan intervalon
Konservu la subreton, transprenu la asignadon. Malŝaltu la aŭtomatan pulon, deklaru inkluzivajn limojn kaj kontrolu, kion fakte ricevas nova kliento.
Servilaj helpiloj agordas subreton kaj poste plenigas ĝin per dinamika pulo laŭ propra elekto. Tiu defaŭlto oportunas ĝis iuj adresoj devas resti ekster la asignado — ĉu rezervitaj por fiksaj asignaĵoj, ĉu retenitaj por estonta segmento. Malŝalti la aŭtomatan pulon kaj mem deklari la intervalon postulas du liniojn kaj unu konscian decidon pri tio, kiuj adresoj ne estas por asignado. La resto estas operacia disciplino: inventaro, apliko, kontrolo, restarigo.
Ĉi tio estas ŝanĝo al funkcianta servo, do traktu ĝin kiel operacian taskon: unue inventaro, apliko tra la normala vivociklo, kontrolo per nova kliento kaj preta restarigo.
Komencu de la subreto, kiun vi jam havas
Legu la nunan servilan agordon kaj la adresojn, kiujn klientoj fakte tenas. La pula ŝanĝo havas sencon nur rilate tiun bazlinion, kaj la bazlinio ne ĉiam estas tio, kion la dosiero sugestas, ĉar administrata produkto aŭ agorda generatoro povas posedi la dosieron, kiun vi legas.
grep -nE '^(topology|server|ifconfig-pool|max-clients|client-config-dir)' /etc/openvpn/server/lab.conf
ip -4 addr show tun0Konfirmu la validan topologion. Ĉe subreta topologio ĉiu kliento prenas unu adreson el la pulo; pli malnovaj net30-aranĝoj asignas malgrandan blokon po kliento kaj la aritmetiko tute malsamas. Se la servilo ankoraŭ estas ĉe net30, ĉi tiu paĝo estas la malĝusta migrada gvidilo kaj la pulaj nombroj ne signifos tion, kion vi atendas. Kontrolu tiun linion antaŭ ol kopii adresan aritmetikon de aliloke.
Notu la propran adreson de la servilo, ĉiun fiksan asignaĵon en la dosierujo de klientaj agordoj kaj ĉiun adreson, de kiu dependas vojo aŭ alira regulo. Tiuj estas la adresoj, kiuj devas resti ekster la dinamika intervalo. Noti ilin unue estas tio, kio faras la intervalon decido anstataŭ konjekto. Ĝi ankaŭ donas al restarigo ion konkretan por restarigi.
Aldonu nopool kaj deklaru la intervalon
La helposignovorto akceptas nopool, kiu konservas la subretan agordon kaj malŝaltas la aŭtomatan dinamikan pulon, kiel priskribas la manlibro de OpenVPN 2.6. La eksplicita linio ifconfig-pool tiam liveras la inkluzivan intervalon, kiun vi celas, kaj ĝia retmaskaĵo kongruas kun la subreto. Ambaŭ linioj apartenas al la sama servila bloko, ĉar pulo sen sia subreto havas neniun signifon. La ordo inter ili gravas nur por legeco, ĉar la helpilo disvolvas la paron kiam la servo ekfunkcias.
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.0Ambaŭ limoj estas inkluzivaj, do la ekzemplo ofertas sepdek unu adresojn. Tenu la servilan adreson kaj ĉiun fiksan asignaĵon ekster tiu amplekso; fiksa asignaĵo, kiu falas en la dinamikan intervalon, kreas kolizion dependan de la konekta ordo, kaj tio estas la plej malbona speco por sencimigi. Lasu marĝenon inter la rezervita aro kaj la intervalo, se fiksaj asignaĵoj verŝajne kreskos.
La grando de la intervalo kaj la samtempeco estas apartaj limoj. Cent adresoj ne signifas cent samtempajn klientojn, se max-clients diras alie, kaj pulo pli granda ol la samtempeca limo estas normala, ne malŝpara. Gravas, ke la du limoj estas elektitaj konscie anstataŭ hereditaj de defaŭlto.
Tenu fiksajn asignaĵojn ekster la dinamika intervalo
Klient-specifa ifconfig-push estas alia mekanismo ol pula asignado, kaj ĝi devas uzi parametrojn taŭgajn por la aktiva topologio. En subreta reĝimo tio estas unu adreso kaj retmaskaĵo; transpreni net30-paron ĉar ĝi aperis en malnova ekzemplo estas ofta eraro.
La asignada historio estas signo, ne aŭtoritato. Persist-dosiero memoras, kiu kliento havis kiun adreson, do rekonektantaj klientoj emas ricevi la saman, kaj ĝi ne rezervas adresojn, ne liberigas ilin kaj ne anstataŭas fiksan asignaĵon. Se difinita aparato devas ĉiam teni difinitan adreson, uzu fiksan asignaĵon anstataŭ fidi la persist-dosieron.
Poste kontrolu la vojojn, kiuj dependas de adresoj. Vojo puŝita al klientoj, fajroŝirma regulo, kiu permesas subreton, aŭ monitora kontrolo, kiu atendas difinitan gastigan komputilon, povas ĉiuj supozi la malnovan intervalon. Ŝanĝi la pulon sen legi ilin movas la fiaskon al loko, kiu ŝajnas nerilata.
Apliku tra la vivociklo, poste kontrolu
Apliku la ŝanĝon tiel, kiel la servo kutime ricevas agordon — ĉu rekta dosiero plus restartigo, ĉu administra tavolo, kiu regeneras la dosieron. Mana redakto de generita dosiero postvivas ĝis la sekva generado, kaj ne pli longe. Notu, kiu mekanismo posedas la dosieron, ĉar la sekva operatoro devos scii, kie fari la saman ŝanĝon. Poste restartigu unufoje kaj legu la protokolon antaŭ ol inviti klienton.
systemctl restart openvpn-server@lab
journalctl -u openvpn-server@lab -n 30 --no-pager
# on a fresh client
ip -4 addr show tun0Konektu klienton, kiu antaŭe ne estis konektita, kaj konfirmu, ke la adreso falas en la deklarita intervalo kaj ekster la rezervita aro. Poste konfirmu la revenan vojon: la kliento devus atingi tion, kion la politiko permesas, kaj nenion pli. Adreso, kiu kongruas kun la plano sed havas neniun funkciantan vojon, ne estas sukcesa ŝanĝo.
Rekonektu klienton, kiu tenis adreson el la malnova intervalo. Ĝi devus ricevi adreson el la nova intervalo, kaj ĉiu sesinivela stato ligita al la malnova adreso devus esti malaperinta. Se ĝi konservas la malnovan adreson, io alia asignas ĝin kaj la pulo ne estas la posedanto, kiun vi pensas.
Restarigi intervalidan ŝanĝon
Konservu la antaŭajn tri liniojn en via ŝanĝprotokolo, ne nur la antaŭan dosieron. Restarigi ilin kaj restartigi redonas la asignadon al la malnova konduto, kaj klientoj rekonektantaj poste ricevos adresojn el ĝi.
Du avertoj apartenas al la protokolo. Klientoj jam konektitaj kiam vi restarigas konservas siajn nunajn adresojn ĝis ili rekonektos, do restarigo ne estas tuja tra la tuta floto. Kaj se la malnova intervalo interkovris fiksan asignaĵon, restarigi ĝin restarigas ankaŭ la kolizion; ĝuste tiu interkovro estis la kialo de la ŝanĝo, kaj ĝi bezonas alian riparon ol restarigon.
Pula ŝanĝo estas finita kiam nova kliento ricevas adreson ene de la intervalo, rezervita adreso neniam estas eldonita, kaj la vojoj kaj reguloj, kiuj konsumas tiujn adresojn, daŭre kondutas kiel intencite. Io ajn malpli lasas al la sekva persono malkovri, kiu el la tri ne veras.