如何修复 ad-hoc 网络中的路由

如何修复 ad-hoc 网络中的路由

我有 4 个通过 ad-hoc 网络连接的树莓派。他们的地址如下:
169.254.1.1
169.254.1.2
169.254.1.3
169.254.1.4

我需要按如下方式修复路线:
169.254.1.1-->169.254.1.2-->169.254.1.3-->169.254.1.4
目前,我正在将 BATMAN 协议用于网状自组织网络。
我尝试过ip路由添加命令但它不起作用。


编辑
我尝试使用 ebtables 来过滤来自MAC地址使用

$ebtables -A INPUT -s [*mac address*] -j DROP   

规则添加正确,但不起作用,也许我的语法有问题......

答案1

除非你使用的是非常旧的蝙蝠侠,否则蝙蝠侠会继续前进第2层

2007 年初,BATMAN 开发人员开始尝试在第 2 层(以太网层)而不是第 3 层上进行路由的想法。为了与第 3 层路由守护程序区分开来,选择了后缀“adv”(表示:高级)。它不是根据通过 UDP/IP 交换的信息来操作路由表,而是提供虚拟网络接口并自行透明地传输以太网数据包。自 2.6.38 起,batman-adv 内核模块已成为官方 Linux 内核的一部分。

这意味着ip route条目不会执行任何操作,如果您想控制路由,您需要通过内核接口直接与 BATMAN 交互(/proc如果我没记错的话,在 )。


这可能已经严重过时了,但当时我可以使用蝙蝠控制获取有关特定 BATMAN 节点正在执行的操作的详细信息,包括邻居列表、第 2 层 ping、第 2 层跟踪路由和内部调试表。

它可能会或可能不会覆盖邻居和路由表,我从未尝试过。

我的笔记提到了/sys/kernel/debug/batman_adv/bat0/neighborsand /sys/class/net/*/batman_adv(所以它是 on /sys,而不是 on /proc),但我不再运行 BATMAN,我忘记了详细信息,并且您可能必须在内核模块中的某处启用调试。

相关内容