次のレイアウトを使用して2つの異なるネットワークを接続しようとしています。
ネットワーク1には、IP 10.0.0.1のLinux Router1を介してEthernetインターフェイス(eth0)を介して接続された10.0.0.2/24のIPアドレスのコンピュータ/ノートブックがあります。 Linux Router1でIP転送を有効にしたら、Computer1からLinux Router2にパケットを転送できます(Computer1からRouter2をpingできます)。
ネットワークパケットを転送するLinux Router2を使用して、Computer2からRouter1へのリバースパスを実行することもできます。
しかし、私が達成したいのは、このネットワークでComputer1とComputer2の間で通信を確立することです。
たとえば、Computer1でComputer2をpingし、その逆も同様です。
Linux設定(iptables、パステーブルなど)を使用してこれを行うにはどうすればよいですか?
答え1
提供されたルートでは不可能です。 (少なくとも、プロキシarpの不要な複雑さをすべて含めたい場合は除外されます。)
ルーターアドレスに誤字がある可能性があり、実際にはサブネットを共有しますが、図に示すように、ルーター192.168.0.1/24と192.168.1.1/24の間にはパスがありません。サブネットマスクを/ 23に変更するか、ルーターを同じ/ 24サブネットに配置します(例:192.168.1.x / 24)。
この問題が解決したら、10.0.0.x/24のすべてのデバイスを10.0.0.1から10.0.1.x/24に、またはその逆にルーティングする必要があります。各ルーターには、リモート10.*ネットワークに到達するために反対側のルーターを通過するパスが必要です。
答え2
簡単に言えば、router1はおそらく知らず、10.0.1.0\24
router2も知らないでしょう10.0.0.0\24
。したがって、router1とrouter2に静的ルートを設定して、まだわからないネットワークの場所にパケットを送信するように指示する必要があります。
コンピュータ1は、自分が知らないものをすべてルータ1に送信することを既に知っており、コンピュータ2は、自分が知らないすべてをルータ2に送信しているようです.
次のコマンドを使用できます。
ip route add ...
10.0.1.0\24
すべてのトラフィックをrouter2(ダイアグラムの192.168.1.1)に送信するようにrouter1に指示する必要があります。
10.0.0.0\24
すべてのトラフィックをrouter1(図の192.168.0.1)に送信するようにrouter2に指示する必要があります。