私は次の設定を持っています:
(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