web-dev-qa-db-ja.com

2つのNICを備えたLinuxボックスを使用した2つのサブネット間のルーティング

Linuxボックスに2つのNICがあり、それぞれが異なるLANに接続されています。

  • ネットワークA:192.168.1.0255.255.255.0
  • ネットワークB:192.168.2.0255.255.255.0

ルーターは次のとおりです。

  • 192.168.1.1
  • 192.168.2.1

Linux NICは次のとおりです。

  • 192.168.1.2
  • 192.168.2.2

ネットワークAのすべてのホストがネットワークBのすべてのホストにpingできるようにしたいと思います。

これまでに行ったこと:

Linuxボックスの場合Sudo sysctl -w net.ipv4.ip_forward=1

192.168.1.1の場合route add 192.168.2.0 255.255.255.0 gw 192.168.1.2

192.168.2.1にroute add 192.168.1.0 255.255.255.0 gw 192.168.2.2

2つの異なるLinuxディストリビューション(ZentyalとUbuntu)で試してみましたが、何も機能しません。

ネットワークAのホストは192.168.2.2、ただしネットワークB内の他のホストにはpingできず、その逆も同様です。何が悪いのですか?

3
user4104

次の静的ルートを設定する必要があります。

オン 192.168.1.1ルーター:

192.168.2.0/24 next hop 192.168.1.2

オン 192.168.2.1ルーター:

192.168.1.0/24 next hop 192.168.2.2

このようにして、これらのネットワーク内の他のコンピューターは、デフォルトゲートウェイ(.1)にパケットを送信します。デフォルトゲートウェイは、静的ルーティングテーブルエントリを使用して、パケットをLinuxボックスに転送し、次に、そのパケットを他のネットワークに転送します。

3
Tero Kilkanen

私が正しく理解した場合、あなたはこのネットワークを持っています:

+-------+       +----------+       +-----------+       +----------+       +-------+
| LAN A | <---> | Router A | <---> | Linux Box | <---> | Router B | <---> | LAN B |
+-------+       +----------+       +-----------+       +----------+       +-------+

だから、これは本当です:

  • LAN A内のすべてのホストのデフォルトゲートウェイは192.168.1.1に構成されています。
  • LAN B内のすべてのホストには、デフォルトゲートウェイが192.168.2.1に設定されています。

実際のところ、LAN AのホストもLAN Bのホストも他のネットワークの存在を認識していないため、デフォルトゲートウェイにパケットを送信します。デフォルトゲートウェイがそれを認識しており、そこに到達するためのルートがある場合、それらを使用します。したがって、基本的には、ルーターでこれらのルートを作成するか、ホストのデフォルトゲートウェイをLinuxボックスに変更する必要があります。ルーターに静的ルートを作成するオプションがない場合、またはルーターにアクセスできない場合は、2番目のオプションに進む必要があります。

間違えた場合は、少し説明してください...

チャ!

1
Stefano Martins

他のネットワークの個々のボックスにルートを設定する必要があります。したがって、たとえば192.168.1.14では、route add 192.168.2.0 255.255.255.0 gw 192.168.1.2

0
John