Neko vam da prvu i posljednju adresu i traži VPN rutu. Primamljiv potez je odabrati najkraći prefiks koji sadrži oba kraja, a taj potez tiho dodaje odredišta koja niko nije tražio. CIDR blok uvijek ima veličinu stepena dvojke i početnu adresu poravnatu s njom, pa proizvoljni interval obično zahtijeva više od jednog. Prođite kroz interval, podijelite ga tačno, pa provjerite adrese neposredno izvan njega.

Počnite od intervala, ne od prefiksa

Zapišite prvu adresu i posljednju adresu prije nego što napišete bilo šta drugo. Par je zahtjev; prefiks je samo jedan mogući izraz tog zahtjeva, a ponekad pogrešan. Dva broja je također mnogo lakše provjeriti nego masku.

Poravnati interval se sažima u jedan blok. Neporavnati se razlaže na nekoliko, a razlaganje je tačno, a ne približno. Ono što ne smijete raditi jeste zaokruživati prema van i nazvati to dovoljno bliskim, jer dodatne adrese dobijaju politiku koju ruta nosi.

Oba smjera greške su važna. Za rutu u tunel dodatne adrese se uvlače u VPN. Za izuzetak zaobilaženja dodatne adrese ga preskaču. Nijedan ishod nije vidljiv u tabeli ruta koja prikazuje samo prefiks koji ste instalirali.

Prvi slučaj: interval se slučajno poravnava

Uzmite 198.51.100.64 do 198.51.100.127. Prva adresa je poravnata na granicu od 64 adrese i interval je tačno 64 adrese, pa ga jedan /26 opisuje bez ikakvog viška.

To je lak slučaj i vrijedi ga prepoznati, jer znači da je zahtjev vjerovatno napisao neko ko je već razmišljao prefiksima. Znači i da je provjera kratka: potvrdite da je veličina stepen dvojke i da je početak umnožak te veličine.

Dokumentacijski rasponi daju dobre primjere upravo zato što ih niko ne posjeduje. Ne instalirajte ove adrese na stvarni tunel i ne pretpostavljajte da je raspon koji ste dobili dokumentacijski prostor samo zato što izgleda neobično.

Drugi slučaj: nije poravnat, pa ga razdijelite

Sada uzmite 198.51.100.100 do 198.51.100.107. To je osam adresa, što jeste stepen dvojke, ali 100 nije umnožak osam. Jedan blok te veličine ne može početi tamo, pa interval mora pokriti više od jednog.

Tačan pokrov su dva /30 bloka: 198.51.100.100/30 pokriva 100 do 103, a 198.51.100.104/30 pokriva 104 do 107. Osam adresa ukupno, ništa izvan intervala, a razlaganje je jedinstveno za dati interval.

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 biblioteke obavlja aritmetiku umjesto vas, a dokumentacija ipaddress definira šta vraća. Ono što ne radi jeste da odabere gateway, odluči kome pripadaju adrese ili dodijeli pristup bilo kojoj usluzi iza njih.

Izmjerite šta bi širi prefiks zahvatio

Prije nego prihvatite prečicu, izračunajte koliko košta. /28 koji počinje na 198.51.100.96 pokriva 96 do 111, što je šesnaest adresa umjesto osam. Dodatnih osam su 96 do 99 i 108 do 111, i svaka od njih bi naslijedila rutu.

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))"

Osam dodatnih odredišta je konkretan broj koji možete staviti u zahtjev za promjenu. To je i broj koji odlučuje da li je prečica prihvatljiva, a to je pitanje politike, a ne aritmetike.

Držite aritmetiku i otkrivanje odvojeno. Interval koji dostavi mrežni operater pretvara se tačno. Jedan DNS odgovor promjenjive usluge ne uspostavlja potpuni ili trajni raspon te usluge, a nepovezana imena mogu dijeliti adresu.

Instalirajte tačan skup i provjerite rubove

Predajte svaki dobijeni prefiks onome ko posjeduje VPN konfiguraciju i neka ga instalira kroz podržani mehanizam. Ako zahtjev traži dva unosa, zadržite dva unosa umjesto da proširite jedan da bi obrazac bio krać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

Posljednje dvije komande su one koje ljudi preskaču. Prva adresa unutar intervala treba slijediti novu rutu, a adresa neposredno izvan intervala ne treba. Ako obje idu istim putem, interval je negdje između zahtjeva i konfiguracije proširen.

Zabilježite prvu adresu, posljednju adresu i prefikse koji ih izražavaju. Sljedeća osoba koja pregleda pravilo može zatim provjeriti zahtjev prema konfiguraciji bez ponovne aritmetike, a razlika između tačne i zgodne rute ostaje vidljiva.

Povezani članci