环境:
嵌入式系统,Busybox-1.00版本,IPV6网络环境,DHCPV6动态获取网关和路由信息。
问题:
当使用route命令尝试删除默认网关:route -A inet6 del ::/0 gw 2001::1 dev br0
操作失败,系统温馨提示: SIOC[ADD|DEL]RT: No Such Process
分析:
Busybox-1.00是enbale了IPV6的支持选项的。同时从DHCP Server处获取的默认网关也是正确的。使用 route -A inet6 命令获取默认网关的相关信息如下:
Destination Next Hop Flag Metric Ref Use Iface
2001::1/64 ::/0 U 1024 0 0 br0
从Busybox-1.00的源码入手分析route del命令。route命令对应的源文件位于: busybox-1.00/networking/route.c位置处。从代码中查找"SIOC[ADD|DEL]RT: No Such Process"错误字符串,未果。发现在代码的440行,有一个函数调用可能比较相关:
00439: if(ioctl(skfd, ((action==RTACTION_ADD) ? SIOCADDR

在嵌入式系统Busybox-1.00的IPV6环境中,删除默认网关时遇到"SIOC[ADD|DEL]RT: No Such Process"错误。分析发现是Busybox的route命令在删除时传入的metric值不正确,内核期望的是1024,而Busybox传递了1。修复方法是将 Busybox 源码中route命令的metric设置为0,以忽略参数检查。
最低0.47元/天 解锁文章
3063

被折叠的 条评论
为什么被折叠?



