Pretvorite obseg IP od prvega do zadnjega naslova v natančne poti VPN
Obseg od prvega do zadnjega naslova se redko ujame v eno predpono. Pretvorite ga v natančne bloke CIDR, da pot ne zajame ciljev zunaj intervala.
Nekdo vam da prvi in zadnji naslov ter zahteva pot VPN. Zapeljiva poteza je izbrati najkrajšo predpono, ki vsebuje oba konca, in ta poteza tiho doda cilje, po katerih ni nihče vprašal. Blok CIDR ima vedno velikost potence dveh in začetni naslov poravnan z njo, zato poljuben interval običajno potrebuje več kot enega. Prehodite interval, ga natančno razdelite in nato preverite naslove tik zunaj njega.
Začnite z intervalom, ne s predpono
Zapišite prvi naslov in zadnji naslov, preden napišete karkoli drugega. Par je zahteva; predpona je le ena možna izrazitev te zahteve, včasih pa napačna. Dve števili je tudi veliko lažje preveriti kot masko.
Poravnan interval se zloži v en blok. Neporavnan se razdeli na več, razčlenitev pa je natančna in ne približna. Česar ne smete storiti, je zaokroževanje navzven in reči, da je dovolj blizu, ker dodatni naslovi prejmejo politiko, ki jo nosi pot.
Obe smeri napake sta pomembni. Pri poti v tunel se dodatni naslovi potegnejo v VPN. Pri izjemi za obhod jih dodatni naslovi preskočijo. Nobenega izida ni videti v tabeli poti, ki prikazuje samo nameščeno predpono.
Prvi primer: interval je slučajno poravnan
Vzemite 198.51.100.64 do 198.51.100.127. Prvi naslov je poravnan na mejo 64 naslovov in interval je natanko 64 naslovov, zato ga ena sama /26 opiše brez ostanka.
To je lahek primer in vredno ga je prepoznati, ker pomeni, da je zahtevo verjetno napisal nekdo, ki je že razmišljal v predponah. Pomeni tudi, da je preverjanje kratko: potrdite, da je velikost potenca dveh in da je začetek večkratnik te velikosti.
Dokumentacijski obsegi so dobri primeri prav zato, ker jih nihče ne poseduje. Teh naslovov ne nameščajte na pravi tunel in ne domnevajte, da je prejeti obseg dokumentacijski prostor samo zato, ker je videti nenavaden.
Drugi primer: ni, zato ga razdelite
Zdaj vzemite 198.51.100.100 do 198.51.100.107. To je osem naslovov, kar je potenca dveh, vendar 100 ni večkratnik osmih. En blok te velikosti se tam ne more začeti, zato mora interval pokriti več kot en.
Natančno pokritje sta dva bloka /30: 198.51.100.100/30 pokriva 100 do 103, 198.51.100.104/30 pa 104 do 107. Osem naslovov skupaj, nič zunaj intervala, razčlenitev pa je za dani interval edinstvena.
python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"
Funkcija standardne knjižnice opravi aritmetiko namesto vas, dokumentacija ipaddress pa določa, kaj vrne. Česar ne naredi, je izbira prehoda, odločitev, komu pripadajo naslovi, ali podelitev dostopa do katere koli storitve za njimi.
Izmerite, kaj bi zajela širša predpona
Preden sprejmete bližnjico, izračunajte, koliko stane. /28, ki se začne na 198.51.100.96, pokriva 96 do 111, to je šestnajst naslovov namesto osmih. Dodatnih osem je 96 do 99 in 108 do 111, vsak od njih pa bi podedoval pot.
python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"
Osem dodatnih ciljev je konkretno število, ki ga lahko vnesete v zahtevo za spremembo. To je tudi število, ki odloči, ali je bližnjica sprejemljiva, in to je vprašanje politike, ne aritmetike.
Aritmetiko in odkrivanje imejte ločeno. Interval, ki ga zagotovi omrežni operater, se pretvori natančno. En odgovor DNS storitve, ki se spreminja, ne določa celotnega ali trajnega obsega te storitve, nepovezana imena pa si lahko delijo naslov.
Namestite natančno množico in preverite robove
Vsako dobljeno predpono predajte tistemu, ki upravlja konfiguracijo VPN, in pustite, da jo namesti s podprtim mehanizmom. Če zahteva potrebuje dva vnosa, ohranite dva vnosa, namesto da bi enega razširili, da bi bil obrazec krajši.
sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0 sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0 ip route get 198.51.100.101 ip route get 198.51.100.97
Zadnja dva ukaza sta tista, ki ju ljudje preskočijo. Prvi notranji naslov naj bi sledil novi poti, naslov tik zunaj intervala pa ne. Če gresta oba po isti poti, je bil interval nekje med zahtevo in konfiguracijo razširjen.
Zabeležite prvi naslov, zadnji naslov in predpone, ki ju izražajo. Naslednja oseba, ki pregleda pravilo, lahko nato primerja zahtevo s konfiguracijo brez ponovnega računanja, razlika med natančno in priročno potjo pa ostane vidna.