如何为单个KVM虚拟机configuration多个Tap接口?

我正在尝试使用Linux KVM为F5 BIG-IP VE部署设置虚拟机(在实验室中使用) https://support.f5.com/content/kb/zh-cn/products/big-ip_ltm/manuals/ product / bigip-ve-kvm-setup-11-3-0 / _jcr_content / pdfAttach / download / file.res / BIG- IP®_Virtual_Edition_Setup_Guide_for_Linux_KVM.pdf。

该虚拟机需要3个不同的networking接口(pipe理,外部连接和内部连接)

我一直试图在/ etc / network / interfaces中使用以下configuration来设置这些连接:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp # This is an autoconfigured IPv6 interface iface eth0 inet6 auto auto br0 iface br0 inet dhcp pre-up ip tuntap add dev tap0 mode tap user root pre-up ip tuntap add dev tap1 mode tap user root pre-up ip tuntap add dev tap2 mode tap user root pre-up ip link set tap0 up pre-up ip link set tap1 up pre-up ip link set tap2 up bridge_ports all tap0 tap1 tap2 bridge_stp off bridge_maxwait 0 bridge_fd 0 post-down ip link set tap0 down post-down ip link set tap1 down post-down ip link set tap2 down post-down ip tuntap del dev tap0 mode tap post-down ip tuntap del dev tap1 mode tap post-down ip tuntap del dev tap2 mode tap 

尽pipe每当我去configuration虚拟机时,只有一个tap接口会显示为与桥相关联。 我花了4-5个小时,试图让这些接口工作,没有任何运气。 我在这里做错了什么?

在这里输入图像说明

所有你需要在主机上设置的是桥梁。 configuration虚拟网卡并将其附加到虚拟机时,虚拟机启动时会自动创build虚拟网卡。

现在,没有阅读实际的指南,看起来你需要三个不同的networking上的三个接口。 如果将所有虚拟网卡插入同一个网桥(实际上是一个虚拟交换机),则它们都将在相同的L2networking上。 当然可以通过简单的子网划分,但是如果要使用VLAN,则需要在每个VLAN标记的接口上创build一个单独的网桥,并相应地插入虚拟NIC

Dyasny的答案是正确的,但根据您希望如何devise虚拟机pipe理程序上的networking堆栈,遗漏了可能有用的信息。 网桥本身支持使用子接口的VLAN标记(例如桥0上的VLAN 10的br0.10)。 这样,您就可以从网桥产生子接口,而不是绑定到各个以太网设备子接口的网桥。 这可以大大简化您的networking堆栈,如果您在主机上使用通用结构中的多个VLAN进行操作。

这些VLAN标记的子接口既可以作为给定虚拟机网卡configuration(如br0.10)中的主机设备直接使用。 当以这种方式使用时,虚拟机将使用虚拟以太网设备在给定VLAN上进行通信,就好像它是本机一样。 没有标签将在客人内部发挥作用。 如果你需要更多的VLAN,你将不得不模拟更多的网卡,而这些网卡仍然可以是来自同一个网桥的子接口。 如果您已经使用了子接口,则它们不能成为网桥根(br0)。

或者,通过使用桥接“根”接口(例如br0)连接VM TAP接口,VM本身既可以访问桥上的本地VLAN,也可以创build标记接口会做主机。 这可以允许在一个虚拟NIC中访问guest虚拟机中的多个VLAN,从而简化了访问多个VLAN的计算机的部署。 虚拟机只能标记在主桥上被标记的VLAN。 这样,主桥充当VLAN数据库和ACL,就像典型的交换机一样。

甚至可以selectOpen vSwitch,通过更好的界面可以完成同样的活动。

示例configuration:

我将所有桥梁下面的所有东西都遗漏掉,因为在这个第二层讨论中它们并不是非常有用。 以下是在主桥上使用带标记的子接口来提供VLAN ACL集的示例,同时使用主桥本身来连接您的分接接口。

 $> cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0 

 $> cat /etc/sysconfig/network-scripts/ifcfg-br0.10 DEVICE=br0.10 TYPE=Bridge ONBOOT=yes BOOTPROTO=none VLAN=yes 

一旦完成了所有这些(或者类似的),使用br0作为你的接口来连接你的VM TAP接口,并且你现在可以在VM中为VLAN 10创build一个带标记的接口。桥可以处理VLAN,作为VLAN中继。