Linuxボックスに2つのNICがあり、それぞれが異なるLANに接続されています。
192.168.1.0
255.255.255.0
192.168.2.0
255.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できず、その逆も同様です。何が悪いのですか?
次の静的ルートを設定する必要があります。
オン 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ボックスに転送し、次に、そのパケットを他のネットワークに転送します。
私が正しく理解した場合、あなたはこのネットワークを持っています:
+-------+ +----------+ +-----------+ +----------+ +-------+
| LAN A | <---> | Router A | <---> | Linux Box | <---> | Router B | <---> | LAN B |
+-------+ +----------+ +-----------+ +----------+ +-------+
だから、これは本当です:
実際のところ、LAN AのホストもLAN Bのホストも他のネットワークの存在を認識していないため、デフォルトゲートウェイにパケットを送信します。デフォルトゲートウェイがそれを認識しており、そこに到達するためのルートがある場合、それらを使用します。したがって、基本的には、ルーターでこれらのルートを作成するか、ホストのデフォルトゲートウェイをLinuxボックスに変更する必要があります。ルーターに静的ルートを作成するオプションがない場合、またはルーターにアクセスできない場合は、2番目のオプションに進む必要があります。
間違えた場合は、少し説明してください...
チャ!
他のネットワークの個々のボックスにルートを設定する必要があります。したがって、たとえば192.168.1.14では、route add 192.168.2.0 255.255.255.0 gw 192.168.1.2
。