5

我不清楚tun/tap界面是如何工作的。从维基百科,我得到了这个:

操作系统通过 TUN/TAP 设备发送的数据包被传递到用户空间程序,该程序将自身附加到设备上。用户空间程序也可以将数据包传递到 TUN/TAP 设备。在这种情况下,TUN/TAP 设备将这些数据包传递(或“注入”)到操作系统网络堆栈,从而模拟它们从外部源的接收。

现在,假设我tunIP12.12.12.1 创建了一个。如果在这台机器上我有两个 NIC,无论第二台机器连接到什么 NIC 设备(tun比如说或?IPeth0eth1

换句话说,tun和 NIC 是相互独立的,还是需要tun通过特定的 NIC 与 NIC 通信?

NB 欢迎提供有关主题的链接!

4

1 回答 1

4

如果你设置了一个虚拟网络,例如12.12.12.0/24可以通过你的虚拟接口访问,并且你从你的机器向这个网络发送一个数据包,实现 tun/tap 的内核模块将通过一个字符设备从内核发送这个数据包到你的应用程序。这取决于您的应用程序如何处理此数据包。它可以传输到其他一些应用程序(例如 VPN 服务器)。您的应用程序还可以通过此字符设备反馈数据包,操作系统网络堆栈会将这些数据包视为入口网络流量。

如果机器充当路由器,它可以只使用 tun/tap 虚拟接口作为常规接口并通过它转发流量,但它始终是处理设备的应用程序来管理数据包。通过虚拟接口的传出流量始终传递到您的应用程序,通过虚拟接口的传入流量始终来自您的应用程序。

于 2012-05-10T08:47:42.047 回答