哪个物理接口tun / tap设备连接到

 化妆造型师艾米 发布于 2023-01-29 15:19

我在了解tun / tap设备实际上如何工作时遇到了一些问题,这是Wiki上的内容

    虚拟网络设备实际如何工作?虚拟网络设备可以看作是简单的点对点或以太网设备,它不是从物理介质接收数据包,而是从用户空间程序接收数据包,而不是通过物理介质发送数据包,而是将其发送到用户空间程序。

假设您在tap0上配置了IPX,然后每当内核将IPX数据包发送到tap0时,该数据包就会传递到应用程序(例如VTun)。该应用程序将加密,压缩并将其通过TCP或UDP发送到另一端。另一端的应用程序对接收到的数据进行解压缩和解密,并将数据包写入TAP设备,内核像对待来自实际物理设备的数据包一样处理数据包。

可以,应用程序将其加密,压缩并通过TCP或UDP发送到另一端。

如果您有3个物理连接,每个物理连接都路由到Internet,那么tun / tap设备将使用哪个物理设备路由到Internet?

我很困惑,因为没有人真正谈论过tun / tap接口和实际物理接口之间的真正关系是什么

提前输入

1 个回答
  • 没有内在的联系。

    重要的是要了解,TUN / TAP或任何其他设备都不会进行路由。Internet协议(IP)路由是由IP堆栈处理的,它不能真正分辨出TAP接口和真实以太网接口之间的区别。IP堆栈从TUN / TAP接口接收的数据包是由同一台计算机上的程序生成的,并且当IP堆栈将数据包从TUN或TAP接口路由出去时,只有打开该接口的软件才能接收它们。可以将它们视为连接到软件的以太网端口,而不是实际的以太网网络。

    您似乎已经很好地理解了引用的示例。Vtun(软件)同时打开tap0接口和一个套接字,然后像其他任何IP流量一样对其进行路由。Vtun接收在tap0上收到的数据包,并使用加密和压缩对其进行封装,然后将其推出套接字。该套接字另一端上的Vtun的另一个实例(可能在另一台计算机上运行)将数据包从套接字解封装,并将其推出TAP接口,以供其内核的网络层处理。

    但是套接字根本不是TAP的一部分,而如何路由则取决于IP堆栈。如果两个Vtun实例都在同一系统上运行,则套接字不需要路由出物理接口。在这种使用情况下,可以完全删除套接字(以及加密和压缩)。您可能只有一个程序,无法在两个TAP接口之间复制数据。TUN / TAP规范中没有要求套接字或物理接口的任何内容。示例套接字是偶然的,Vtun程序的性质引入了此功能。

    因此,关于Internet的三个物理连接的问题与TUN / TAP无关,而与常规IP路由有关。答案很大程度上取决于您的特定配置。

    2023-01-29 15:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有