Firewallregels accepteren een eerste en een laatste adres, zoals 192.168.0.200 tot 192.168.0.255, terwijl routes dat niet doen. Een routeding heeft alleen ruimte voor een netwerk en een masker, wat betekent dat een aaneengesloten bereik een of meer uitgelijnde prefixen moet worden voordat OpenVPN het installeert. Een profiel dat route-nopull paart met een niet-uitgelijnd interval, is waar de fout zich meestal verstopt, omdat het bestand parseert en geen enkele route past. Zet de blokken goed en de fout wordt zichtbaar in één opdracht.

De mythe: een bereik is een route

Routetabellen bewaren netwerk-maskerparen en kiezen de langste overeenkomst, dus een interval met een begin en een eind heeft nergens om te wonen. Eén prefix over 256 adressen dekt .0 tot .255, de helft van die maat dekt .0 tot .127, en alleen een bereik dat op die randen is uitgelijnd past in één stap. Al het andere moet in blokken worden geknipt. Een kleinere route betekent nog steeds het oorspronkelijke interval.

Een bereik dat niet prefix-uitgelijnd is, is geen gecomprimeerde route. Het is een ander soort object, en het als een route behandelen is waar de stille fout begint.

Uitlijnen is rekenwerk, geen stijl

Blokgroottes worden bepaald door de prefixlengte. Een /29 kan alleen beginnen op een adres dat deelbaar is door 8, een /28 op een dat deelbaar is door 16, een /27 op een dat deelbaar is door 32. Schuif een blok van zijn grens af en het masker dekt een andere reeks adressen dan je bedoelde.

Tel op vanaf de lage kant. Neem bij elke stap het grootste uitgelijnde blok dat het einde van het bereik niet passeert, en ga dan verder op het eerste adres daarna. De blokken kunnen niet overlappen, omdat elk begint waar het vorige stopte.

Twee mensen die dit met de hand doen, zouden op hetzelfde resultaat moeten uitkomen. Een verschil betekent dat iemand een begin heeft toegestaan dat niet uitgelijnd was.

Werk 200 tot 255 door

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

Het bereik begint bij .200, dat een veelvoud van 8 is, dus het eerste blok is een /29 van .200 tot .207. Na die acht adressen is de eerste vrije waarde .208, die deelbaar is door 16, dus een /28 neemt .208 tot .223. Wat overblijft is .224 tot .255, tweeëndertig adressen die op een veelvoud van 32 beginnen, dus een /27. Die drie rijen zijn de hele ontbinding.

Schrijf ze als routelijnen in plaats van als proza. Een profiel met alleen de eerste regel dekt acht adressen en laat de rest buiten de tunnel.

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

Het laatste blok heeft een grenscontrole nodig. Binnen 192.168.0.224/27 is .224 het netwerkadres en .255 het broadcastadres, dus een host die op .255 moet antwoorden, wordt door het prefix gedekt en blijft onbereikbaar. Verplaats die host of splits het bereik anders in plaats van het blok te routen en te hopen.

Wat route-nopull met het beeld doet

Voeg route-nopull alleen toe als de routes die de server pusht ongewenst zijn. Zonder de richtlijn bestaan gepushte routes en deze regels naast elkaar, en het meest specifieke prefix wint. Met de richtlijn verdwijnen ook gepushte DNS- en DHCP-opties, dus interne naamresolutie heeft zijn eigen configuratie nodig. Dat neveneffect verrast mensen die de richtlijn toevoegden om een routeprobleem op te lossen.

Voeg het om de juiste reden toe, niet als automatische reflex. Gepushte routes verwijderen is een beleidsbeslissing met een DNS-gevolg. Als de server dezelfde drie prefixen kan pushen, laat het, en verwijder de kopieën aan de clientkant zodat één eigenaar de lijst beheert.

Controles die de gebruikelijke fouten vangen

Controleer dat elk masker één aaneengesloten reeks enen is. De waarde 255.255.255.248 slaagt en 255.255.255.200 faalt, en een masker dat niet aaneengesloten is, wordt afgewezen of verkeerd gelezen. Bevestig daarna het pad voor één adres in elk blok.

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

Elk antwoord hoort de tunnelinterface te noemen. Een resultaat dat de fysieke adapter noemt, betekent dat de regel nooit is geïnstalleerd, wat vaak gebeurt wanneer een netwerkbeheerder op het bureaublad de tabel herschrijft nadat het profiel verbinding heeft.

Kies één eigenaar voor de lijst. Als de server dezelfde prefixen kan pushen, push ze en verwijder de bewerkingen aan de clientkant. Eén eigenaar betekent dat een typefout één plek heeft, en de client en de server kunnen het niet oneens zijn over welke adressen in de tunnel zitten.

Gerelateerde artikelen