如何配置 CentOS 7 VLAN 接口以桥接 KVM

如何配置 CentOS 7 VLAN 接口以桥接 KVM

我想设置我的 CentOS 7 服务器,以便我的 KVM 虚拟机从我的 Cisco Meraki MX(防火墙)配置的 VLAN 30 中拉取 DHCP 租约,并与 VLAN 1 隔离。

由于我没有两个物理接口,我认为我应该虚拟化一个接口,为其添加 VLAN 标记,然后桥接虚拟化的 VLAN 标记接口,并在我的 virt-install 脚本中设置它。但是我想确保所有流向我的 CentOS 机器本身的流量都保持在 VLAN 1 上(流向虚拟机的流量除外)。

我以为前几天我已经让它工作了,然而一时兴起,我尝试跨子网 ping 并惊讶地看到 ICMP 响应。

我(有点)遵循了这个参考来设置一切:使用 ifcfg 文件设置 802.1Q VLAN 标记

目前我的/etc/sysconfig/network-scripts/ifcfg-em1(默认以太网接口)配置如下:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
GATEWAY="192.168.128.1"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="em1"
UUID="bac1228e-fe29-4e7c-9073-6b2d4542d003"
DEVICE="em1"
ONBOOT="yes"
ZONE=public

该接口确实成功从 VLAN 1 子网中提取了 192.168.128.x IP。

接下来我有/etc/sysconfig/network-scripts/ifcfg-em1.30(带有 VLAN 30 标签的虚拟接口):

TYPE="Ethernet"
#BOOTPROTO="dhcp"
DEVICE="em1.30"
ONBOOT="yes"
ZONE=public
VLAN="yes"
BRIDGE="br0"

这是因为 BRIDGE 选项(我相信)不会提取 IP 地址。

最后,/etc/sysconfig/network-scripts/ifcfg-br0(我从 em1.30 桥接连接):

BOOTPROTO="dhcp"
IPV6INIT="no"
DEFROUTE="no"
GATEWAY="10.100.0.1"
IPV6_AUTOCONF="no"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"
ZONE=public

该接口还从 VLAN 30 子网 (10.100.0.x) 拉取正确的 DHCP 路由

在我的 virt-install 脚本中使用 br0 接口似乎可以正常工作,因为我启动的所有虚拟机在启动时都能成功从 VLAN 30 子网中拉取数据。但是,如上所述,当我尝试从一个子网 ping(或 SSH)到另一个子网时,我得到了完整的响应。

我怀疑这可能与路线有关?以下是输出route -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.128.1   0.0.0.0         UG    0      0        0 em1
10.100.0.0      0.0.0.0         255.255.255.0   U     0      0        0 br0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 em1
169.254.0.0     0.0.0.0         255.255.0.0     U     1045   0        0 br0
192.168.128.0   0.0.0.0         255.255.255.0   U     0      0        0 em1

就其价值而言,/etc/sysconfig/network目前是空白的,我已经禁用了 NetworkManager,当我认为它正在工作时,我没有在 ifcfg-br0 中设置 DEFROUTE 或 GATEWAY 选项(我今天添加了这些但结果没有变化所以我保留了它们)。

我是否需要在 ifcfg-br0 和 ifcfg-em1.30 中设置 VLAN 选项?感谢您花时间阅读所有这些内容!

相关内容