Firewallregeln akzeptieren eine erste und eine letzte Adresse, etwa 192.168.0.200 bis 192.168.0.255, Routen dagegen nicht. Ein Routeneintrag hat nur Platz für ein Netz und eine Maske, was bedeutet, dass ein zusammenhängender Bereich zu einem oder mehreren ausgerichteten Präfixen werden muss, bevor OpenVPN ihn installiert. Ein Profil, das route-nopull mit einem nicht ausgerichteten Intervall paart, ist der Ort, an dem sich der Fehler meist versteckt, weil die Datei parst und keine Route passt. Bringen Sie die Blöcke in Ordnung, und der Fehler wird mit einem einzigen Befehl sichtbar.

Der Mythos: ein Bereich ist eine Route

Routingtabellen speichern Netz-Maske-Paare und wählen die längste Übereinstimmung, ein Intervall mit Anfang und Ende hat also keinen Platz. Ein Präfix über 256 Adressen deckt .0 bis .255 ab, die halbe Größe deckt .0 bis .127 ab, und nur ein an diesen Kanten ausgerichteter Bereich passt in einem Schritt. Alles andere muss in Blöcke zerschnitten werden. Eine kleinere Route bedeutet weiterhin das ursprüngliche Intervall.

Ein Bereich, der nicht präfixausgerichtet ist, ist keine komprimierte Route. Er ist eine andere Art von Objekt, und ihn als Route zu behandeln ist der Punkt, an dem der stille Fehler beginnt.

Ausrichtung ist Arithmetik, kein Stil

Blockgrößen sind durch die Präfixlänge festgelegt. Ein /29 kann nur an einer durch 8 teilbaren Adresse beginnen, ein /28 an einer durch 16 teilbaren, ein /27 an einer durch 32 teilbaren. Verschieben Sie einen Block von seiner Grenze weg, und die Maske deckt eine andere Adressmenge ab als beabsichtigt.

Summieren Sie vom unteren Ende. Nehmen Sie bei jedem Schritt den größten ausgerichteten Block, der das Bereichsende nicht überschreitet, und fahren Sie dann an der ersten Adresse danach fort. Die Blöcke können sich nicht überlappen, weil jeder dort beginnt, wo der vorige aufgehört hat.

Zwei Personen, die das von Hand tun, sollten zum selben Ergebnis kommen. Eine Abweichung bedeutet, dass jemand einen nicht ausgerichteten Anfang zugelassen hat.

Arbeiten Sie 200 bis 255 durch

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

Der Bereich beginnt bei .200, einem Vielfachen von 8, also ist der erste Block ein /29 von .200 bis .207. Nach diesen acht Adressen ist der erste freie Wert .208, teilbar durch 16, also nimmt ein /28 .208 bis .223. Was bleibt, ist .224 bis .255, zweiunddreißig Adressen ab einem Vielfachen von 32, also ein /27. Diese drei Zeilen sind die ganze Zerlegung.

Schreiben Sie sie als Routenzeilen statt als Fließtext. Ein Profil mit nur der ersten Zeile deckt acht Adressen ab und lässt den Rest außerhalb des Tunnels.

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

Der letzte Block braucht eine Grenzprüfung. Innerhalb von 192.168.0.224/27 ist .224 die Netzadresse und .255 die Broadcastadresse, ein Host, der auf .255 antworten muss, wird also vom Präfix abgedeckt und bleibt dennoch unerreichbar. Verschieben Sie diesen Host, oder teilen Sie den Bereich anders auf, statt den Block zu routen und zu hoffen.

Was route-nopull am Bild ändert

Fügen Sie route-nopull nur hinzu, wenn die vom Server geschobenen Routen unerwünscht sind. Ohne die Direktive bestehen geschobene Routen und diese Zeilen nebeneinander, und das spezifischste Präfix gewinnt. Mit ihr verschwinden auch geschobene DNS- und DHCP-Optionen, sodass die interne Namensauflösung eine eigene Konfiguration braucht. Diese Nebenwirkung überrascht Leute, die die Direktive hinzufügten, um ein Routenproblem zu beheben.

Fügen Sie sie aus dem richtigen Grund hinzu, nicht als automatischen Reflex. Das Entfernen geschobener Routen ist eine politische Entscheidung mit DNS-Folge. Kann der Server dieselben drei Präfixe schieben, lassen Sie ihn, und löschen Sie die Kopien auf der Clientseite, damit ein Eigentümer die Liste kontrolliert.

Prüfungen, die die üblichen Fehler fangen

Prüfen Sie, dass jede Maske ein zusammenhängender Lauf von Einsen ist. Der Wert 255.255.255.248 besteht und 255.255.255.200 scheitert, und eine nicht zusammenhängende Maske wird abgelehnt oder falsch gelesen. Bestätigen Sie dann den Pfad für eine Adresse in jedem Block.

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

Jede Antwort sollte die Tunnelschnittstelle nennen. Ein Ergebnis, das den physischen Adapter nennt, bedeutet, dass die Zeile nie installiert wurde, was oft passiert, wenn ein Desktop-Netzwerkmanager die Tabelle neu schreibt, nachdem sich das Profil verbunden hat.

Wählen Sie einen Eigentümer für die Liste. Wenn der Server dieselben Präfixe schieben kann, schieben Sie sie und entfernen Sie die Änderungen auf der Clientseite. Ein einziger Eigentümer bedeutet, dass ein Tippfehler einen Ort hat, und Client und Server können sich nicht darüber uneinig sein, welche Adressen im Tunnel liegen.

Ähnliche Artikel