如何設定 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 選項?感謝您花時間閱讀所有內容!

相關內容