C 处理linux内核数据包路由的更好方法
下面是一个场景-C 处理linux内核数据包路由的更好方法,c,linux-kernel,routing,network-protocols,packet,C,Linux Kernel,Routing,Network Protocols,Packet,下面是一个场景- 我有两个接口wlan0和test0(逻辑) 我不能控制wlan0设备驱动程序,我可以完全控制test0设备驱动程序(xD) test0实际上使用wlan0发送一些数据包(内部) wlan0没有关联的ip,但test0有 现在,当我尝试向连接到wlan0的任何设备发送ping命令时。数据包到达目标设备,目标设备以ping响应进行响应。数据包在wlan0接收并推送到ip协议。但ip协议会丢弃数据包,因为在尝试在内核内路由数据包时,存在与wlan0关联的ip协议 因此,我天真地更改了
因此,我的问题是,在这种情况下,处理数据包路由的更好方法应该是什么。您可以桥接这两个接口并为桥接接口分配一个IP地址。因此,连接到wifi的机器应该可以通过接口test0访问。不幸的是,这对我的情况没有帮助(已经测试过)由于test0在通过wlan0中继数据包之前添加了一些额外的报头,因此没有test0的设备可以向有test0的设备发送数据包,但情况并非如此,因为在后一种情况下,接收设备将丢弃数据包。