Muutke IP-vahemik esimesest viimaseni täpseteks VPN-marsruutideks
Vahemik esimesest viimase aadressini harva mahub ühte prefiksisse. Muutke see täpseteks CIDR-plokkideks, et marsruut ei haaraks sihtmärke väljaspool intervalli.
Keegi annab teile esimese ja viimase aadressi ning palub VPN-marsruudi. Ahvatlev käik on valida lühim prefiks, mis sisaldab mõlemat otsa, ja see käik lisab vaikselt sihtmärgid, mille kohta keegi ei küsinud. CIDR-plokil on alati kahe astme suurus ja sellele joondatud algusaadress, nii et suvaline intervall vajab tavaliselt rohkem kui ühte. Käige intervall läbi, jagage see täpselt ja seejärel kontrollige aadresse vahetult sellest väljaspool.
Alustage intervallist, mitte prefiksist
Kirjutage esimene aadress ja viimane aadress üles enne, kui kirjutate midagi muud. Paar on nõue; prefiks on ainult üks võimalik väljendus selle kohta ja mõnikord vale. Kahte numbrit on palju lihtsam kontrollida kui maski.
Joondatud intervall koondub üheks plokiks. Joondamata intervall laguneb mitmeks ja lagunemine on täpne, mitte ligikaudne. Mida te ei tohi teha, on ümardada väljapoole ja nimetada seda piisavalt lähedaseks, sest lisaaadressid saavad selle poliitika, mida marsruut kannab.
Mõlemad vea suunad on olulised. Tunnelisse suunduva marsruudi puhul tõmmatakse lisaaadressid VPN-i. Möödaviigu erandi puhul jätavad lisaaadressid selle vahele. Kumbki tulemus ei ole nähtav marsruuditabelis, mis näitab ainult teie paigaldatud prefiksit.
Esimene juhtum: intervall on juhuslikult joondatud
Võtke 198.51.100.64 kuni 198.51.100.127. Esimene aadress on joondatud 64 aadressi piirile ja intervall on täpselt 64 aadressi, nii et üks /26 kirjeldab seda ilma ülejäägita.
See on lihtne juhtum ja seda tasub ära tunda, sest see tähendab, et nõude kirjutas tõenäoliselt keegi, kes juba mõtles prefiksitega. See tähendab ka, et kontroll on lühike: kinnitage, et suurus on kahe aste ja algus on selle suuruse kordne.
Dokumentatsioonivahemikud annavad häid näiteid just seetõttu, et keegi neid ei oma. Ärge paigaldage neid aadresse päris tunnelisse ja ärge eeldage, et teile antud vahemik on dokumentatsiooniruum ainult seetõttu, et see tundub ebatavaline.
Teine juhtum: see ei ole, nii et jagage
Võtke nüüd 198.51.100.100 kuni 198.51.100.107. See on kaheksa aadressi, mis on kahe aste, kuid 100 ei ole kaheksa kordne. Üks sellise suurusega plokk ei saa seal alata, nii et intervalli tuleb katta rohkem kui ühega.
Täpne kate on kaks /30-plokki: 198.51.100.100/30 katab 100 kuni 103 ja 198.51.100.104/30 katab 104 kuni 107. Kokku kaheksa aadressi, midagi väljaspool intervalli ei ole, ja lagunemine on antud intervalli jaoks unikaalne.
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')"
Standardteegi funktsioon teeb aritmeetika teie eest ära ja ipaddressi dokumentatsioon määratleb, mida see tagastab. Mida see ei tee, on lüüsi valimine, aadresside omaniku otsustamine või juurdepääsu andmine ükskõik millisele teenusele nende taga.
Mõõtke, mida laiem prefiks oleks haaranud
Enne lühendi vastuvõtmist arvutage, kui palju see maksab. /28, mis algab aadressil 198.51.100.96, katab 96 kuni 111, mis on kuusteist aadressi kaheksa asemel. Lisakaheksa on 96 kuni 99 ja 108 kuni 111 ning igaüks neist pärinuks marsruudi.
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))"
Kaheksa lisasihtmärki on konkreetne arv, mille saate muudatustaotlusse panna. See on ka arv, mis otsustab, kas lühend on vastuvõetav, ja see on poliitika, mitte aritmeetika küsimus.
Hoidke aritmeetika ja avastamine lahus. Võrguoperaatori antud intervall teisendatakse täpselt. Üks DNS-vastus muutuvast teenusest ei tuvasta selle teenuse täielikku ega püsivat vahemikku ning seostamata nimed võivad aadressi jagada.
Paigaldage täpne kogum ja kontrollige servi
Andke iga saadud prefiks sellele, kes VPN-i konfiguratsiooni omab, ja laske tal see toetatud mehhanismi kaudu paigaldada. Kui nõue vajab kahte kirjet, jätke kaks kirjet, selle asemel et ühte laiendada, et vorm oleks lühem.
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
Viimased kaks käsku on need, mille inimesed vahele jätavad. Esimene sisemine aadress peaks järgima uut marsruuti ja vahetult väljaspool intervalli olev aadress ei peaks. Kui mõlemad lähevad sama teed, on intervalli kuskil nõude ja konfiguratsiooni vahel laiendatud.
Registreerige esimene aadress, viimane aadress ja prefiksid, mis neid väljendavad. Järgmine inimene, kes reeglit kontrollib, saab seejärel nõuet konfiguratsiooniga kõrvutada ilma aritmeetikat uuesti tegemata, ja erinevus täpse ning mugava marsruudi vahel jääb nähtavaks.