Pravidla firewallu přijímají první a poslední adresu, například 192.168.0.200 až 192.168.0.255, zatímco trasy ne. Záznam trasy má místo jen pro síť a masku, což znamená, že souvislý rozsah se musí stát jedním nebo více zarovnanými prefixy, než OpenVPN ho nainstaluje. Profil, který spojuje route-nopull s nezarovnaným intervalem, je místem, kde se porucha obvykle skrývá, protože soubor se parsuje a žádná trasa neodpovídá. Nastavte bloky správně a porucha bude vidět jedním příkazem.

Mýtus: rozsah je trasa

Směrovací tabulky ukládají dvojice sítě a masky a vybírají nejdelší shodu, takže interval se začátkem a koncem nemá kde žít. Jeden prefix pokrývající 256 adres pokrývá .0 až .255, polovina této velikosti pokrývá .0 až .127 a jen rozsah zarovnaný na tyto hrany se zmapuje v jednom kroku. Všechno ostatní se musí rozřezat na bloky. Menší trasa stále znamená původní interval.

Rozsah, který není zarovnaný na prefix, není komprimovaná trasa. Je to jiný druh objektu a zacházení s ním jako s trasou je místo, kde začíná tichá porucha.

Zarovnání je aritmetika, ne styl

Velikosti bloků určuje délka prefixu. /29 může začínat jen na adrese dělitelné 8, /28 na dělitelné 16, /27 na dělitelné 32. Posuňte blok z jeho hranice a maska pokryje jinou množinu adres, než jste zamýšleli.

Sčítejte od spodního konce. V každém kroku vezměte největší zarovnaný blok, který nepřekročí konec rozsahu, a pokračujte na první adrese za ním. Bloky se nemohou překrývat, protože každý začíná tam, kde předchozí skončil.

Dva lidé, kteří to dělají ručně, by měli dojít ke stejnému výsledku. Neshoda znamená, že někdo povolil začátek, který nebyl zarovnaný.

Projděte 200 až 255

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

Rozsah začíná na .200, což je násobek 8, takže první blok je /29 od .200 do .207. Po těchto osmi adresách je první volná hodnota .208, která je dělitelná 16, takže /28 zabírá .208 až .223. Zbývá .224 až .255, třicet dva adres začínajících na násobku 32, tedy /27. Tyto tři řádky jsou celý rozklad.

Zapište je jako řádky tras, ne jako prózu. Profil, který drží jen první řádek, pokrývá osm adres a zbytek nechává mimo tunel.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

Poslední blok potřebuje kontrolu hranice. Uvnitř 192.168.0.224/27 je .224 síťová adresa a .255 je broadcastová adresa, takže hostitel, který musí odpovídat na .255, je prefixem pokryt a přesto nedostupný. Přesuňte tohoto hostitele nebo rozsah rozdělte jinak, místo abyste blok směrovali a doufali.

Co route-nopull dělá s obrázkem

Přidávejte route-nopull jen tehdy, když jsou trasy prosazované serverem nežádoucí. Bez direktivy prosazené trasy a tyto řádky koexistují a vyhrává nejkonkrétnější prefix. S ní mizí i prosazené volby DNS a DHCP, takže interní překlad jmen potřebuje vlastní konfiguraci. Tento vedlejší účinek překvapuje lidi, kteří direktivu přidali, aby opravili problém s trasou.

Přidejte ji ze správného důvodu, ne jako automatický reflex. Odebírání prosazených tras je politické rozhodnutí s důsledkem pro DNS. Pokud server může prosazovat stejné tři prefixy, nechte ho, a smažte kopie na straně klienta, aby seznam řídil jeden vlastník.

Kontroly, které zachytí obvyklé chyby

Zkontrolujte, že každá maska je jeden souvislý sled jedniček. Hodnota 255.255.255.248 projde a 255.255.255.200 neprojde, a maska, která není souvislá, je odmítnuta nebo špatně přečtena. Pak potvrďte cestu pro jednu adresu v každém bloku.

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

Každá odpověď by měla pojmenovat tunelové rozhraní. Výsledek, který pojmenuje fyzický adaptér, znamená, že řádek nebyl nikdy nainstalován, což se často stává, když desktopový správce sítě přepíše tabulku poté, co se profil připojí.

Zvolte jednoho vlastníka seznamu. Když server může prosazovat stejné prefixy, prosazujte je a odstraňte úpravy na straně klienta. Jeden vlastník znamená, že překlep má jedno místo, a klient se serverem se nemohou rozejít v tom, které adresy leží uvnitř tunelu.

Související články