NetworkManager配置网桥

技术背景

在 CentOS 9 及更新的 RHEL 系发行版中,传统的 ifcfg 文件已被弃用,取而代之的是 NetworkManager 的原生配置格式,以下是通过NetworkManager配置网桥的相关操作备忘

使用nmcli 命令行工具配置网桥

1. 创建网桥设备

sudo nmcli connection add type bridge ifname br0
  • br0 是网桥名称,可自定义。
  • 上述命令无需事先使用brctl addbr br0创建网桥

2. 为网桥分配IP地址(可选)

sudo nmcli connection modify bridge-br0 ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify bridge-br0 ipv4.gateway 192.168.1.1
sudo nmcli connection modify bridge-br0 ipv4.dns "8.8.8.8"
sudo nmcli connection modify bridge-br0 ipv4.method manual
  • 若使用DHCP,则将上述命令改为
    sudo nmcli connection modify bridge-br0 ipv4.method auto
    

3. 将物理网卡(如eth0)添加到网桥

sudo nmcli connection add type bridge-slave ifname eth0 master br0
  • eth0 是物理网卡名称,需替换为实际接口名。

4. 启动网桥

sudo nmcli connection up bridge-br0
sudo nmcli connection up bridge-slave-eth0

5. 验证配置

ip addr show br0    # 查看网桥IP
brctl show br0      # 查看网桥绑定的接口

使用 NetworkManagerkeyfile 格式配置网桥的详细示例:


1. 创建网桥配置文件

NetworkManager 的 keyfile 配置文件通常存储在 /etc/NetworkManager/system-connections/ 目录下,扩展名为 .nmconnection

示例:创建网桥 br0 并绑定物理网卡 eth0

创建文件 /etc/NetworkManager/system-connections/br0.nmconnection

[connection]
id=br0
type=bridge  # 指定类型为网桥
interface-name=br0

[ipv4]
method=auto  # 使用 DHCP(如需静态IP,改为 manual 并配置地址)
# 静态IP示例:
# method=manual
# address1=192.168.1.100/24,192.168.1.1
# dns=8.8.8.8;

[ipv6]
method=ignore  # 禁用IPv6(或设为 auto)

[bridge]
stp=false  # 禁用生成树协议(小型网络可关闭)

绑定物理网卡 eth0 到网桥

创建文件 /etc/NetworkManager/system-connections/br0-slave-eth0.nmconnection

[connection]
id=br0-slave-eth0
type=ethernet
interface-name=eth0
master=br0
slave-type=bridge  # 关键:指定为网桥的从属接口

2. 应用配置

  1. 重启 NetworkManager
    sudo systemctl restart NetworkManager
    
  • 重新加载配置
    sudo nmcli connection reload
    
  1. 验证网桥状态
    nmcli connection show  # 查看所有连接
    nmcli device status    # 查看设备状态
    brctl show br0         # 查看网桥绑定的接口
    ip addr show br0       # 检查网桥IP
    

3. 注意事项

  1. 配置文件权限

    • 确保配置文件权限为 600,属主为 root
      sudo chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
      sudo chown root:root /etc/NetworkManager/system-connections/*.nmconnection
      
  2. 物理网卡去IP化

    • 物理网卡(如 eth0不能配置任何IP,否则会冲突。
  3. NetworkManager 的优先级

    • 如果存在旧版 ifcfg 文件,需删除或重命名以避免冲突:
      sudo mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.old
      

posted @ 2025-04-08 11:41  开元澄  阅读(402)  评论(0)    收藏  举报