在 Oracle Linux 6.x 配置 KVM 虛擬機橋接網絡時,傳統 ifcfg-br0 + ifcfg-eth0 配置明顯無誤,卻報錯:
eth0: Connection activation failed: Master connection not found or invalid
br0: Connection activation failed: Failed to determine connection's virtual interface name
根因在於桌面環境預裝的 NetworkManager 佔用了網絡設備控制權,與傳統 network 服務衝突。本文記錄排查全過程與標準化修復方案。
service network restart 後橋接不生效dmesg / /var/log/messages 顯示 NetworkManager 搶佔設備Oracle Linux 6 桌面版默認啟用 NetworkManager 管理網絡,它會動態修改 /etc/sysconfig/network-scripts/ifcfg-* 並持有設備鎖。傳統 network 服務啟動時發現設備已被佔用,導致橋接主從關係建立失敗。
service NetworkManager stop
chkconfig NetworkManager off
service network restart
橋接即刻生效,brctl show 可見 br0 掛載 eth0。br0 自動 UP,虛擬機網絡通暢。TYPE=Bridge
BOOTPROTO=static
IPADDR=172.16.10.177
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=172.16.10.1
NAME="System br0"
ONBOOT=yes
DELAY=0
STP=off
TYPE=Ethernet
UUID=b67f5325-d513-40da-bc49-f16b473a8f6e
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
HWADDR=00:1B:78:3B:38:0C
NAME="System eth0"
# IPADDR/NETMASK/GATEWAY/DNS 移至 br0,eth0 不配置 IP
NM_CONTROLLED=no:明確告知 NetworkManager 不要管理該設備(雖已停用服務,防誤啟)。BRIDGE=br0:聲明從屬於 br0,啟動腳本會自動執行 brctl addif br0 eth0。DELAY=0 / STP=off:關閉生成樹協議與端口延遲,減少橋接啟動等待,適合虛擬化場景。/etc/sysconfig/network 含 NETWORKING=yes。/etc/modprobe.d/dist.conf 未黑名單 bridge 模組。iptables 需允許橋接流量(或關閉 iptables 對 bridge 的過濾:echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables)。virt_use_nfs 等布爾值。/var/log/messages 中 NetworkManager 與 network 的啟動順序衝突日誌。掌握「桌面環境必停 NetworkManager」這一鐵律,Oracle Linux 6/7 系列橋接配置即可一次成功,為 KVM/OVM 虛擬化網絡奠定穩固基石。