私はLinuxベースのルーターデバイス(Zeroshellという名前)を使用していますが、これは一般的なLinuxルーティング関連の問題である必要があります。
ルーターコンピュータには、それぞれETH0からETH3までの4つのネットワークカードがあります。
- ETH0は、実際のLAN(サブネット192.168.241.0/24)IP 192.168.241.254にあります。
- ETH1は、WAN接続ルーター(サブネット192.168.1.0/24)IP 192.168.1.1、GW 192.168.1.254にあります。
- ETH2は、他のWAN接続ルーター(サブネット192.168.2.0/24)IP 192.168.2.1、GW 192.168.2.254にあります。
- ETH3は、ゲスト専用LAN(サブネット192.168.230.0/24)IP 192.168.230.254にあります。
ルーターのデフォルトゲートウェイは192.168.2.254に設定されているため、発信されるすべてのトラフィックは2番目のWAN接続(ファイバー)を使用し、NATはETH1とETH2の両方で有効になります。
最初の WAN ルータでは、192.168.1.1 が DMZ に設定されます。 2 番目の WAN ルータでは、192.168.2.1 が DMZ に設定されます。
ETH1およびETH2のポート80からETH0サブネット上のコンピューターへのいくつかのポート転送を設定しました。
ブラウザを使用して2番目のWANのパブリックIPに接続すると、Webサイトは内部コンピュータにホストされます。
ブラウザを使用して最初の WAN のパブリック IP に接続すると、接続は中断され続けます。
私は、これが最初のWANルーターで発生しても、すべてのトラフィックが2番目のWANルーターに転送されるように2番目のWANルーターのデフォルトゲートウェイを設定することに関連していると確信しています。
だから私の質問は:両方のWANが着信接続を処理し、それを関連するLANコンピュータに転送し、応答を正しいWANにルーティングできるようにルータのルーティングテーブルをどのように設定する必要がありますか?
編集する:
Webサーバーからルーティングテーブルを追加します。
root@webserver:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:f1:03:10 brd ff:ff:ff:ff:ff:ff
inet 192.168.241.23/24 brd 192.168.241.255 scope global eth0
valid_lft forever preferred_lft forever
root@webserver:/# ip route show
default via 192.168.241.254 dev eth0
10.8.0.0/24 via 192.168.241.21 dev eth0
192.168.240.0/24 via 192.168.241.21 dev eth0
192.168.241.0/24 dev eth0 proto kernel scope link src 192.168.241.23
ルータからルーティングテーブルを追加します。
root@rtr ~> ip addr show
1: lo: <LOOPBACK,UP,10000> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
3: ETH00: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc mq qlen 1000
link/ether 00:15:5d:f1:05:08 brd ff:ff:ff:ff:ff:ff
inet 192.168.230.254/24 brd 192.168.230.255 scope global ETH00:00
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fef1:508/64 scope link
valid_lft forever preferred_lft forever
4: ETH01: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc mq qlen 1000
link/ether 00:15:5d:f1:05:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global ETH01:00
valid_lft forever preferred_lft forever
inet6 2a01:e35:2e74:9560:215:5dff:fef1:509/64 scope global dynamic
valid_lft 86156sec preferred_lft 86156sec
inet6 fe80::215:5dff:fef1:509/64 scope link
valid_lft forever preferred_lft forever
5: ETH02: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc mq qlen 1000
link/ether 00:15:5d:f1:05:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global ETH02:00
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fef1:50b/64 scope link
valid_lft forever preferred_lft forever
6: ETH03: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc mq qlen 1000
link/ether 00:15:5d:f1:05:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.241.254/24 brd 192.168.241.255 scope global ETH03:00
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fef1:50c/64 scope link
valid_lft forever preferred_lft forever
7: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noqueue
link/ether 9e:3d:6a:0e:65:39 brd ff:ff:ff:ff:ff:ff
inet 192.168.141.142/24 brd 192.168.141.255 scope global dummy0
valid_lft forever preferred_lft forever
8: dummy1: <BROADCAST,NOARP,UP,10000> mtu 1500 qdisc noqueue
link/ether ee:6e:6f:33:32:34 brd ff:ff:ff:ff:ff:ff
inet 192.168.142.142/32 brd 192.168.142.255 scope global dummy1
valid_lft forever preferred_lft forever
inet6 fe80::ec6e:6fff:fe33:3234/64 scope link
valid_lft forever preferred_lft forever
9: DEFAULTBR: <BROADCAST,MULTICAST> mtu 1500 qdisc noop
link/ether 0a:61:ef:f2:09:80 brd ff:ff:ff:ff:ff:ff
10: VPN99: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 10 0
link/ether 1a:e8:0e:ee:78:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.250.254/24 brd 192.168.250.255 scope global VPN99:00
valid_lft forever preferred_lft forever
11: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 8e:65:6c:3d:76:e5 brd ff:ff:ff:ff:ff:ff
12: bond1: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 1e:34:34:54:8d:48 brd ff:ff:ff:ff:ff:ff
13: bond2: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 5a:bc:4c:86:83:dc brd ff:ff:ff:ff:ff:ff
14: bond3: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 6e:81:53:3e:0a:ff brd ff:ff:ff:ff:ff:ff
15: bond4: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 6a:35:c8:45:d1:ff brd ff:ff:ff:ff:ff:ff
16: bond5: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether ca:5d:10:21:02:30 brd ff:ff:ff:ff:ff:ff
17: bond6: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 82:60:85:97:d4:90 brd ff:ff:ff:ff:ff:ff
18: bond7: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether b6:fc:c9:a5:06:73 brd ff:ff:ff:ff:ff:ff
19: bond8: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether ce:75:5d:e5:7d:69 brd ff:ff:ff:ff:ff:ff
20: bond9: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop
link/ether 2e:ef:1e:89:26:1b brd ff:ff:ff:ff:ff:ff
root@rtr ~> ip route show
default via 192.168.1.254 dev ETH02
192.168.1.0/24 dev ETH02 proto kernel scope link src 192.168.1.1
192.168.2.0/24 dev ETH01 proto kernel scope link src 192.168.2.1
192.168.230.0/24 dev ETH00 proto kernel scope link src 192.168.230.254
192.168.240.0/24 via 192.168.241.21 dev ETH03
192.168.241.0/24 dev ETH03 proto kernel scope link src 192.168.241.254
192.168.250.0/24 dev VPN99 proto kernel scope link src 192.168.250.254
ベストアンサー1
このデュアルホーム設定の問題は、ETH0 ネットワークの Web サーバーから返されるパケットが、そのインターフェイスを介して着信接続にのみ適用されるデフォルトゲートウェイに従うことです。私はこれを直接経験しました。
私が使用した解決策は、ETH0ネットワーク(192.168.241.24と仮定)のWebサーバーに追加のIPアドレスを追加し、それを2番目のWANインターフェースを介して着信接続のDNATターゲットとして使用することでした。次に、2 番目の WAN インターフェイスを介して 2 番目の IP アドレスをルーティングするルーティング ルールを追加します。
Linuxポリシーベースのルーティングについていくつか知っておく必要があります。するip rule show
:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
これにより、デフォルトでip route show
「基本」テーブルが表示されます。table $name
たとえば、次を追加して他のテーブルの1つを表示できます。
$ ip route show table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.0.0 dev eth0 proto kernel scope link src 192.168.1.27
local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27
broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27
独自のテーブルを追加し、/etc/iproute2/rt_tables
2つの行を編集して追加できます。
11 WAN1
12 WAN2
これで、ETH01とETH02のデフォルトパスをそのテーブルに追加できるようになりました。
# ip route add default via 192.168.2.254 table WAN1
# ip route add default via 192.168.1.254 table WAN2
(最初はETH01のゲートウェイが192.168.1.254で、ETH02のゲートウェイが192.168.2.254だと説明しましたが、出力がip route show
一貫していないため、ETH1 / ETH01の違いを除いて後者を選択しました。)
これで、WAN1テーブルを使用して2番目のWebサーバーのIPアドレスからのトラフィックを処理するルールを追加する必要があります。
# ip rule add from 192.168.241.24 lookup WAN1 prio 1000
トラフィックが ETH01 から入り、DNAT を介して Web サーバーの 2 番目の IP アドレスに送信されると、Web サーバーはそのアドレスからパケットを返し、ルールはそのアドレスと一致して ETH01 を介して戻りトラフィックを送信します。
この場合、実際にはWAN2テーブルは必要ありませんが、ルータシステム自体が両方のWANインターフェイスからアクセスする必要がある場合、またはどの目的に使用するWANインターフェイスを選択できるかを望む場合に便利です。 。