Kāds jums dod pirmo un pēdējo adresi un lūdz VPN maršrutu. Vilinošais solis ir izvēlēties īsāko prefiksu, kas satur abus galus, un šis solis klusi pievieno galamērķus, kurus neviens nav lūdzis. CIDR blokam vienmēr ir divnieka pakāpes lielums un tam izlīdzināta sākuma adrese, tāpēc patvaļīgam intervālam parasti vajag vairāk nekā vienu. Izstaigājiet intervālu, sadaliet to precīzi un pēc tam pārbaudiet adreses tieši aiz tā.

Sāciet ar intervālu, nevis ar prefiksu

Pierakstiet pirmo adresi un pēdējo adresi, pirms rakstāt ko citu. Pāris ir prasība; prefikss ir tikai viens iespējams tās izteikums, un dažreiz nepareizs. Divus skaitļus arī ir daudz vieglāk pārbaudīt nekā masku.

Izlīdzināts intervāls saplok vienā blokā. Neizlīdzināts sadalās vairākos, un sadalījums ir precīzs, nevis aptuvens. Tas, ko nedrīkstat darīt, ir noapaļot uz āru un nosaukt to par pietiekami tuvu, jo papildu adreses saņem to politiku, ko maršruts nes.

Abi kļūdas virzieni ir svarīgi. Maršrutam uz tuneli papildu adreses tiek ievilktas VPN. Apiešanas izņēmumam papildu adreses to izlaiž. Neviens rezultāts nav redzams maršrutu tabulā, kas parāda tikai jūsu instalēto prefiksu.

Pirmais gadījums: intervāls nejauši ir izlīdzināts

Ņemiet 198.51.100.64 līdz 198.51.100.127. Pirmā adrese ir izlīdzināta uz 64 adrešu robežas, un intervāls ir tieši 64 adreses, tāpēc viens /26 to apraksta bez jebkāda atlikuma.

Šis ir vieglais gadījums, un to ir vērts atpazīt, jo tas nozīmē, ka prasību, iespējams, rakstījis cilvēks, kurš jau domāja prefiksos. Tas arī nozīmē, ka pārbaude ir īsa: pārliecinieties, ka lielums ir divnieka pakāpe un sākums ir šī lieluma daudzkārtnis.

Dokumentācijas diapazoni ir labi piemēri tieši tāpēc, ka nevienam tie nepieder. Neinstalējiet šīs adreses reālā tunelī un nepieņemiet, ka saņemtais diapazons ir dokumentācijas telpa tikai tāpēc, ka tas izskatās neparasti.

Otrais gadījums: tas nav, tāpēc sadaliet

Tagad ņemiet 198.51.100.100 līdz 198.51.100.107. Tās ir astoņas adreses, kas ir divnieka pakāpe, bet 100 nav astoņu daudzkārtnis. Viens šāda lieluma bloks nevar sākties tur, tāpēc intervāls ir jāpārklāj ar vairāk nekā vienu.

Precīzais pārklājums ir divi /30 bloki: 198.51.100.100/30 pārklāj 100 līdz 103, un 198.51.100.104/30 pārklāj 104 līdz 107. Kopā astoņas adreses, nekas ārpus intervāla, un sadalījums ir unikāls konkrētam intervālam.

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

Standartbibliotēkas funkcija veic aritmētiku jūsu vietā, un ipaddress dokumentācija nosaka, ko tā atgriež. Ko tā nedara, ir vārtejas izvēle, lēmums par to, kam pieder adreses, vai piekļuves piešķiršana jebkuram pakalpojumam aiz tām.

Izmēriet, ko plašākais prefikss būtu uzķēris

Pirms pieņemat saīsinājumu, aprēķiniet, cik tas maksā. /28, kas sākas ar 198.51.100.96, pārklāj 96 līdz 111, tas ir sešpadsmit adreses astoņu vietā. Papildu astoņas ir 96 līdz 99 un 108 līdz 111, un katra no tām mantotu marš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))"

Astoņi papildu galamērķi ir konkrēts skaitlis, ko varat ielikt izmaiņu pieprasījumā. Tas ir arī skaitlis, kas izlemj, vai saīsinājums ir pieņemams, un tas ir politikas, nevis aritmētikas jautājums.

Turiet aritmētiku un atklāšanu atsevišķi. Tīkla operatora nodrošināts intervāls tiek pārveidots precīzi. Viena mainīga pakalpojuma DNS atbilde nenodrošina šī pakalpojuma pilnu vai pastāvīgu diapazonu, un nesaistīti nosaukumi var dalīt adresi.

Instalējiet precīzo kopu un pārbaudiet malas

Nododiet katru iegūto prefiksu tam, kam pieder VPN konfigurācija, un ļaujiet viņam to instalēt atbalstītajā mehānismā. Ja prasībai vajag divus ierakstus, paturiet divus ierakstus, nevis paplašiniet vienu, lai veidlapa būtu īsāka.

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

Pēdējās divas komandas ir tās, kuras cilvēki izlaiž. Pirmajai iekšējai adresei vajadzētu iet pa jauno maršrutu, bet adresei tieši ārpus intervāla nevajadzētu. Ja abas iet vienu ceļu, intervāls kaut kur starp prasību un konfigurāciju ir paplašināts.

Pierakstiet pirmo adresi, pēdējo adresi un prefiksus, kas tās izsaka. Nākamais cilvēks, kas pārskatīs noteikumu, varēs salīdzināt prasību ar konfigurāciju, neatkārtojot aritmētiku, un atšķirība starp precīzu un ērtu maršrutu paliks redzama.

Saistītie raksti