Watter adres sal die poel by die volgende herverbinding uitdeel?
Poeladresse volg 'n orde wat nie toevallig is nie: eers die onthou adres, dan die langs ongebruikte vrye een. Lees dit voordat jy 'n reël vaspen.
'n Reël wat gister gepas het, pas vandag nie meer nie, want die kliënt het op 'n ander tonneladres teruggekom. Die toekenner is egter nie toevallig nie, en as jy sy orde ken, verander daardie verrassing in 'n voorspelbare gebeurtenis. Hy verkies die adres wat dieselfde kliënt vantevore gehad het, val terug op die langs ongebruikte vrye een en vergeet alles tensy jy hom êrens laat onthou. Reëls wat 'n lease aanvaar, bly pas tot die dag wanneer hulle dit stilweg nie meer doen nie.
Die orde wat die toekenner volg
Met een sessie per common name soek die toekenner eers 'n adres wat dieselfde kliënt voorheen gebruik het en wat tans vry is. As daardie adres weg is, neem hy die vrye adres wat die langs onaktief was. Met gelyktydige sessies vir dieselfde naam geld die voorkeur vir die vorige adres nie, en die eerste vrye adres word eerder gebruik, want die sessies word as afsonderlike eweknieë hanteer.
| 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 |
Twee gevolge volg dadelik. 'n Kliënt wat vinnig weer verbind, behou gewoonlik sy adres, en daarom merk niemand die meganisme tot dit verander nie. En 'n ander toestel wat gedurende daardie klein venster verbind, kan die adres neem terwyl dit kortliks vry is, waarna die eerste kliënt iets anders kry en elke reël wat op die ou nommer gerig is, verkeerd is. Nie een van die twee gebeure lewer 'n logreël op wat na 'n fout lyk nie.
Waarom 'n lease stabiel lyk en dan skuif
Stabiliteit is hier 'n ontluikende eienskap van herverbindings wat aankom voordat iemand anders die adres opeis. Dit is nie 'n belofte nie, en dit word nie afgedwing terwyl die kliënt ontkoppel is nie. Beplan dat die adres verander eerder as om daardeur verras te word. 'n Poel wat skaars groter as die toesteltal is, maak botsings alledaags, want die terugval op die langs ongebruikte adres het byna niks om uit te kies nie.
Spitsgelyktydigheid is die getal waarteen jy moet beplan, nie die aantal gebruikers nie. Iemand wat van twee toestelle gelyktydig toets, of 'n kliënt wat weer verbind voordat die ou sessie verstryk, beset 'n rukkie twee leases. 'n Poel wat net vir die koptelling bereken is, lewer presies die wisseling wat mense aan die bediener verwyt.
Die persist-lêer onthou, dit reserveer nie
'n Adres wat 'n diensherstart oorleef, het 'n persist-lêer nodig. Dit stoor die kliëntnaam en adres by afsluiting en lees dit terug wanneer die diens begin, en daarom skommel 'n beplande herstart nie meer elke reël wat jy geskryf het nie.
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 10.8.0.0 255.255.255.0
Wat dit nie doen nie, is om die adres te hou terwyl die kliënt weg is. In daardie gaping mag die toekenner die nommer aan iemand anders gee, en die lêer teken dan 'n verouderde voorkeur aan wat die volgende verbinding nie kan nakom nie. Behandel dit as 'n wenk wat herstartgedrag verbeter, nie as statiese adressering nie.
Kontroleer die poel teen elke subnet wat geroteer word terwyl jy in die lêer is. 'n Oorvleuelende reeks deel adresse uit waarheen die bediener nie kan roeteer nie, en die simptoom is 'n kliënt wat verbind, 'n adres kry en niks bereik nie.
Om 'n adres behoorlik vas te pen
Wanneer 'n firewallreël of 'n DNS-inskrywing werklik 'n vaste adres nodig het, wys dit toe eerder as om daarop te hoop. 'n Konfigurasie-inskrywing per kliënt kan 'n adres en masker direk stoot, en daardie inskrywing is op die effektiewe kliëntnaam gesleutel.
# client-config-dir entry for "laptop-acme"
ifconfig-push 10.8.0.50 255.255.255.0
Hou vaste adresse buite die dinamiese poel sodat die toekenner dieselfde nommer nooit aan 'n ander sessie gee nie. Kontroleer dan die tonneltopologie, want dit verander hoeveel poeladresse elke kliënt verbruik: die ouer punt-tot-punt-uitleg verbruik 'n klein blok per kliënt, terwyl 'n subnetuitleg elkeen een adres gebruik. 'n Poel wat onder die een topologie ruim lyk, kan onder die ander uitgeput raak.
Bevestig die resultaat op die kliënt in plaas daarvan om die bediener se boekhouding te vertrou. Sodra die sessie terug is, kyk na die koppelvlakadres en die gestote roete, want 'n log op die bediener kan die adres rapporteer wat aangevra is terwyl die koppelvlak self 'n ander een hou.
Die remote-adres is 'n aparte vraag
Die adres in die kliënt se remote-lyn moet bereikbaar wees voordat enige tonnel bestaan. Om 'n poeladres daar te plaas, soos die bediener se eie tonnel-eindpunt, beteken die kliënt probeer die eindpunt bereik deur 'n tonnel wat hy nog nie gebou het nie, en die resultaat is 'n lus of 'n stil tydsverloop eerder as 'n kortpad.
Gebruik die openbare eindpunt wat die operateur verskaf het, en hou die poel vir waarvoor dit ontwerp is: adresse binne die tonnel. Om die poelreeks, die vaste toekennings en die persist-pad op een plek vas te lê, spaar die volgende persoon daarvan om elke lease as willekeurig te behandel.