Debian:我应该将 vlan 接口添加到 KVM 桥中吗?

Debian:我应该将 vlan 接口添加到 KVM 桥中吗?

我正在将 Debian Squeeze 盒设置为 KVM 主机。我想为每个 KVM 客户机添加多个接口,因此我希望它们位于不同的 VLAN 上。

读完这篇文章后,我认为最好的方法是向物理网卡添加多个逻辑 VLAN(子)接口,然后为每个 VLAN 接口创建一个桥接适配器,并将每个桥接器分配为 KVM 客户端的网卡。这有意义吗?还是疯狂?

我是否必须像这样将桥接接口与 KVM 一起使用?我不能只将 eth1.xx 和 eth1.yy 添加到下面的接口配置中,然后直接将它们配置为桥接 KVM 客户网卡吗?如果是这样,那么在下面的接口配置文件中应该如何显示?

user@host:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Management Interface
auto eth0
iface eth0 inet static
address 172.22.0.31
netmask 255.255.255.0
gateway 172.22.0.1

# Interface for guest VMs
auto eth1

# Guest1 : Use VLAN 117
auto eth1.117
iface eth1.117 inet manual
# Set up br1 for guest 1, bridging with vlan 117
auto br1.117
iface br1.117 inet manual
bridge_ports eth1.117
bridge_stp off

user@host:~$ uname -a
Linux hostname 3.4.9 #1 SMP Wed Aug 22 19:08:46 BST 2012 x86_64 GNU/Linux

更新

如果有人可以为我澄清一下配置,我会非常高兴,因为我也看到过用这种语法配置的上述内容,所以我不明白为什么一个比另一个更受青睐;

# Interface for guest VMs
auto eth1
allow-hotplug eth1
iface eth1 inet static

# Vlan 117 for guest 1
auto vlan 117
iface vlan111 inet static
vlan_raw_device eth1

# Guest 1 : NIC 1
auto br1.117
iface br1.117 inet manual
bridge_ports vlan117
bridge_stp off

回答

我同意 dyasny 关于拓扑的观点,并且很高兴使用以下与 Silopolis 的示例类似的配置:

# Mangement Interafce
allow-hotplug eth0
# Guest Interface
allow-hotplug eth1

# Guest 1
allow-hotplug vlan116
# Guest 2
allow-hotplug vlan117

# Management
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.1

# Guest 1
auto vlan116
iface vlan116 inet manual
vlan_raw_device eth1

# Guest 2
auto vlan117
iface vlan117 inet manual
vlan_raw_device eth1

allow-hotplug br116
allow-hotplug br117

# Guest 1
auto br116
iface br116 inet manual
bridge_ports vlan116
bridge_stp off

# Guest 2
auto br117
iface br117 inet manual
bridge_ports vlan117
bridge_stp off

答案1

据我了解,Debian 网络配置基础设施,使用brX.YYY不应该工作,因为它会在桥“上方”创建一个 VLAN 伪接口,而对此的支持才刚刚开始添加到内核中:https://lwn.net/Articles/513710/

以下是我使用的配置类型:

# Bring up physical interface
iface eth0 inet manual

# Create VLAN interfaces
iface eth0.10 inet manual
         vlan_raw_device eth0

iface eth0.20 inet manual
...

# Create bridges
auto vmbr10
iface vmbr10 inet static
        address  10.10.10.81
        netmask  255.255.255.0
        #gateway  10.10.10.254
        bridge_ports eth0.10
        bridge_stp off
        bridge_fd 0

auto vmbr20
iface vmbr20 inet static
        address  10.10.20.81
...

如果您想使用聚合/绑定接口:

  • 绑定物理接口
  • 在 bondX 接口上创建 VLAN 接口 (bondX.YYY)
  • 使用 bondX.YYY 作为bridge_ports

答案2

我不太熟悉 Debian 配置,但你描述的是正确的

eth0 -> eth0.100 -> brvlan100 <-- 虚拟机

这是设置方法。对于一台虚拟机来说,这可能看起来很混乱,但对于数百台虚拟机来说,您会看到这样做的好处。

如果您想避免这样做,您可能需要在虚拟机内部设置标签,只要网桥连接到中继端口,这种方法也是可行的

相关内容