
1 つの OpenVPN サーバーに接続する必要があるクライアントが 2 つあります。ifconfig パラメータで両方のクライアントに同じゲートウェイを使用することは可能ですか?
Client A config file
[...]
ifconfig 10.0.0.2 10.0.0.1
Client B config file
[...]
ifconfig 10.0.0.3 10.0.0.1
サーバー上の状況は次のとおりです。
tun0
inet 10.10.0.1 destination 10.10.0.2
tun1
inet 10.10.0.1 destination 10.10.0.3
今はすべて正常に動作していますが、時間が経つと問題が発生する可能性がありますか?
次のような別のゲートウェイを使用するように言われました:
Client A config file
[...]
ifconfig 10.0.0.2 10.0.0.1
Client B config file
[...]
ifconfig 10.0.1.2 10.0.1.1
しかし、ルーティング目的のためだけに異なるゲートウェイが必要だと思いました。ルートを追加して特定の tun インターフェイスでトラフィックを転送したい場合は、確かに異なるゲートウェイが必要です。そうしないと、サーバーはどのゲートウェイにパケットを送信するかわかりませんが、特定のルートが必要ない場合は、最初の構成を使用できますか?
ありがとう
答え1
それは可能であり、正しいです。ゲートウェイ パラメータは、VPN にデータを送信するために使用されるクライアント上の構成を定義し、IP で通常どおりルーティングを定義できるようにします。パケットが OpenVPN プロセスに送信されると、そのパケットのルーティングが OpenVPN プロセスによって処理されます (他の OpenVPN プロセスを離れるまで)。
具体的には、以下を定義します。
ifconfig 10.10.0.3 10.10.0.1
ののみこのコマンドの結果は、クライアントで次のコマンドを実行した場合と同様になります。
ip address add 10.10.0.3 dev tun0
ip route add 10.10.0.1 dev tun0
以上です。他のクライアント、サーバー、外部システムなど、誰もこのクライアント構成について知りません。
ゲートウェイが使用されるのは、次のように VPN へのルートを記述する場合のみです。
ip route add 192.168.0.0/24 via 10.10.0.1
たとえば、このネットワークを VPN 経由でアクセス可能に設定するなどです。たとえば、VPN サーバーと他のクライアントへのルートは次のように設定されます。もちろん、複数のクライアントがある場合は、それらで同じゲートウェイ アドレスを使用できます (同じ LAN 内の隣接するコンピューターなどでは、当然これを行います)。
同じことはサーバーにも当てはまります。たとえば、私は1台のマシンで複数のVPNを実行しています(1つはUDP経由、もう1つはポート共有オプション付きのポート443のTCP経由です。これにより、通常のポートをブロックするが443は許可するファイアウォールをすり抜け、Webサーバーがあるかどうかも確認できます)。これらのサーバーは両方とも同じです。地元アドレスが設定されており、リモート(これにより、パケットをルーティングする VPN を設定できます)。
ここで、遭遇する可能性のある問題について考えます。もちろん、本格的な Linux OpenVPN では問題はありません。「OpenVPN クライアント」を使用する場合、Linux、Windows、iOS/iPadOS/macOS、または Android クライアントのいずれであっても、topology
設定内容によって異なります。net30
トポロジでは、このような構成は無効として拒否されます。この場合、クライアント アドレスとそのリモートは同じ /30 サブネットに属している必要があります。
答え2
通常、 などのポイントツーポイント インターフェイス、tun0
またはその他のトンネルのようなインターフェイスでは、トンネル管理目的または特定のトンネル識別のためにのみローカル アドレスが必要です。
トンネルインターフェースをリモート接続エンドポイントとして考えてみましょう。このインターフェースには2つの端があります。あなたともう一方の端一般的に、使用する必要はありませんどれでもこのようなインターフェース上のアドレスは、接続された 2 つのパーティのみがデータ交換に関与している場合に使用されます。このインターフェースを介してパケットを送信すると、パケットはもう一方の端に配信され、他の方法はありません。
第三者がリモート接続エンドポイントにアクセスする必要がある場合、状況は少し複雑になります。このエンドポイントにアクセスするには、リモートアドレスパケットの宛先として。逆に、リモート側は、ローカルアドレスを使用して、もう一方の端必要な場合、つまりデフォルト ルートをインストールする場合、ローカル アドレスを知らなくてもトンネル インターフェイス自体をルートの宛先として使用でき、それでも機能します。
したがって、トンネル インターフェイスをローカル エンドポイントで識別する必要がない限り (つまり、トンネル上の特定の動的ルーティング プロトコル シナリオの送信元アドレスとして使用する場合)、トンネル上のローカル アドレスとして任意のアドレスを使用できます。リモート アドレスと同じサブネット上にある必要さえありません。