Eine Serverzeile, die ein CIDR-Suffix mit einer gepunkteten Maske mischt, hält den Daemon an, bevor er überhaupt einen Port öffnet. Der IPv4-Helfer server will zwei getrennte Argumente: eine ausgerichtete Netzadresse und dann die Netzmaske in gepunkteter Form. Alles andere auf dieser Zeile ist Vermutung, und in der Vermutung gehen Poolgrößen und Clientmasken schief.

Die zwei Argumente, die der Helfer akzeptiert

Schreiben Sie zuerst das Netz und dann die Maske, ohne etwas an die Adresse anzuhängen:

server 10.72.16.0 255.255.240.0

Dies ist die Form für ein /20. Die Zeile darunter ist der Fehler, und sie scheitert beim Parsen der Optionen, nicht zur Laufzeit:

server 10.72.16.0/20 255.255.240.0

Halten Sie beide Vorstellungen getrennt, wenn Sie das debuggen. Eine Präfixlänge und eine gepunktete Maske beschreiben denselben Bereich, aber der Helfer akzeptiert nicht beides zugleich, und eine abgelehnte Zeile erzeugt einen Optionenfehler, der die Direktive nennt statt die Arithmetik.

Richten Sie das Netz aus, bevor Sie die Maske eintippen

Die erste Adresse ist die Netzadresse des Bereichs, keine bequeme Clientadresse darin. Für ein /20 reicht der Bereich von 10.72.16.0 bis 10.72.31.255, und nur die erste davon ist ein gültiges Netzargument. Ein /21 verwendet 255.255.248.0 und umfasst 10.72.16.0 bis 10.72.23.255, seine Zeile lautet also server 10.72.16.0 255.255.248.0.

Das Präfix zu ändern ändert den Bereich und sonst nichts. Es ändert nicht, wie viele Adressen ein einzelner Client erhält, denn das ist eine Eigenschaft der Topologie, nicht der Maske in dieser Zeile.

Bestätigen Sie den Pool von der Serverseite

Starten Sie die Instanz im Vordergrund mit ausführlicher Protokollierung und lesen Sie die Zeilen, die der Helfer ausgibt. Der aufgebaute Pool wird beim Start gedruckt, was verlässlicher ist, als die Arithmetik von Hand zu rechnen:

openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195

Suchen Sie die Poolzusammenfassung oben in der Ausgabe. Sie listet den Bereich, den der Helfer reserviert hat, und wenn dieser Bereich nicht Ihrer Absicht entspricht, sind die Argumente in der Zeile falsch, egal was die Maskenarithmetik sagt.

Verbinden Sie dann einen Client und suchen Sie die Zeile, die die ihm übergebene Adresse festhält. Diese eine Adresse neben dem Poolbereich sagt Ihnen, ob der Client im reservierten Block gelandet ist oder irgendwo, wo Sie es nicht erwartet haben. Wenn beide nicht übereinstimmen, korrigieren Sie die Argumente statt den Client. Wenn sie übereinstimmen und der Client trotzdem nichts erreicht, war der Pool nie das Problem.

Lesen Sie die Maske des Clients mit Blick auf die Topologie

Ein Client, der ein /30 auf seiner Tunnelschnittstelle zeigt, ist kein Beweis für einen defekten Pool. Bei Punkt-zu-Punkt-Adressierung erhält jeder Client einen kleinen Block, und seine Schnittstellenmaske beschreibt diesen Block, während der Pool des Servers die Gesamtheit abdeckt. Bei einer Subnetz-Topologie stimmt die Maske des Clients stattdessen mit der Poolmaske überein. Die Maske allein sagt also, welche Topologie im Spiel ist, nicht ob der Pool korrekt geschrieben wurde.

Prüfen Sie die konfigurierte Topologie und die zugewiesene Adresse zusammen, bevor Sie eine Schlussfolgerung ziehen:

ip -4 addr show tun0

Liegt die Adresse im Pool und ist die Maske enger als der Pool, dann tut die Topologie ihre Arbeit. Liegt die Adresse außerhalb des Pools, ist der Pool falsch, und keine noch so gründliche Prüfung auf Clientseite wird das beheben.

Einen laufenden Pool ändern

Wählen Sie einen Bereich, der sich nicht mit dem aktuellen Pool, dem LAN oder einer bereits an Clients gepushten Route überschneidet. Die Überschneidung ist der Fehler, der einen Neustart übersteht und Tage später als ein Standort auftaucht, der aus einer Richtung nicht erreichbar ist.

Ändern Sie die Zeile, starten Sie neu und lesen Sie den Startpool erneut, bevor Sie Benutzer wieder zulassen. Kollidiert der neue Bereich mit etwas, zeigt dieselbe Startausgabe es sofort, und ein Rollback ist eine Änderung an einer Zeile plus ein weiterer Neustart.

Halten Sie den alten Bereich nach der Änderung noch eine Weile reserviert. Clients, die sich spät verbinden, können noch eine Adresse aus dem vorherigen Pool halten, und ein neuer Bereich, der diese Adressen wiederverwendet, erzeugt doppelte Zuweisungen, die wie ein Routingfehler aussehen. Das OpenVPN-2.6-Handbuch dokumentiert die Argumente des Helfers und seine Expansion, was sich zu lesen lohnt, bevor Sie annehmen, eine Direktive verwende dieselbe Notation wie ihre Nachbarin.

Ähnliche Artikel