ipv4とipv6のクライアントが混在するOpenVPN


11

さまざまなクライアントを処理するVPNサーバーがあります。ipv4のみを使用するもの、ipv4とipv6を使用するもの、ipv6のみを使用するものがあります。これらのクライアントの一部はローミングしているため、理想的には、使用可能な場合はipv6に接続し、使用できない場合はipv4にフォールバックする必要があります。

私の現在のセットアップでは、OpenVPNはipv4とipv6をリッスンします:

proto udp
proto udp6
dev tun

私の最初の質問はここにあります:これはうまくいくようですが、両方のプロトコルを1つの構成ファイルに含めることは安全で正しいですか?

私のクライアントの設定には2つのリモートインスタンスがあります。

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

私の質問もここで機能しているようです(失敗した場合は最初にudp6を試すと、udpにフォールバックします)、これはこれを行う良い方法ですか?

回答:


11

上手。

サーバー側では、「proto」を2回指定しても実際には何も行われません。「proto udp6」は、デュアルスタックソケットをバインドしてv4 + v6を処理し、前の行の「proto udp」を上書きします。

2.3のクライアントでは、2つのリモートがあり、「udp6」と「udp」を使用するのがよい方法です。古いソケットコードは適切にフェイルオーバーできないためです。

git master(2.4-to-be)または3.0(OpenVPN Connect)クライアントでは、getudrinfo()を適切に呼び出し、サーバーとネットワークがサポートするすべてのIPプロトコルを使用して、最初に1つのファミリを試し、「udp」を使用できます。 OSシグナルの設定(getaddrinfo()結果の順序付けを使用)を使用して、もう一方にフォールオーバーします。

ガート


2.4より前のOpenVPNのFYIでは、デュアルスタックを実行できません。「proto udp6」を設定すると、デュアルスタックにバインドされません。OpenVPN 2.4では、示されているように「proto udp」を使用できます。
Ben Franske 2017年

このトピックについて、矛盾するドキュメントがいくつか見つかりました。積極的な設定では、OpenVPN 2.4の「proto udp6」はデュアルスタックになります。少なくともこれは私のサーバーの動作です。少なくともwiki.archlinux.org/index.php/…は同じことを述べています。
マーティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.