OpenVPN - ルーティングテーブルを理解する + VPN経由で特定のIPにトラフィックのみをルーティングする方法

OpenVPN - ルーティングテーブルを理解する + VPN経由で特定のIPにトラフィックのみをルーティングする方法

OpenVPN を使用して VPN サービスに接続していますが、すべて正常に動作しています。接続すると、次のルールが自動的に設定されます。

root@linux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:AA:1B:01:AC:FB  
          inet addr:192.168.1.201  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37977382 (36.2 MiB)  TX bytes:5098121 (4.8 MiB)
          Interrupt:16 

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.7.7.126  P-t-P:10.7.7.125  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:31366374 (29.9 MiB)  TX bytes:308591 (301.3 KiB)

root@linux:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.7.7.125      128.0.0.0       UG    0      0        0 tun0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
5.120.121.114   192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
10.7.7.1        10.7.7.125      255.255.255.255 UGH   0      0        0 tun0
10.7.7.125      *               255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.7.7.125      128.0.0.0       UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

私が理解していることは次のとおりです:

  • 私のローカルIPアドレスは192.168.1.201です
  • ローカルゲートウェイは 191.168.1.1 です
  • 5.120.121.114はVPNパブリックIPです
  • tun0はVPNトンネルで、私のマシンのアドレスは10.7.7.126です
  • 10.7.7.125はPTPアドレスであり、VPNのもう一方の「端」であると理解しています。

ルーティング テーブルに関しては、次のことを理解しています。

  • デフォルトでは、すべてのトラフィックはインターフェイス tun0 の 10.7.7.125 経由で送信されます (しかし、なぜそのマスクなのでしょうか?)
  • 10.7.7.1はtun0経由で到達可能
  • VPN のパブリック IP は eth0 経由でアクセスできます

2 番目のデフォルト ゲートウェイがわかりません。これは VPN がアクティブでないときのデフォルトですが、単にバイパスされるだけですか?

10.7.7.1 はどうですか? VPN のゲートウェイのようです...

なぜ宛先が 128.0.0.0 なのでしょうか?

OpenVPN はこれらすべてのルールを自動的に作成します。しかし、それらは何に基づいて作成されるのでしょうか?

VPN のサーバー側を制御することはできず、クライアント構成のみを制御できます。

では、次のような場合はどうすればよいのでしょうか:

  • 216.58.213.174 へのすべてのトラフィックを VPN tun0 経由で送信し、残りすべてを eth0 経由で送信するように強制しますか?
  • VPN を起動するときに自動的に確立することはできますか?

これを理解する上でのご提案とサポートに感謝いたします。

KR、デンマーク

編集:

root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0 
default via 192.168.1.1 dev eth0 
5.152.210.249 via 192.168.1.1 dev eth0 
10.7.7.1 via 10.7.7.125 dev tun0 
10.7.7.125 dev tun0  src 10.7.7.126 
128.0.0.0/1 via 10.7.7.125 dev tun0 
192.168.1.0/24 dev eth0  src 192.168.1.201 

答え1

2 番目のデフォルト ゲートウェイがわかりません。これは VPN がアクティブでないときのデフォルトですが、単にバイパスされるだけですか?

これは、デフォルト ゲートウェイを維持しながらトラフィックをトンネル経由でルーティングするための OpenVPN のハックの 1 つです。0.0.0.0/1 および 128.0.0.0/1 ルートは、すべてのアドレスに一致しながらもより具体的なため、0.0.0.0/0 ルートよりも優先されます。詳細については、OpenVPN ドキュメントで「def1」を検索してください。

10.7.7.1 はどうですか? VPN のゲートウェイのようです...

おそらくそうだ

OpenVPN はこれらすべてのルールを自動的に作成します。しかし、それらは何に基づいて作成されるのでしょうか?

おそらくサーバーからプッシュされたものです。クライアントの起動時の出力と設定ファイルをご提供いただければ、より詳しい情報を提供できます。

VPN のサーバー側を制御することはできず、クライアント構成のみを制御できます。

はい、しかしクライアントは高度に構成可能なので、サーバーがクライアントに要求するほとんどすべてのことを上書きできます。それでも、接続するにはプロバイダーの基本要件を満たす必要があります。プロバイダーを怒らせないように、プロバイダーの「利用規約」も確認する必要があります。

では、次のような場合はどうすればよいのでしょうか:

216.58.213.174 へのすべてのトラフィックを VPN tun0 経由で送信し、残りすべてを eth0 経由で送信するように強制しますか?

はい、設定に「route 216.58.213.174 255.255.255.255 10.7.7.125」を含めてください。これで希望のルートが設定されます。設定から「redirect-gateway」オプションを削除すれば、他のルートはそのまま維持できるはずです。

VPN を起動するときに自動的に確立することはできますか?

はい、上記参照

私が説明したすべてのオプションとその他のオプションは、OpenVPN のオンライン ドキュメントに記載されています。 https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

関連情報