如何通过网桥将 VLAN 流量传送到 KVM VM

如何通过网桥将 VLAN 流量传送到 KVM VM

我有一台 KVM 主机,我想将其连接到 VLAN 1,而 VM 则使用 VLAN 2。主机上的 emo1 与 br0 桥接,物理接口连接到 Cisco 交换机上的中继端口。问题是我在网上找到的大多数东西都是冲突的/旧的或对我来说不起作用。

我正在运行 Centos 7。为客户机标记与主机不同的 VLAN 的最简单方法是什么?

谢谢!

答案1

在主机接口中,为每个VLAN配置单独的接口。

由于物理接口连接到中继端口,因此所有 VLAN 都应被标记。

因此在主机上需要配置emo1.1emo1.2接口,分别对应物理接口上的VLAN 1和VLAN 2。

然后为虚拟机创建一个桥接器,并将其添加emo1.2为桥接器成员。

此后,配置emo0.1主机连接。

接口emo0应该处于启动状态,但是不能配置任何 IP 地址。

您还需要确保8021q模块已加载,以便内核具有 VLAN 支持。

答案2

Archlinux wiki 有一个关于 VLAN 的好文章这将向您展示如何设置它们以进行测试。

在 CentOS 上,要更永久地执行此操作,请使用/etc/sysconfig/network-scripts/

例如,/etc/sysconfig/network-scripts/ifcfg-eth0.1可以是:

VLAN=yes
DEVICE=eth0.1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0

/etc/sysconfig/network-scripts/ifcfg-eth0.2可能是:

VLAN=yes
DEVICE=eth0.2
BOOTPROTO=static
ONBOOT=yes
IPADDR=0.0.0.0
NETMASK=0.0.0.0
BRIDGE=br0

然后创建 br0(您的 VM 桥)/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0

假设您制定了适当的转发规则,那么来自 br0 上的虚拟机的所有流量在到达交换机时都将被标记为 VLAN id 2。

相关内容