Tap界面和普通界面有什么区别?

all*_*len 11 linux networking

我正在研究虚拟网络。

我看到了制作 Tap 接口并将它们添加到 Open Virtual Switch 的 youtube 视频。

从这里开始,我不知道什么是 Tap 接口。

像eth0这样的普通接口和tap接口有什么区别?

Tap 接口只是虚拟的 L2 接口来添加到 OVS 吗?

如果它是对的,tap 接口没有附加到 OVS 的目的是什么?

ysd*_*sdx 13

OpenVSwitch 是一个虚拟交换机。它通过以原始数据包/以太网模式连接到多个以太网设备来工作。它通过从这些网络接口读取/写入原始以太网帧来在这些以太网设备之间切换以太网帧。

如果您想在真正的以太网设备之间切换,这很好。如果要将 VM 连接到 Open V Switch 实例,则需要将 Open V Switch 附加到代表您与此 VM 连接的虚拟以太网设备:将数据包写入此虚拟网络接口应将以太网帧发送到 VM 并发送数据包由 VM 应发送到此虚拟网络接口。

TAP 网络接口就是为此而设计的。它们代表虚拟以太网设备。TAP 网络接口由一些用户进程管理:

  • 当一个以太网帧发送到网络接口时,用户进程接收这个以太网帧;

  • 用户进程可以向这个网络接口发送以太网帧。

这通常用于:

  • VPN(例如 OpenVPN):当以太网帧发送到 TAP 网络接口时,VPN 进程接收它并在隧道中转发它。相反,当用户进程从隧道接收到以太网帧时,它会将它们转发到 TAP 接口;

  • 虚拟机:当以太网帧发送到 TAP 接口时,虚拟机管理程序/模拟器接收它并将其转发到 VM。相反,当 VM 向其接口发送数据包时,管理程序/模拟器将其转发到 TAP 接口。

对于 Openvswitch,您通常会创建一个 TAP 接口,代表您与 VM 的连接,然后可以将此网络接口连接到 OpenVSwitch。