ワイヤレスAd Hocネットワークで3台のコンピュータをどのようにルーティングしますか?

ワイヤレスAd Hocネットワークで3台のコンピュータをどのようにルーティングしますか?

192.168.2.1、192.168.2.2、192.168.2.4など、3台のコンピュータがワイヤレスAd-hocネットワークに接続されています。 192.168.2.3と通信するときは、192.168.2.1のすべてのトラフィックが192.168.2.2を通過するようにしたいと思います。オリジナル

192.168.2.1 <---> 192.168.2.2 <---> 192.168.2.3

ルーティングテーブルを変更するには?

私は試した:

[email protected]:   sudo ip route add 192.168.2.3 via 192.168.2.2 dev wlan0

[email protected]:   sudo ip route add 192.168.2.1 via 192.168.2.2 dev wlan0 

192.168.2.2で転送を有効にしましたが、機能しました。ところで、192.168.2.1でルートを追跡すると、192.168.2.3に直接行くように見えます。これで、いくつかのノードを追加し(以下の192.168.2.1のルートテーブルを参照)、Tracerouteを実行してもまだ1つのホップを取得します。ただし、192.192.2.2にログインして192.168.2.5パスを追跡すると、正しいホップ数が表示されます。

**ROUTE TABLE OF 192.168.2.1**

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     303    0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.2.3     192.168.2.2     255.255.255.255 UGH   0      0        0 wlan0
192.168.2.4     192.168.2.2     255.255.255.255 UGH   0      0        0 wlan0
192.168.2.5     192.168.2.2     255.255.255.255 UGH   0      0        0 wlan0


**ROUTE TABLE OF 192.168.2.2**

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
169.254.0.0     0.0.0.0         255.255.0.0     U     303    0        0 wlan0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.2.4     192.168.2.3     255.255.255.255 UGH   0      0        0 wlan0
192.168.2.5     192.168.2.3     255.255.255.255 UGH   0      0        0 wlan0

ノードはキャッシュを実行できますか?

編集する。これで合計10個のノードがあり、これが私のTracerouteの出力です。

traceroute -4 192.168.2.10

traceroute to 192.168.2.10 (192.168.2.10), 30 hops max, 60 byte packets
1  192.168.2.2 (192.168.2.2)  10.140 ms  10.324 ms  10.398 ms
2  192.168.2.3 (192.168.2.3)  17.292 ms  17.483 ms  17.564 ms
3  192.168.2.4 (192.168.2.4)  25.646 ms  25.708 ms  26.110 ms
4  192.168.2.5 (192.168.2.5)  34.156 ms  34.416 ms  34.501 ms
5  192.168.2.6 (192.168.2.6)  44.131 ms  44.479 ms  44.560 ms
6  192.168.2.7 (192.168.2.7)  51.382 ms  43.074 ms  46.144 ms
7  192.168.2.8 (192.168.2.8)  46.129 ms  43.374 ms  53.956 ms
8  192.168.2.9 (192.168.2.9)  58.156 ms  83.625 ms  83.642 ms
9  192.168.2.10 (192.168.2.10)  83.565 ms  84.008 ms  89.355 ms

ベストアンサー1

ルータは他のルータにICMPリダイレクトパケットを直接送信するように指示できます。どちらも同じネットワークにあるので、これが可能であることを知っています。

私は3つのLinuxマシン(mach1 <-> mach3 <-> mach2)の間にあなたと同じパスを設定し、pingを使ってテストしました。

mach1# ping mach2 
PING mach2 (x.x.x.237) 56(84) bytes of data.
From mach3 (x.x.x.238): icmp_seq=1 Redirect Host(New nexthop: mach2 (x.x.x.237))
64 bytes from mach2 (x.x.x.237): icmp_seq=1 ttl=63 time=0.537 ms

mach3 および mach2 の Tcpdump は、mach3 が mach1 にリダイレクトを送信し、すべてのトラフィックが mach1 と mach2 の間で直接移動することを示します。

リダイレクトは逆の方法で使用できるため、少し不思議と見なすことができます。つまり、3番目のシステム(中間者)を介してトラフィックを送信する方法です。たとえば、参照してください。https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked

リダイレクトの送受信は、いくつかのsysctlsを使用して制御できます。

net.ipv4.conf.*.accept_redirects
net.ipv4.conf.*.send_redirects

ルータでnet.ipv4.conf.eth0.send_redirectsを0に設定し、ルーティングをリセットした後、すべてのトラフィックがmach3を通過しました。

これでスイッチネットワーク(およびVM)でこれをテストしたので、WLANを使用すると状況が変わるかどうかはわかりません。マシンがイーサネットアドレスに向かうフレームだけを処理する場合、私はこれを行うべきではないと思います。しかし、理論的には空からすべてのフレームを引き出すことが可能です。

おすすめ記事