Linux 桥接情况下的 VM 主机管理

Linux 桥接情况下的 VM 主机管理

我有一个虚拟机主机(vm-host),它运行两个 qemu-kvm 虚拟机轻敲模式。这意味着网络拓扑如下所示:

网络设置

由于我需要vm-host通过 VLAN 123 进行管理,我看到了三种方法:

  • eth0.123在中创建一个接口vm-host并将管理 IP 配置为eth0.123
  • eth0.123我在和之间创建一个桥梁br0,并将管理 IP 配置为br0
  • 我将管理 IP 直接配置为eth0invm-host并配置r1为在将管理流量发送到之前删除管理流量的 VLAN 标记 123vm-host

有没有一种设计明显优于其他设计?我猜想,从角度来看,第三种设计选项是最好的,vm-host因为服务器不需要像前两个选项那样弹出 VLAN 标签,并且管理流量帧不会像前两个选项br0那样通过 Linux 交换机。的第二个选择。换句话说,这似乎是最简单的设计选项。第二个选项似乎是最糟糕的一个,因为我看不出通过 Linux 桥传输流量有任何优势。

答案1

如果你的盒子有多个 VLAN(在同一接口上),我会将它们全部标记上。 (而不是例如两个标记和一个未标记。)这使得以后更容易弄清楚配置,因为它明确了所讨论的 VLAN 是什么。无论如何,盒子必须处理 VLAN 标签,这并不是说它会成为瓶颈(与解析 IP/TCP/SSH/其他内容相比)。

另外,如果您确实不需要将管理 VLAN 桥接至任何设备,则无需将其放入网桥中。不为其创建网桥可以清楚地表明,所讨论的 VLAN 不适用于您的虚拟机,而是适用于主机本身。 (假设每个 VLAN 网桥。)

因此,在这些选择中,我将管理放在 eth0.123 上。

另一方面,您可以将整个独立的 NIC 专用于管理。除了保持事物干净和独立之外,它还有一个优点,即管理流量和虚拟机不会争夺相同的带宽。即使虚拟机网络上的极端流量也无法直接淹没管理访问。 (当然,假设盒子本身和开关可以跟上。)

(我不确定是否有任何“硬”理由去做其中之一。正如你所说,有几种方法可以做到这一点,这可能取决于个人喜好。如果有疑问,请使用最简单的方法.)

答案2

  1. eth0.123 上的管理 ip

    缺点 - 标记和未标记的流量都在网桥中流动,因此虚拟机可能会伪造 vlan123。为了防止它,您需要在网桥中过滤标记的流量(ebtables工具)

    ebtables -t filter -A FORWARD -p 0x88a8 -j DROP
    ebtables -t filter -A FORWARD -p 0x8100 -j DROP
    
  2. 每个 VLAN 网桥(如 @ilkkachu 所说)是可能的,但它会杀死那里并且“未标记”网桥(直接绑定到物理接口)遇到与 1 相同的问题

  3. 必须可以在网桥 (br0.123) 上设置 VLAN,但它又与 1 非常相似,并且混合多个 VLAN 的网桥可能会受到 VLAN 之间 MAC 地址不唯一的影响。

  4. 在路由器上操纵 VLAN,使两个 VLAN 都未标记,看起来很混乱,并且在安全方面不提供主机管理和突发之间的隔离。但有可能,路由器上基于 MAC 的 VLAN 可能是合理的。如果目标是隔离广播域,但不能安全地将主机与虚拟机隔离。

相关内容