他のクライアントのゲートウェイとしての OpenVPN クライアント

他のクライアントのゲートウェイとしての OpenVPN クライアント

私は 1 台のサーバーと 2 台のクライアントを持つ OpenVPN ネットワークを持っています。C1 のデフォルト ルートを S (IP 転送と NAT が有効) を経由するように設定すると、すべてが期待どおりに動作します。問題は、C1 のデフォルト ルートを C2 (これも VPN からインターネットへのトラフィックを NAT するように適切に設定されている) に向けると、トラフィックが S に奪われ、転送されてしまうことです。C2 で tcpdump を実行しても、そこに到着する兆候はありません。OpenVPN でクライアントを他のクライアントのゲートウェイとして設定することは可能ですか。それとも、クライアントのルートが他のクライアントに向けられている場合、パケットがサーバー イベントによってルーティングされるのはシステムの特性ですか。

編集:

角括弧は仮想ネットワークを表します (物理的には存在しません)。C1/C2/S はネットワーク内で問題なく相互に ping できます。C1 から C2 を経由してインターネットにトラフィックをルーティングします。C1 (およびおそらく C2) から S を経由してインターネットにルーティングできますが、パケットが S によって転送されるため、C2 経由のルーティングは機能しません。これは、OpenVPN サーバーがパケットを本来の宛先に送信したくないために発生する問題のようです。

                [C1-S(NAT)] -- インターネット
インターネット -- [(NAT)C2/ ]

答え1

説明しようとしているネットワーク トポロジを知らなければ、これに完全に答えることは困難です。ただし、一般的には、求めていることは実行可能であると言えると思います。

以下のシナリオを考えてみましょう。

C1 -- R1 --(NAT)-- インターネット --(NAT)-- R2 -- C2

ここで、R1 と R2 の間に (適切に構成された) OpenVPN トンネルが作成されている場合、C1 は C2 と通信でき、その逆も同様です。

このシナリオを正しく理解するのはより困難です:

C2 -- R1 --(NAT)-- インターネット --(NAT)-- R2 -- C3
C1 / \ C4

ここで、C2 と C3 は OpenVPN エンドポイントであり、C1 は VPN を使用して C4 にアクセスする必要があります。最初のハードルは、C2 と C3 の間に OpenVPN トンネルを確立することです。おそらく、UDP 1190 の R1 と R2 からそれぞれ C2 と C3 へのポート転送を使用します。

次は、C1 が C4 にパケットを送る方法として C2 を使用するようにすることです。これには、C1 と C4 のルーティング テーブルを構成することが含まれます。C1 は C2 経由で C4 のネットワークへのルートを設定し、C4 は C3 経由で C1 のネットワークへのルートを設定します。これらのルートは両方ともデフォルトよりも優先される必要があります。したがって、C1 では {route add 192.168.3.0 gw 1​​92.168.2.2}、C4 では {route add 192.168.1.0 gw 1​​92.168.3.2} とします。これは、C2 と C3 のアドレスがそれぞれ 192.168.2.2 と 192.168.3.2 であり、C1 と C4 がそれぞれ C2 と C3 と同じネットワーク上にあることを前提としています。

これで質問への回答が十分に得られ、クライアントで VPN を構成するよりもデフォルト ゲートウェイで VPN を構成する方がはるかに簡単であることが実証されたと思いますが、どちらにも使用例があります。

編集: このトポロジと問題の説明から、C1 と C2 にルーティングの問題があると考えられます... C1 のデフォルト ルートは、ルータとして C2 の VPN アドレスを指す必要があります。これにより、C1 は VPN を使用してパケットを C2 に送信し、C2 がパケットの処理方法を決定します。

C2 がインターネットへの独自の接続を使用する場合、示したように、C2 のデフォルト ルートは独自のインターネット接続である必要があります。

代わりに、C2 がインターネットへの独自のパスを持たず、代わりに S を経由する場合は、S が C2 のデフォルト ルーターになります。

答え2

以前、この問題に直面しました。VPN クライアントが動作していたため、自宅の LAN 上の別のデバイスにアクセスできませんでした。VPN クライアントは自動的にデフォルト ルートを追加し、すべてのトラフィックをサーバーに転送するため、2 番目のマシンへの静的ルートを構成する必要がありました。

C1 から C2 へのトラフィックがサーバー経由で送信されることに問題がない場合は、server.conf で client-to-client ディレクティブを有効にして、クライアントが VPN 経由で相互にアクセスできるようにする必要があります。デフォルトでは、クライアントはサーバーにのみアクセスできます。

チェックhttp://openvpn.net/index.php/open-source/documentation/howto.html「ルーティングされた VPN (dev tun) を使用するときにクライアント側に複数のマシンを含める」の下。

関連情報