我正在尝试在 Linux 内核版本 4.0 和 3.16 上实现自定义网络设备驱动程序。
并且它在链接上运行良好。但是,我最近发现设备在转发方面存在一些问题。
(device 1) (gateway) (device 2)
[ 自定义网络设备 ] - [ 自定义网络设备' + eth0' ] - [ eth0 ]
我进行了 ping 测试。以下是结果。
第一次 ping 测试(从设备 2 到设备 1)
ping请求消息到达设备1。ping响应消息到达网关。
但响应消息没有到达设备2。
第二次 ping 测试(从设备 1 到设备 2)
ping 请求消息到达网关。
但ping请求报文没有到达设备1。
设备驱动程序是在没有 arp 表的情况下实现的。 eth0'网络设备似乎收到了数据包。 eth0'网络设备的RX计数器增加,而TX计数器不增加。
我看到数据包在网关处被很好地传递到 IP 层。我对网关使用了命令“sysctl -w net.ipv6.conf.all.forwarding=1”。并利用radvd守护进程进行无状态自动配置。使用命令“ufwdisable”禁用网关处的防火墙。仅在使用我的自定义网络驱动程序时才会出现此问题,此症状似乎不是有关 eth1 网络设备的问题。请帮我
答案1
这个问题就解决了。很抱歉问了这个模棱两可的问题。自定义驱动程序使用 mac 广播发送 IP 数据包。我把这部分改成了mac单播,终于问题解决了。