似乎还有一些人有类似的问题,但我认为他们是特别具体的。我想我可能会遇到一个普遍问题。在Linux中点击设备没有正确传递ARP/IP数据包?
我在连接到另一个网络的Linux(在C中创建)中有一个TAP设备,并且我希望我的计算机能够通过此TAP设备与其他网络进行通信。
我可以看到明确使用wireshark的arp数据包,但是我的内核不会对它们做出响应。我曾尝试配置网桥并设置网桥的IP地址无济于事。我也尝试过桥接物理硬件,出于某种原因,Linux似乎并没有将数据传递给其他网络。
如果我设置了静态ARP路由,看起来这个Linux机器不会响应ping到其上的设备。
# ifconfig tap0 up
# brctl addbr br0
# brctl addif br0 tap0
# brctl addif br0 eth9
# ifconfig br0 up
我可以尝试将br0,eth9或tap0设置为IP,但没有回复ping或arps。即使我摧毁了桥,也没有任何东西。
我觉得我想要的是一个“假装”的界面。就像“这是一张假的以太网卡”一样。我觉得这应该可以用水龙头。
类似的问题:
Linux TUN/TAP: Unable to read data back from TAP devices
Why aren't ARP or ICMPv6 packets processed by a Linux TAP device
ARP不会被路由,因为第2层广播不能被路由(第2层帧到达层3,例如路由之前剥离)。 ARP可以桥接,但桥接器不理解第3层,例如, IP。你不应该桥接两个不同的IP网络。我想你误解了网络层和TUN/TAP的目的。 –