具有公共 IP 地址和 VLAN 的 KVM 虚拟机

具有公共 IP 地址和 VLAN 的 KVM 虚拟机

我的工作(ISP)要求我设置一台 KVM 主机,上面运行 2 台虚拟机;这三台虚拟机都应该有公共 IP 地址(主机 + 2 台虚拟机)。经过一番调查,我终于弄明白了如何满足公共 IP 地址要求,并成功设置了所有虚拟机。

基本上,连接到上行链路交换机的物理接口(例如,eth0)应该成为网桥的一部分,该网桥还包含来自虚拟机的虚拟接口(例如,veth0 和 veth1),并且主机的 IP 地址应该直接在网桥(例如,virbr0)上设置,而不是在物理接口 eth0 上设置(参见https://unix.stackexchange.com/questions/245628/configure-public-ip-addresses-in-kvm-vms)。一切都进展顺利,我对结果很满意。

但是,我脑海中浮现出一个假设但很可能出现的未来场景,但我不知道如何真正实现它。简单介绍一下,目前主机和虚拟机是网络中同一 VLAN 的一部分。假设我想在主机上添加另一个虚拟机,并且该虚拟机必须属于不同的 VLAN(或者我们可能需要主机位于不同的 VLAN 中)。这将需要以下内容:

  1. 上行交换机上具有相关 VLAN 的中继端口
  2. 桥接器上的中继端口与相关 VLAN
  3. 访问指向主机和虚拟机的接口上的端口

我担心的是,考虑到物理接口 eth0 现在是桥接器的一部分(如上所述),而不是真正属于 KVM 主机的独立接口,哪个接口应该是服务器上的中继端口。在这种情况下,应该在哪里启用相关的 VLAN ID?我觉得应该是物理接口 eth0,因为如果我理解正确的话,配置的工作原理如下图所示:

UPLINK-Switch-ether29(中继)->LinuxBridge-eth0(中继):
->virbr0(主机访问端口)
->veth0(虚拟机访问端口)
->veth1(虚拟机访问端口)

请让我知道我是否走在正确的轨道上,或者如何实现这个场景。

答案1

eth0 不再是一个独立的接口,仅就主机的知识产权堆栈是相关的,但另一方面,因为你已经将它添加到桥中,它 桥接端口– 如果您使用“桥接 VLAN 过滤”功能,则 eth0 是中继端口,而 virbr0(在命令中又称为“self” bridge vlan)是主机访问端口。

相关内容