Et interval er ikke en rute: lav 200-255 om til tre præfikser
En ruttelinje tager et netværk og en maske, aldrig en start- og slutadresse. Sum intervallet op i justerede præfikser, før OpenVPN installerer det.
Firewallregler accepterer en første og en sidste adresse, som 192.168.0.200 til 192.168.0.255, mens ruter ikke gør. En ruteindgang har kun plads til et netværk og en maske, hvilket betyder, at et sammenhængende interval skal blive et eller flere justerede præfikser, før OpenVPN installerer det. En profil, der parrer route-nopull med et ikke-justeret interval, er der, hvor fejlen normalt skjuler sig, fordi filen parses, og ingen rute matcher. Få blokkene rigtigt, og fejlen bliver synlig med én kommando.
Myten: et interval er en rute
Routingtabeller gemmer netværk- og maske-par og vælger det længste match, så et interval med en start og en slutning har ingen steder at bo. Et præfiks, der spænder over 256 adresser, dækker .0 til .255, halvdelen af den størrelse dækker .0 til .127, og kun et interval justeret til de kanter passer i ét trin. Alt andet skal skæres i blokke. En mindre rute betyder stadig det oprindelige interval.
Et interval, der ikke er præfiksjusteret, er ikke en komprimeret rute. Det er en anden slags objekt, og at behandle det som en rute er der, hvor den stille fejl starter.
Justering er aritmetik, ikke stil
Blokstørrelser fastsættes af præfikslængden. Et /29 kan kun begynde på en adresse, der er delelig med 8, et /28 på en, der er delelig med 16, et /27 på en, der er delelig med 32. Flyt en blok væk fra sin grænse, og masken dækker et andet sæt adresser end det, du havde tænkt.
Sum op fra den lave ende. Tag ved hvert trin den største justerede blok, der ikke passerer intervallets slutning, og fortsæt derefter på den første adresse efter den. Blokkene kan ikke overlappe, fordi hver begynder, hvor den forrige stoppede.
To personer, der gør dette i hånden, bør nå samme resultat. En uenighed betyder, at nogen tillod en start, der ikke var justeret.
Gå igennem 200 til 255
| Step | Start | Block that fits | Line for the profile |
|---|---|---|---|
| 1 | .200, multiple of 8 | /29, 8 addresses | 192.168.0.200 255.255.255.248 |
| 2 | .208, multiple of 16 | /28, 16 addresses | 192.168.0.208 255.255.255.240 |
| 3 | .224, multiple of 32 | /27, 32 addresses | 192.168.0.224 255.255.255.224 |
Intervallet begynder på .200, som er et multiplum af 8, så den første blok er et /29 fra .200 til .207. Efter disse otte adresser er den første frie værdi .208, som går op i 16, så et /28 tager .208 til .223. Det, der er tilbage, er .224 til .255, toogtredive adresser, der starter på et multiplum af 32, altså et /27. De tre rækker er hele opdelingen.
Skriv dem som ruttelinjer i stedet for som prosa. En profil, der kun har den første linje, dækker otte adresser og lader resten ligge uden for tunnelen.
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
Den sidste blok kræver en grænsekontrol. Inde i 192.168.0.224/27 er .224 netværksadressen, og .255 er broadcastadressen, så en vært, der skal svare på .255, er dækket af præfikset og stadig utilgængelig. Flyt den vært, eller del intervallet anderledes i stedet for at route blokken og håbe.
Hvad route-nopull gør ved billedet
Tilføj kun route-nopull, når serverens skubbede ruter er uønskede. Uden direktivet eksisterer skubbede ruter og disse linjer sammen, og det mest specifikke præfiks vinder. Med det forsvinder skubbede DNS- og DHCP-indstillinger også, så intern navneopløsning kræver sin egen konfiguration. Den bivirkning overrasker folk, der tilføjede direktivet for at rette et ruteproblem.
Tilføj det af den rigtige grund, ikke som en automatisk refleks. At fjerne skubbede ruter er en politisk beslutning med en DNS-konsekvens. Hvis serveren kan skubbe de samme tre præfikser, så lad den, og slet kopierne på klientsiden, så én ejer styrer listen.
Kontroller, der fanger de sædvanlige fejl
Kontroller, at hver maske er én sammenhængende række af ettaller. Værdien 255.255.255.248 består, og 255.255.255.200 fejler, og en maske, der ikke er sammenhængende, afvises eller læses forkert. Bekræft derefter ruten for én adresse i hver blok.
ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240
Hvert svar bør nævne tunnelinterfacet. Et resultat, der nævner den fysiske adapter, betyder, at linjen aldrig blev installeret, hvilket ofte sker, når en netværksadministrator på skrivebordet omskriver tabellen, efter at profilen har forbundet.
Vælg én ejer til listen. Når serveren kan skubbe de samme præfikser, så skub dem og fjern ændringerne på klientsiden. En enkelt ejer betyder, at en tastefejl har ét sted at bo, og klienten og serveren kan ikke være uenige om, hvilke adresser der ligger inde i tunnelen.