Millise aadressi bassein järgmisel taasühendusel annab?
Basseini aadressid järgivad järjekorda, mis ei ole juhuslik: kõigepealt meelespeetud aadress, seejärel kaua kasutamata olnud vaba aadress. Loe see läbi enne reegli kinnitamist.
Reegel, mis eile sobis, ei sobi täna, sest klient tuli tagasi teise tunneliaadressiga. Jaotaja ei ole siiski juhuslik, ja selle järjekorra tundmine muudab üllatuse ettearvatavaks sündmuseks. Ta eelistab aadressi, mis samal kliendil varem oli, laskub tagasi kaua kasutamata olnud vabale aadressile ja unustab kõik, kui sa ei anna talle kohta, kus meeles pidada. Reeglid, mis eeldavad rendilepingut, sobivad edasi kuni päevani, mil need vaikselt enam ei sobi.
Järjekord, mida jaotaja järgib
Ühe sessiooniga common name'i kohta otsib jaotaja esmalt aadressi, mida sama klient varem kasutas ja mis on praegu vaba. Kui see aadress on kadunud, võtab ta vaba aadressi, mis oli kõige kauem tegevusetu. Kui sama nime jaoks on lubatud samaaegsed sessioonid, siis eelmise aadressi eelistus ei kehti ja selle asemel kasutatakse esimest vaba aadressi, sest sessioone käsitletakse eraldi võrdsete sõlmedena.
| Situation | Address chosen | Practical effect |
|---|---|---|
| Reconnect, old address still free | The remembered address | Rules appear stable for days |
| Old address taken by another client | Least recently used free address | A working rule silently stops matching |
| Concurrent sessions, same name | First free address, per session | One identity can hold several leases |
Sellest järeldub kohe kaks tagajärge. Kiiresti taasühenduv klient hoiab tavaliselt oma aadressi, mistõttu ei märka keegi mehhanismi enne, kui see muutub. Ja teine seade, mis ühendub selles väikeses aknas, võib aadressi võtta, kui see on lühidalt vaba, mille järel esimene klient saab midagi muud ja iga vana numbri külge seotud reegel on vale. Kumbki sündmus ei tekita logirida, mis näeb välja nagu rike.
Miks rendileping tundub stabiilne ja siis liigub
Stabiilsus on siin tekkiv omadus taasühendustest, mis saabuvad enne, kui keegi teine aadressi nõuab. See ei ole lubadus ja seda ei jõustata, kui klient on lahti ühendatud. Planeeri, et aadress muutub, mitte ära lase end sellest üllatada. Bassein, mis on vaevu seadmete arvust suurem, muudab kokkupõrked tavapäraseks, sest tagasilangus kaua kasutamata aadressile ei ole peaaegu millestki valida.
Tipukoormuse samaaegsus on arv, mille järgi mõõtmeid valida, mitte kasutajate arv. Keegi, kes testib korraga kahest seadmest, või klient, kes ühendub uuesti enne vana sessiooni lõppemist, hõivab mõneks ajaks kaks rendilepingut. Ainult inimeste arvu järgi mõõdetud bassein tekitab täpselt selle vahetuse, mille inimesed serveri süüks panevad.
Püsivusfail mäletab, see ei broneeri
Aadress, mis elab üle teenuse taaskäivituse, vajab püsivusfaili. See salvestab väljalülitamisel kliendi nime ja aadressi ning loeb need teenuse käivitamisel tagasi, mistõttu plaaniline taaskäivitus ei segamini enam kõiki reegleid, mille sa kirjutasid.
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 10.8.0.0 255.255.255.0
Mida see ei tee, on aadressi hoidmine, kui klient on ära. Selles vahemikus võib jaotaja numbri kellelegi teisele anda, ja fail registreerib siis aegunud eelistuse, mida järgmine ühendus täita ei saa. Käsitle seda vihjena, mis parandab taaskäivituse käitumist, mitte staatilise adresseerimisena.
Kontrolli basseini iga marsruuditud alamvõrgu vastu, kui oled failis. Kattuv vahemik jagab aadresse, kuhu server ei saa marsruutida, ja sümptom on klient, kes ühendub, saab aadressi ja ei jõua kuhugi.
Aadressi korrektne kinnitamine
Kui tulemüürireegel või DNS-kirje vajab tõesti püsivat aadressi, määra see, mitte ära looda sellele. Kliendipõhine konfiguratsioonikirje saab aadressi ja maski otse saata, ja see kirje on võtmetatud tegeliku kliendinimega.
# client-config-dir entry for "laptop-acme"
ifconfig-push 10.8.0.50 255.255.255.0
Hoia püsivad aadressid väljaspool dünaamilist basseini, et jaotaja ei annaks kunagi sama numbrit teisele sessioonile. Seejärel kontrolli tunneli topoloogiat, sest see muudab, kui palju basseini aadresse iga klient tarbib: vanem punkt-punkti paigutus kulutab kliendi kohta väikese ploki, samas kui alamvõrgu paigutus kasutab igaüks ühe aadressi. Bassein, mis ühe topoloogia korral tundub helde, võib teise korral olla ammendav.
Kinnita tulemus kliendil, mitte ära usalda serveri raamatupidamist. Kui sessioon on tagasi, vaata liidese aadressi ja saadetud marsruuti, sest serveri logi võib teatada taotletud aadressi, samal ajal kui liidesel endal on teine.
Kaugaadress on eraldi küsimus
Kliendi kaugreal olev aadress peab olema kättesaadav enne, kui ükskõik milline tunnel eksisteerib. Kui panna sinna basseini aadress, näiteks serveri enda tunneli lõpp-punkt, üritab klient jõuda lõpp-punkti tunnelini, mida ta pole veel ehitanud, ja tulemuseks on silmus või vaikne aegumine, mitte otsetee.
Kasuta operaatori antud avalikku lõpp-punkti ja hoia basseini selle jaoks, milleks see mõeldud on: aadressid tunneli sees. Basseini vahemiku, püsivate määramiste ja püsivustee ühte kohta kirjutamine säästab järgmisel inimesel iga rendilepingu meelevaldsena käsitlemist.