我创建了一个 linux tun 接口、设置 ipaddr、广播等。使用 open/ioctl apis。这是tun界面的样子,
TEST_TUN: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none inet 45.45.45.1/24 scope global TEST_TUN valid_lft forever preferred_lft forever
由 tun_fd 接收由虚拟主机(绑定在 addr 45.45.45.1:udp=7070)写入的任何消息(在 tun 设备创建期间返回的 fd)。
如果 tun_fd 写入一个 msg ( IP(dst=45.45.45.1)+transport(udp_dst=7070)+payload) 在虚拟主机上没有收到。wireshark 捕获显示内核端正在接收数据包,但虚拟主机没有收到任何数据包。
内核不将数据包转发到虚拟主机的原因可能是什么?