2つのWANから同じLANにルーティング

2つのWANから同じLANにルーティング

私は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_tables2つの行を編集して追加できます。

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インターフェイスを選択できるかを望む場合に便利です。 。

おすすめ記事