インターフェイス間のルーティング方法

インターフェイス間のルーティング方法

私は次の設定を持っています:

                         (192.168.4.1)     
   Device A     <------->   device B   <------->   Device C
(192.168.5.84)           (192.168.5.1)          (192.168.4.5)

wlan0 = 192.168.4.1デバイスBには、実際にDHCPサーバーが動作するWi-Fiインターフェース()があります。その後、ケーブルインターフェース(eth0 = 192.168.5.1)があります。

私が達成したいのは、デバイスAとCが互いに対話できることです。私はこの結果を取得する方法を読んでおり、これを行うにはルーティングを使用する必要があることがわかりました。いくつか試してみましたが、なぜ動作しないのかわかりません。

デバイスAには固定IP(サブネット255.255.255.0とゲートウェイ192.168.5.1)があります。

デバイスCはDHCPサーバーからIP(サブネット255.255.255.0とゲートウェイ)を受信します。192.168.4.1

私がしたこと:

デバイスBIでipforwardを有効にする/etc/sysctl

パスを追加:

iptables -A FORWARD -i eth0 -o wlan0 -s 192.168.5.0/24 -d 192.168.4.0/24 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -s 192.168.4.0/24 -d 192.168.5.0/24 -j ACCEPT 

問題は、デバイスAとCの両方がデバイスBから接続できることであるため、これはルーティングの問題であることは間違いありません。それで、私の質問は、デバイスBがAからCにトラフィックをルーティングするポイントにどのように到達できるかということです。


修正する:私が言及していないのは、デバイスBの設定だけを変更してこの結果を得たいということです。

答え1

iptablesを使用する必要はありません。 IP転送を正常に有効にした場合(たとえば、に設定/proc/sys/net/ipv4/ip_forward)、1両方のネットワークがBに直接接続されているため、デバイスBは操作を実行します。デバイスAとCで正しいルーティングが失われる可能性があります。
Aへ:

ip route add 192.168.4.0/24 via 192.168.5.1

Cで:

ip route add 192.168.5.0/24 via 192.168.4.1

関連情報