---------------------------------
| |
| |
-----> eth2 (WAN) --------> WG0-->------->-----> eth0 LAN 192.168.220.2
192.168.14.7 | | |
| | eth2 to eth1 |
| ->---->---------->-----> eth1 LAN 192.168.50.2
--------------------------------
私は3つのイーサネットインターフェイスと1つのWireguardクライアントインターフェイスwg0を持つコンピュータを持っています。
eth2 (WAN) 192.168.14.7 (internet traffic comes from here)
eth0 (LAN) 192.168.220.2
eth1 (LAN) 192.168.50.2
wg0 (wireguard client) 10.125.146.2
私のデバイスはwg0のwireguardクライアントとして動作します。 WireguardサーバーはVPSにあります。wg0 to eth0
LANからトラフィックを転送するためにiptablesを使用しました。だから私のラップトップはに接続されていますeth0 192.168.220.2 with public IP from wg0
。
他のノートパソコンも接続するとeth1 the public IP is from wg0
。私はそれをしたくありません。別のノートパソコンを接続したいeth1 192.168.50.2
wg0のIPがありません。。 eth1 に eth2 WAN のパブリック IP を持たせたい。
これは可能ですか?
パス-n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.14.1 0.0.0.0 UG 204 0 0 eth2
10.125.146.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
169.254.0.0 0.0.0.0 255.255.0.0 U 202 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 203 0 0 eth1
192.168.14.0 0.0.0.0 255.255.255.0 U 204 0 0 eth2
192.168.50.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.220.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
IPルーティング
default via 192.168.14.1 dev eth2 proto dhcp src 192.168.14.7 metric 204
10.125.146.0/24 dev wg0 proto kernel scope link src 10.125.146.2
169.254.0.0/16 dev eth0 scope link src 169.254.50.120 metric 202
169.254.0.0/16 dev eth1 scope link src 169.254.231.124 metric 203
192.168.14.0/24 dev eth2 proto dhcp scope link src 192.168.14.7 metric 204
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.2
192.168.220.0/24 dev eth0 proto kernel scope link src 192.168.220.2
IPルールの表示
0: from all lookup local
32764: from all lookup main suppress_prefixlength 0
32765: not from all fwmark 0xca6c lookup 51820
32766: from all lookup main
32767: from all lookup default
ip -4 -br アドレス
lo UNKNOWN 127.0.0.1/8
eth0 UP 192.168.220.2/24 169.254.50.120/16
eth1 UP 192.168.50.2/24 169.254.231.124/16
eth2 UP 192.168.14.7/24
wg0 UNKNOWN 10.125.146.2/24
IP ルーティング表示テーブル 51820
default dev wg0 scope link
IP ルート表示テーブルマスター
default via 192.168.14.1 dev eth2 proto dhcp src 192.168.14.7 metric 205
10.125.146.0/24 dev wg0 proto kernel scope link src 10.125.146.2
169.254.0.0/16 dev eth0 scope link src 169.254.50.120 metric 202
192.168.14.0/24 dev eth2 proto dhcp scope link src 192.168.14.7 metric 205
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.2 linkdown
192.168.220.0/24 dev eth0 proto kernel scope link src 192.168.220.2
ベストアンサー1
あなたのeth2
IPアドレスは192.168で始まります。いいえまず公開IPです。インターフェイスeth2
は、セグメントグループに固有の非VPNパブリックIPアドレスを持つルータ、ファイアウォール、またはその他のNAT対応デバイスに接続する必要があります。
あなたのシステムには、Wireguard VPNによって生成されたいくつかの高度なルーティングルールが適用されています。
0: from all lookup local <- default rule
32764: from all lookup main suppress_prefixlength 0
32765: not from all fwmark 0xca6c lookup 51820
32766: from all lookup main <- default rule
32767: from all lookup default <- default rule
左端の列の数字は、各行で指定されたルーティングルールの優先順位です。
- 優先順位0の規則は標準であり、本質的に次のことを意味します。 「このシステムの独自のアドレスに送信されたすべてのトラフィックは、適切な送信元アドレスを使用してローカルに処理されます。」
- 優先順位ライン32764は、次のことを意味します。ただし、デフォルトゲートウェイエントリは無視されます。「このルールは、デフォルトではデフォルトゲートウェイに移動しないすべてのトラフィックを処理するようです。
- 優先順位ライン32765は、次のことを意味します。 「表示されていないすべてのトラフィックは
fwmark 0xca6c
処理されます。ルーティングテーブル51820の使用。 「これはデフォルトゲートウェイを通過するが、まだWireguardで処理されていないすべてのトラフィックを意味する可能性が高いです。 - 優先順位 32766 は、基本的に、「今まで正常にルーティングされていないすべての項目に対して標準の基本ルーティング テーブルをそのまま使用してください」と言う別の基本ルールです。これは、Wireguardが有効な場合、VPS Wireguardサーバーへの暗号化されたWireguardトラフィックにのみ使用されます。
- 優先順位32767は、デフォルトのルーティングテーブルで扱われていないすべてのエントリを別のテーブルに送信する別の基本ルールです
default
。このテーブルは、一部のカスタム後処理が必要ない限り、通常空です。
route -n
とコマンドの両方がルーティングテーブルをip route
表示します。main
次のコマンドの完全な形式を使用してこれを確認できますip route
。ip route show table main
ip route show table 51820
Wireguardがルーティングに与える影響を完全に理解するには、出力も確認する必要があります。
接続されたデバイスがeth1
Wireguard VPNをバイパスし、VPNではなくパブリックIPを使用するようにするには、次の3つを設定する必要があります。
- Wireguardクライアントがそれを上書きしないように、ネットワーク192.168.50.0/24から発信されるトラフィックのルーティングルールを設定する方法を見つける必要があります。出力がわからないと、
ip route show table 51820
ここで正確なコマンドを提案できないと思います。 - 設定する必要があります
eth2
接続されているルーター等価ip route add 192.168.50.0/24 via 192.168.14.7
なので、デバイスが別のネットワークセグメントの背後にあることがわかります。そうしないと、接続されたデバイスで開始された接続に応答して何をすべきかわかりません。eth1
単に拒否します。 - 設定する必要があります
eth2
接続されているルーター同時にネットワークセグメントで192.168.50.0/24
NATを実行します。運が良ければ、ルータはすべての個人用192.168.168.168.3をNATに接続することがわかります。。基本ネットワークセグメント。または。
ルータを設定できない場合、またはルータがこの方法で設定するのに十分柔軟でないコンシューマクラスのデバイスである場合は、ルーティングを使用してこれを行うことはできません。
もう1つのアプローチはより信頼性が高く、理解し、問題を解決しやすく、ルーター設定機能とは大きく独立している可能性があります。
- 適切な速度定格と追加のネットワークケーブルを備えたネットワークスイッチを購入してください。他の要件がなければ、安価で管理が難しい5ポートスイッチが適しています。
eth2
デバイスインターフェイスからWANケーブルを外し、スイッチの最初のポートに接続します。- 新しいネットワークケーブルをスイッチの2番目のポートに接続し、ケーブルのもう一方の端を
eth2
デバイスに接続します。 eth1
デバイスから別のノートブックを取り外し、スイッチの3番目のポートに接続します。- 完璧。
ルータに未使用のネットワークポートがある場合、スイッチも必要ありません。 「eth1ノートブック」をルーターに直接接続するだけです。
明らかに、このソリューションを変更すると、「eth1ノートブック」がルーターから192.168.14 *アドレスを取得し、192.168.50.0/24セグメントが完全に削除されます。デバイスのインターフェイスはeth1
未使用のままです。
また、VPNトラフィックとVPN以外のトラフィックを分離する必要がある厳しいセキュリティ要件がある場合は、これが私が推奨する唯一のソリューションタイプです。
トラフィックが「eth1 laptop」に行く場合〜しなければならないデバイスを介してアップストリームルーターを設定できない場合は、検討してくださいeth2
。ブリッジングeth1
eth2
ルーティングの問題を解決するために無駄に努力するのではなく、ネットワークインターフェイスを使用してください。
これにより、デバイスのデフォルトゲートウェイは単一のインターフェイスではなくブリッジデバイスに接続され、それを使用してルーティングケースのように「eth1ノートブック」へのトラフィックをフィルタリングeth2
できます。別個の 192.168.50.0/24 セグメントはまだ削除され、「eth1 ノートブック」はルータの 192.168.14.0/24 セグメントからローカル IP アドレスを取得します。ebtables
iptables
しかし、Wireguardクライアントがブリッジとして設定されたシステムで動作するかどうかはわかりません。なぜそれを行うべきなのかわかりませんが、クライアントがVPNが「漏洩」するのを防ぐようにプログラムされている場合、目的のタスク(ルーティングまたはブリッジング)を実行することは、Wireguardに対して意図的な「流出」のように見えます。
また、デュアルNATに関連するソリューションを簡単に検討し、拒否しました。私は個人的に、これらのソリューションが現在はある程度の利便性をもたらしますが、将来は予測不可能なトラブルシューティングの問題をもたらす可能性があると信じています。これは悪い取引です。ただではないと言って」。