OpenVPN mit gemischten IPv4- und IPv6-Clients

10

Ich habe einen VPN-Server, der verschiedene Clients verwaltet. Einige nur mit IPv4, andere mit IPv4 und IPv6 und andere nur mit IPv6. Einige dieser Clients sind im Roaming-Modus. Idealerweise sollten sie eine Verbindung zu IPv6 herstellen, wenn diese verfügbar ist, und auf IPv4 zurückgreifen, wenn dies nicht der Fall ist.

In meinem aktuellen Setup hört OpenVPN IPv4 und IPv6:

proto udp
proto udp6
dev tun

Meine erste Frage ist hier: Während dies zu funktionieren scheint, ist es sicher und richtig, beide Protos in einer Konfigurationsdatei zu haben?

Meine Clients haben zwei Remote-Instanzen in der Konfiguration:

remote vpn.domain.tld port udp6
remote vpn.domain.tld port udp

Meine Frage auch hier, da dies zu funktionieren scheint (zuerst udp6 zu versuchen, wenn dies fehlschlägt, wird auf udp zurückgegriffen), ist dies ein guter Weg, dies zu tun?

Tuinslak
quelle

Antworten:

10

Gut.

Auf der Serverseite bewirkt die zweimalige Angabe von "proto" eigentlich nichts - "proto udp6" bindet einen Dual-Stack-Socket an v4 + v6 und überschreibt das "proto udp" in der vorherigen Zeile.

Auf einem 2.3-Client sind zwei Fernbedienungen mit "udp6" und "udp" der richtige Weg, da der alte Socket-Code selbst kein ordnungsgemäßes Failover durchführen kann.

Auf einem Git-Master- (2.4-to-be) oder 3.0-Client (OpenVPN Connect) können Sie einfach "udp" verwenden, da getaddrinfo () ordnungsgemäß aufgerufen wird und das vom Server und Netzwerk unterstützte IP-Protokoll verwendet wird. Versuchen Sie zuerst eine Familie und Umfallen auf den anderen, unter Verwendung der Präferenz der Betriebssystemsignale (über getaddrinfo () Ergebnisreihenfolge).

gert

user2156968
quelle
Zu Ihrer Information: Auf OpenVPN vor 2.4 können Sie keinen Dual-Stack ausführen. Das Einstellen von "proto udp6" wird nicht an einen Dual-Stack gebunden. Auf OpenVPN 2.4 können Sie einfach "proto udp" wie angegeben verwenden.
Ben Franske