私は、専門家としてホストされている Debian GNU/Linux 専用サーバーを (リモートで) 完全に構成しましたが、ネットワーク ルーティングに関する質問があります (私の知る限り、これは serverfault の FAQ に正確に当てはまります)。
この専用サーバーには静的 IPv4 IP と非常に単純なルートがあります。
route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
94.xx.yy.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 94.xx.yy.254 0.0.0.0 UG 0 0 0 eth0
静的 IP は 1 つしかなく、同じサブネット上には他の専用サーバーが多数あるため、これらを操作することはできません。
そのサーバーは、当社のメイン Web アプリケーション (Apache+Tomcat) をホスト/提供しており、Squid も実行しています。すべての構成は私が自分で行いました。予算が許せば、Squid を別のサーバーに移動します。
今のところ、そのサーバーに OpenVPN を追加したいのですが (できれば tap ではなく tun を使用)、インターフェイスが他の専用サーバーと「衝突」しないようにするには何を行う必要があるかを知りたいです。
どのように設定すればよいのか分からず、ルートが最終的にどのようになるかについて混乱しています。
「全体像」を理解するために、以下の具体的な例を挙げていただけますか。
- OpenVPN クライアントのローカル IP アドレス
- OpenVPNクライアントが使用するゲートウェイIP
- OpenVPNサーバーのルート出力
基本的に私は少し迷っています。始める前に、OpenVPN サーバーでルーティングがどのように行われるかを理解したいと思います。
私の理解では、OpenVPN クライアントは OpenVPN サーバーと同じネットワーク (たとえば、10.0.0.0/8 ネットワークを使用) 上にあるはずですが、クライアントがどのようにして 'tun' インターフェイスを使用して最終的に 94.xx.yy.254 ゲートウェイを使用するかを理解しようとすると、精神的な壁にぶつかってしまいます。
答え1
VPN クライアントの IP 設定が次のようになっているとします。
IP eth0: 192.168.1.100
Default gateway: 192.168.1.1
したがって、すべての非ローカル トラフィックは 192.168.1.1 を介して送信されます。LAN 上の別のホストへのトラフィックがある場合は、そのホストに送信されます。
OpenVPN が起動し、クライアントは新しいインターフェース tun0 を取得し、次のような画面が表示されます。
IP eth0: 192.168.1.100
IP tun0: 10.8.0.13
Default gateway: 192.168.1.1
VPN routing: 10.8.0.1 for the network 10.8.0.0/24
これは、OpenVPN サーバーが追加のルートをプッシュしていないことを前提としています。したがって、たとえば 8.8.8.8 に送信されるネットワーク パケットは、引き続き LAN のデフォルト ゲートウェイである 192.168.1.1 を通過します。たとえば 10.8.0.204 に送信されるパケットは、OpenVPN トンネルを通過して 10.8.0.1 の OpenVPN サーバーに送られ、さらにルーティングされます。
OpenVPN サーバーが LAN のルート (たとえば 172.16.0.0/24) をプッシュする場合、上記の VPN ルーティングは次のようになります。
VPN routing: 10.8.0.1 for the network 10.8.0.0/24
10.8.0.1 for the network 172.16.0.0/24
したがって、同様に、172.16.0.24 宛のパケットは、さらにルーティングするために 10.8.0.1 に送られます。
OpenVPN サーバーも設定をプッシュしている場合は"redirect-gateway def1"
、VPN クライアントのデフォルト ゲートウェイが異なります。次のような表示になります。
IP eth0: 192.168.1.100
IP tun0: 10.8.0.13
Default gateway: 10.8.0.1
(other gateway with lower priority): 192.168.1.1
Static route: 94.xx.yy.zz uses 192.168.1.1
ここで、94.xx.yy.zz は OpenVPN サーバーのパブリック IP アドレスです。
この場合、OpenVPN サーバーに直接送信されるトラフィックは、LAN デフォルト ゲートウェイ 192.168.1.1 を通過します。192.168.1.0/24 にローカルなトラフィックは、予想どおりホストに送信されます。その他のトラフィックは 10.8.0.1 を使用します。OpenVPN サーバーのパブリック IP に直接送信されない非ローカル トラフィックは、VPN トンネルを通過し、94.xx.yy.254 から送信されます。
ルーティング テーブルに、ゲートウェイとして 192.168.1.1 を保持する別のデフォルト ルートが表示される場合がありますが、その優先度は 10.8.0.1 よりも低くなります。これは、VPN がシャットダウンしたときにデフォルト ルートを何に戻すかを知るための、OpenVPN クライアントによるプレースホルダーのようなものだと思います。そのエントリについては心配する必要はありません。