Serverhjelparar konfigurerer eit undernett og fyller det deretter med ein dynamisk pool etter eige val. Den standarden er praktisk heilt til nokre adresser må haldast utanfor tildelinga — anten dei er reserverte for faste tildelingar eller haldne av til eit framtidig segment. Å undertrykkje den automatiske poolen og erklære området sjølv krev to linjer og éi medviten avgjerd om kva adresser som ikkje er til tildeling. Resten er operativ disiplin: inventar, bruk, stadfest, rull tilbake.

Dette er ei endring i ein teneste som køyrer, så handsam ho som ei operativ oppgåve: inventar først, bruk gjennom den normale livssyklusen, stadfest med ein ny klient og hald ei tilbakerulling klar.

Start med undernettet du allereie har

Les gjeldande serverkonfigurasjon og adressene klientane faktisk held. Poolendringa gir berre meining mot den basislinja, og basislinja er ikkje alltid det fila antydar, fordi eit administrert produkt eller ein konfigurasjonsgenerator kan eige fila du les.

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

Stadfest topologien som gjeld. Under undernettstopologi tek kvar klient éi adresse frå poolen; eldre net30-oppsett tildeler ein liten blokk per klient, og aritmetikken er heilt annleis. Viss serveren framleis er på net30, er denne sida feil migreringsrettleiing, og poola tala vil ikkje bety det du forventar. Kontroller den linja før du kopierer adressearitmetikk frå andre stader.

Skriv ned serveren si eiga adresse, kvar fast tildeling i mappa for klientkonfigurasjonar og kvar adresse som ein rute eller ei tilgangsregel er avhengig av. Det er desse adressene som må halde seg utanfor det dynamiske området. Å skrive dei ned først er det som gjer området til ei avgjerd i staden for ei gjetting. Det gir òg ei tilbakerulling noko konkret å gjenopprette.

Legg til nopool og erklær området

Hjelpenøkkelordet godtek nopool, som behald undernettkonfigurasjonen og undertrykkjer den automatiske dynamiske poolen, slik OpenVPN 2.6-handboka skildrar. Den eksplisitte ifconfig-pool-linja gir deretter det inklusive området du ønskjer, og nettverksmaska samsvarar med undernettet. Begge linjene høyrer til i same serverblokk, fordi ein pool utan undernettet sitt ikkje har noko meining. Rekkjefølgja mellom dei betyr berre noko for lesbarheita, sidan hjelparen utvidar paret når tenesta startar.

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

Begge grensene er inklusive, så dømet tilbyr syttien adresser. Hald serveradressa og kvar fast tildeling utanfor det spennet; ei fast tildeling som ligg inne i det dynamiske området gir ein kollisjon som avheng av tilkoplingsrekkjefølgja, og det er den verste typen å feilsøkje. Ha ein margin mellom det reserverte settet og området viss dei faste tildelingane truleg vil vekse.

Storleiken på området og samtidigheit er skilde grenser. Hundre adresser betyr ikkje hundre samtidige klientar viss max-clients seier noko anna, og ein pool som er større enn samtidigheitsgrensa er normalt og ikkje sløsing. Det viktige er at dei to grensene blir valde medvite i staden for å bli arva frå ein standard.

Hald faste tildelingar utanfor det dynamiske området

Ein klienttilpassa ifconfig-push er ein annan mekanisme enn tildeling frå poolen, og han må bruke parametrar som passar til den aktive topologien. I undernettsmodus er det éi adresse og nettverksmaske; å føre over eit net30-par fordi det dukka opp i eit gammalt døme er ein vanleg feil.

Tildelingshistorikk er eit hint, ikkje ein autoritet. Ei persist-fil hugsar kva klient som hadde kva adresse, slik at klientar som koplar til på nytt har ein tendens til å få den same, og ho reserverer ikkje adresser, frigjer dei ikkje eller erstattar ei fast tildeling. Viss ein bestemd eining alltid skal ha ei bestemd adresse, bruk ei fast tildeling i staden for å stole på persist-fila.

Kontroller deretter banane som er avhengige av adresser. Ein rute som blir dytta ut til klientane, ein brannmurregel som slepp inn eit undernett, eller ein overvakingssjekk som forventar ein bestemd vert kan alle føresetje det gamle området. Å endre poolen utan å lese dei flyttar feilen til ein stad som ser urelatert ut.

Bruk gjennom livssyklusen, og stadfest deretter

Bruk endringa slik tenesta vanlegvis mottek konfigurasjon — anten ei direkte fil pluss omstart eller eit administrasjonslag som genererer fila på nytt. Ei manuell endring i ei generert fil overlever til neste generering, og ikkje lenger. Noter kva mekanisme som eig fila, fordi neste operatør må vite kvar den same endringa skal gjerast. Start deretter éin gong på nytt og les loggen før du inviterer ein klient.

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

Kople til ein klient som ikkje har vore tilkopla før, og stadfest at adressa ligg innanfor det erklærte området og utanfor det reserverte settet. Stadfest deretter returvegen: klienten skal nå det retningslinja tillèt og ikkje meir. Ei adresse som passar planen, men som ikkje har ein fungerande rute, er ikkje ei vellukka endring.

Kople til ein klient som hadde ei adresse frå det gamle området, på nytt. Han skal få ei adresse frå det nye området, og all sesjonsnivåtilstand knytt til den gamle adressa skal vere borte. Viss han held på den gamle adressa, er det noko anna som tildeler henne, og poolen er ikkje den eigaren du trur.

Tilbakerulling av ei områdeendring

Behald dei tre førre linjene i endringsloggen din, ikkje berre den førre fila. Å gjenopprette dei og starte på nytt fører tildelinga tilbake til den gamle åtferda, og klientar som koplar til etterpå, vil få adresser derifrå.

To åtvaringar høyrer med i loggen. Klientar som allereie er tilkopla når du rullar tilbake, behald dei noverande adressene sine til dei koplar til på nytt, så ei tilbakerulling er ikkje umiddelbar i heile flåten. Og viss det gamle området overlappa ei fast tildeling, gjenopprettar ei gjenoppretting òg kollisjonen; nettopp den overlappinga var grunnen til endringa, og ho krev ei anna løysing enn ei tilbakerulling.

Ei poolendring er ferdig når ein ny klient får ei adresse innanfor området, ei reservert adresse aldri blir delt ut, og rutane og reglane som brukar desse adressene framleis oppfører seg som tiltenkt. Alt mindre overlèt til neste person å finne ut kva av dei tre som ikkje stemmer.

Relaterte artiklar