tun/tap 接口与物理设备通信

art*_*rxe 5 networking tunnel

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

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

现在,让我们假设我tunIP12.12.12.1创建了一个。如果这台机器上我有两个网卡,我将能够与这种沟通tun(对12.12.12.1IP来自外部机器(比方说12.12.12.2))无论什么NIC设备的第二机器连接到(假设eth0eth1) ?

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

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

ldx*_*ldx 8

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

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