我有一台 KVM 主机,我想将其连接到 VLAN 1,而 VM 则使用 VLAN 2。主机上的 emo1 与 br0 桥接,物理接口连接到 Cisco 交换机上的中继端口。问题是我在网上找到的大多数东西都是冲突的/旧的或对我来说不起作用。
我正在运行 Centos 7。为客户机标记与主机不同的 VLAN 的最简单方法是什么?
谢谢!
答案1
在主机接口中,为每个VLAN配置单独的接口。
由于物理接口连接到中继端口,因此所有 VLAN 都应被标记。
因此在主机上需要配置emo1.1
和emo1.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。