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接口一样.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...