Pravilo, ki je včeraj ustrezalo, danes ne ustreza več, ker se je odjemalec vrnil z drugim naslovom predora. Dodeljevalnik pa ni naključen, in kdor pozna njegov vrstni red, to presenečenje spremeni v predvidljiv dogodek. Raje ima naslov, ki ga je isti odjemalec imel prej, seže po prostem naslovu, ki je bil najdlje neuporabljen, in vse pozabi, če mu ne daš mesta za pomnjenje. Pravila, ki predpostavljajo najem, ustrezajo še naprej do dneva, ko tega tiho ne počnejo več.

Vrstni red, ki se ga drži dodeljevalnik

Z eno sejo na common name dodeljevalnik najprej išče naslov, ki ga je isti odjemalec uporabil prej in je zdaj prost. Če tega naslova ni več, vzame prosti naslov, ki je bil najdlje nedejaven. Ko so za isto ime omogočene sočasne seje, prednost prejšnjega naslova ne velja in namesto tega se uporabi prvi prosti naslov, ker se seje obravnavajo kot ločeni enakovredni vozli.

SituationAddress chosenPractical effect
Reconnect, old address still freeThe remembered addressRules appear stable for days
Old address taken by another clientLeast recently used free addressA working rule silently stops matching
Concurrent sessions, same nameFirst free address, per sessionOne identity can hold several leases

Iz tega takoj sledita dve posledici. Odjemalec, ki se hitro znova poveže, običajno obdrži svoj naslov, zato nihče ne opazi mehanizma, dokler se ne spremeni. In druga naprava, ki se poveže v tistem majhnem oknu, lahko vzame naslov, medtem ko je kratko prost, nato pa prvi odjemalec dobi nekaj drugega in vsako pravilo, vezano na staro številko, je napačno. Noben od obeh dogodkov ne ustvari vrstice v dnevniku, ki bi bila videti kot okvara.

Zakaj je najem videti stabilen in se nato premakne

Stabilnost je tu vznikla lastnost ponovnih povezav, ki pridejo, preden naslov zahteva kdo drug. Ni obljuba in se ne uveljavlja, dokler je odjemalec odklopljen. Načrtuj, da se bo naslov spremenil, namesto da bi bil presenečen. Pool, komaj večji od števila naprav, naredi trke vsakdanje, ker nadomestna možnost z najdlje neuporabljenim naslovom skoraj nima izbire.

Največja sočasnost je številka, po kateri je treba dimenzionirati, ne število uporabnikov. Kdor preizkuša z dveh naprav hkrati, ali odjemalec, ki se znova poveže, preden poteče stara seja, za nekaj časa zasede dva najema. Pool, dimenzioniran samo po številu oseb, bo ustvaril natanko tisto menjavo, ki jo ljudje pripišejo strežniku.

Vztrajnostna datoteka si zapomni, ne rezervira

Naslov, ki preživi ponovni zagon storitve, potrebuje vztrajnostno datoteko. Ta ob izklopu shrani ime odjemalca in naslov ter ju ob zagonu storitve prebere nazaj, zato načrtovani ponovni zagon ne premeša več vseh pravil, ki si jih napisal.

ifconfig-pool-persist /etc/openvpn/ipp.txt
server 10.8.0.0 255.255.255.0

Česar ne počne, je zadrževanje naslova, medtem ko je odjemalec odsoten. V tej vrzeli lahko dodeljevalnik številko izroči nekomu drugemu, datoteka pa nato zabeleži zastarelo prednost, ki je naslednja povezava ne more izpolniti. Obravnavaj jo kot namig, ki izboljša vedenje ob ponovnem zagonu, ne kot statično naslavljanje.

Preveri pool proti vsakemu usmerjenemu podomrežju, medtem ko si v datoteki. Prekrivajoče območje dodeljuje naslove, do katerih strežnik ne more usmerjati, simptom pa je odjemalec, ki se poveže, dobi naslov in ničesar ne doseže.

Pravilno pritrditi naslov

Ko pravilo požarnega zidu ali zapis DNS resnično potrebuje stalni naslov, ga dodeli, namesto da bi upal. Vnos konfiguracije za posameznega odjemalca lahko neposredno potisne naslov in masko, ta vnos pa je ključen po dejanskem imenu odjemalca.

# client-config-dir entry for "laptop-acme"
ifconfig-push 10.8.0.50 255.255.255.0

Stalne naslove imej zunaj dinamičnega poola, da dodeljevalnik nikoli ne izroči iste številke drugi seji. Nato preveri topologijo predora, ker spreminja, koliko naslovov poola porabi vsak odjemalec: starejša postavitev od točke do točke porabi majhen blok na odjemalca, medtem ko postavitev s podomrežjem uporabi po en naslov. Pool, ki je videti izdaten v eni topologiji, je lahko izčrpavajoč v drugi.

Potrdi rezultat na odjemalcu, namesto da bi zaupal knjigovodstvu strežnika. Ko se seja vrne, poglej naslov vmesnika in potisnjeno pot, ker dnevnik na strežniku lahko poroča zahtevani naslov, medtem ko ima vmesnik sam drugega.

Oddaljeni naslov je ločeno vprašanje

Naslov v oddaljeni vrstici odjemalca mora biti dosegljiv, preden obstaja kakršen koli predor. Če tja vpišeš naslov poola, na primer lastno končno točko predora strežnika, odjemalec poskuša doseči končno točko skozi predor, ki ga še ni zgradil, rezultat pa je zanka ali tiha omejitev časa namesto bližnjice.

Uporabi javno končno točko, ki jo je priskrbel operater, in pool ohrani za to, za kar je bil zasnovan: naslove znotraj predora. Če zapišeš območje poola, stalne dodelitve in pot vztrajnosti na enem mestu, prihraniš naslednji osebi, da bi vsak najem obravnavala kot samovoljnega.

Sorodni članki