写入TUN / TAP设备的数据包究竟发生了什么?

我试图将数据包发送到从机器的用户空间监听eth0的应用程序,就好像它们来自远程机器一样。

我似乎无法find良好的文档是TUN / TAP设备与networking堆栈其余部分交互的确切方式? 如果数据包被绑定到远程主机,是否转发到eth0? 将本地主机寻址的数据包默认转发到用户空间应用程序? 数据包在Netfilter堆栈中相对于Netfilter堆栈出现在什么阶段?

行为没有出现很好的logging( http://openvpn.net/archive/openvpn-users/2005-05/msg00224.html,https://www.kernel.org/doc/Documentation/networking/tuntap.txt ))。

tun tap设备与内核看起来是一样的,它不能分辨数据是来自连接到以太网接口的线路还是来自用户和应用程序。 当写入数据时,它会被转发到用户级应用程序,而不是物理接口设备。 为eth0

数据包转发的接口将像往常一样基于路由表,您可以使用ip routenetstat -r查看。 这也适用于为本地主机寻址的数据包。

此外,TUN / TAP接口也可以用作路由表中出现的路由的接口。