AODV协议移植到arm平台上时不能实现多跳

围观大神 2017-03-08 06:10:50
我先详细描述下我的情况以及遇到的问题:
我修改了AODV-UU-0.9.6协议,使其可以移植到linux3.0.1的内核上,但移植了之后测试多跳的时候出现了问题。
三个节点都是ARM板(OK6410)+Linux3.0.1系统(以下称为节点A,B,C)。
我将kaodv.ko编译进了内核,然后放入了ARM中,网络的配置也都是按照网上所说,模式为ad-hoc,网络都配置在了一个网段192.168.1。然后将三个节点分别执行./aodvd应用程序,每个节点都能搜到剩余的两个相邻节点,查看路由表也能看到邻节点的路由,A,B,C都能相互ping通。
起初我用iptables的方式在节点A屏蔽了C的mac地址,其实说屏蔽也不对,就是用这个命令过滤掉C发来的包,让A只接受又B转发过来的包。
iptables –A INPUT –p ALL –m mac –mac-source 74:e5:0b:ef:66:f2 –j DROP
此时A的路由列表中没有C了,只剩下了B,然后节点A和节点C就不能ping通了(也就是没有通过B进行转发),后来我看大家的帖子说iptables有可能与AODV内的hooc函数有冲突,所以我进行了拉开测试:
将A与C放的足够远,使之搜索不到对方的路由,再加入B,使之既能搜索到A也能搜索到C,此时A的路由列表中只有B,C的路由列表中也只有B,但这时用A去pingC,仍然不能ping通,也就证明中间节点B没有实现转发。
我看了大家之前讨论的帖子我打开内核里的IP:advanced router选项,ip_forward也设置的是1。
这个问题已经卡了我半个月了,我所能尝试的各种方法全都试过了,真的不知道错在哪里,恳请大神拯救!!!

版本相关:
内核 Linux3.0.1
交叉编译器 arm-linux-gcc-4.3.2
路由协议 aodv-uu-0.9.6.tar
网卡 rt3070

命令:
#insmod rt3070sta.ko
#ifconfig ra0 up
#iwconfig ra0 mode ad-hoc essid aodv-test
#ifconfig ra0 192.168.1.2 up
# insmod kaodv.ko
#./ aodvd

恳请大神拯救!!!!!!!
...全文
514 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43564746 2018-10-31
  • 打赏
  • 举报
回复
楼主好,请问可不可以将aodv-uu-0.9.6协议移植到linux3.0.1的教程发我一份,邮箱1004383768@qq.com,谢谢
yuyangxinhua 2017-05-16
  • 打赏
  • 举报
回复
我只做过在虚拟机ubuntu10.04上aodv-uu-0.9.6的安装,并且实现了多跳实验。没有在arm平台上做过,在此说说在虚拟机上的过程,希望对你有帮助。 在安装好aodv-uu-0.9.6之后, 1、首先需要停用net-manager。执行命令: /etc/init.d /network -manager stop 如果之后想要重新启动network-manager ,执行以下命令: /etc/init.d /network -manager restart 2、需要开启路由转发功能 执行命令: vi /etc/sysctl.conf 在文档的后面添加: net.ipv4.ip_forward = 1 3、多跳实验 3台电脑以L形放置 B--------------C | | | A A 和C之间不能直接通讯,直接找一个建筑物拐角处,将3个节点按上面的位置安放。 保持aodvd一直运行,使用ping -R IP 来实现路由路径查询 你能不能将aodv-uu-0.9.6协议移植到linux3.0.1的教程发我一份,谢谢! 我的邮箱:1187386151@qq.com
snow_wind_001 2017-04-08
  • 打赏
  • 举报
回复
我也出这个问题了,请教楼主搞定了吗

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧