Linux中的虚拟网络设备

前端之家收集整理的这篇文章主要介绍了Linux中的虚拟网络设备前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以详细解释veth对和tap接口有什么区别,以及这些设备如何连接到 linux bridge或openvswitch.

我找到了这个:
“Veth是一对特殊的网络设备,我认为它是一种改变流量方向的方法,也就是说,当外向方向流量从Linux协议栈发送到veth设备时,它被发送到另一个镜像veth设备,所以镜像将其视为方向流量,并将其放回Linux协议栈进行进一步的使用.

分接设备是逻辑网络设备,但与其他设备不同:它允许用户空间程序直接将流量注入到Linux协议栈中,并且可以从栈中检索流量.它在用户空间中打开了一个到2层的Linux协议栈(或3级Tun设备)的隧道,该堆栈会考虑用户空间中的数据,如方向流量“

但它并没有给我全部的照片.

提前致谢!

解决方法

这些虚拟网络工件的目的是类似的.但有微妙的差异,因此它们在不同的情况下使用:

> TAP:用户空间应用程序/ VM可以读取或写入以太网帧到分接口,它将到达主机内核,它将像任何其他以太网帧一样通过物理(例如eth0)端口到达内核.您可以将其添加到软件桥(例如linux-bridge)
> VETH:通常在尝试连接两个想要“获得”的实体(由于缺乏更好的短语)连接转发/接收帧的接口时使用.这些实体可以是container / bridges / ovs-switch等.假设您要将docker / lxc容器连接到OVS.您可以创建一个veth对,并将第一个接口推送到docker / lxc(例如,作为物理接口),然后将另一个接口推送到OVS.你不能用TAP这样做.

请注意,我们不应该误会我们需要使用VETH,而不要在使用OVS时点击.我们可以随时创建OVS中的内部端口,其行为与tap接口完全相同.但是,这并不总是可能的,例如当您想要连接到无法合成类似Tap的界面的实体时.即:

$ovs-vsctl add-port ovs-switch-name tap0

现在可以使用tap0,就像我们使用tap接口一样.

原文链接:https://www.f2er.com/linux/402751.html

猜你在找的Linux相关文章