我已阅读了大量有关 KVM 桥接网络中的 VLAN 标记的资料,但对于需要标记的内容(物理网络设备或连接到这些设备的桥接器)以及 VM 客户机是否需要标记其内部设备或当客户机虚拟 NIC 连接到标记桥接器时在主机端发生这种情况感到非常困惑。
免责声明:我根据从一些博客文章/技术页面中收集到的零碎信息做出了以下假设。就像很多事情一样,似乎有很多方法可以完成一项任务。如果我完全错了,有人知道一个好的指南,请将 URL 发送给我,我会修改我所做的,如果它不起作用,我会回来
我有许多 KVM 虚拟主机(包括它们的客户机)当前都连接到一个网络。
我想对此进行分段,以便逻辑上为少数客人(但显然不是所有客人)使用单独的网络。我阅读了大量有关如何实现此目的的资料,但对实际过程有一些基本疑问。
设置:
kvm主机1
- eth0
br0
kh1guest1
- eth0(连接到 kvmhost1 br0)
kh1guest2
- eth0(连接到 kvmhost1 br0)
kvm主机2
- eth0
- br0
br0.10(标记 VLAN10)
kh2guest1
- eth0(连接到 kvmhost2 br0)
kh2guest2
- eth0(连接到 kvmhost2 br0.10)
kvmhost3
- eth0
- br0
br0.10(标记 VLAN10)
kh3guest1
- eth0(连接到 kvmhost3 br0)
kh3guest2
- eth0(连接到 kvmhost3 br0.10)
我在这里做了一些假设:
- 为了使整个系统正常工作,所有主机/客户机都需要启用 802.1q
- 所有需要访问标记 VLAN 的带访客的主机都需要一个额外的网桥,标记到 VLAN 上
- 任何需要访问标记 VLAN 的客户虚拟机都需要将其网络连接到标记网桥(主机上的 br0.10)
请原谅我的无知,但我对 VLAN 的了解非常有限,到目前为止我只在物理层面上处理过它们(NIC 插入 VLAN 交换机端口)
任何帮助都将非常有帮助,甚至能提供实现这一目标的正确方法的指南。
答案1
您的设置从逻辑上来说没有问题。
这些访客将能够互相看到,因为他们在本机 vlan 中:
kh1guest1、kh1guest2、kh2guest1、kh3guest1
这些访客将能够互相看到,因为他们在 VLAN 10 中:
kh2guest2、kh3guest2
您的交换机管理员可能需要将您的交换机端口配置为“中继端口”,以便能够传递您添加的 vlan 标记。让他们知道您已设置的内容以及您对 vlan 标记的要求。
如果您处于大型托管网络中,那么您可能需要请求分配给您一个 vlan 号码,因为其他网络已经有 vlan10。
将 vlan 标记视为以太网帧周围的“包装器”。您只需定义一个位置来添加/删除包装器。以下所有内容均有效,粗体界面显示标记完成的位置:
- 线路 -> 主机 eth0 -> 主机 br0 -> 主机br0.10-> 客户 eth0
- 线路 -> 主机 eth0 -> 主机eth0.10-> 主机 br10 -> 客户机 eth0
- 线路 -> 主机 eth0 -> 主机 br0 -> 客户机 eth0 -> 客户机eth0.10
如果要在主机上绑定物理接口,则不能将带有 vlan 标记的接口添加到绑定中。因此,以下配置有效:
- 电线 -> 主机 ethX -> 主机 bond0 -> 主机 bond0 -> 主机 br0 ->主机 br0.10-> 客户 eth0
- 线路 -> 主机 ethX -> 主机 bond0 -> 主机债券0.10-> 主机 br10 -> 客户机 eth0
- 线路 -> 主机 ethX -> 主机 bond0 -> 主机 bond0 -> 主机 br0 -> 客户机 eth0 -> 客户机eth0.10
这是错误的:
- 线路 -> 主机 ethX ->主机 ethX.10-> 主机绑定 -> 等等
答案2
最好的选择是这样做:
- 标记接口(或绑定) - 例如 eth0 -> eth0.100(或 eth0+eth1 -> bond0 -> bond0.100)
- 在标记接口之上搭建桥梁
- 将虚拟机插入网桥
这样,所有往返于虚拟机的流量都将被标记。对于未标记的流量,最好在未标记的接口上创建另一个桥接器,并将另一个虚拟机网卡插入该桥接器
答案3
简单的规则是,连接应该在两端(主机端和客户机端)均未标记,或者在两端均标记。
访客通常不需要标记支持。现在,请忽略您处于虚拟化环境中的事实。如果每个“访客”是物理机器,它将如何设置?然后在 KVM 中实现相同的操作。
您可能希望在 kvmhost2 和 kvmhost3 上有两个桥接器,br0 和 br1。br1 可以将 eth0.10 作为成员。然后,kh2guest2 和 kh3guest3 可以将其 eth0 连接到各自主机的 br1。