使用自定义网络驱动程序在网关设备内转发问题

使用自定义网络驱动程序在网关设备内转发问题

我正在尝试在 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单播,终于问题解决了。

相关内容