6.3. 使用命令行界面(CLI)

6.3.1. 检查是否安装 Bridging 内核模块

在 Red Hat Enterprise Linux 7 中会默认载入 bridging 模块。如有必要,可作为 root 运行以下命令确定已载入该模块:
~]# modprobe --first-time bridge
modprobe: ERROR: could not insert 'bridge': Module already in kernel
运行以下命令显示有关该模块的信息:
~]$ modinfo bridge
更多命令选项请查看 modprobe(8) man page。

6.3.2. 创建网络桥接

要创建网络桥接,请在 /etc/sysconfig/network-scripts/ 目录中创建名为 ifcfg-brN 的文件,使用该接口号替换 N,比如 0
该文件的内容和与之建立桥接的接口类型相似,比如以太网接口。本示例的不同之处在于:
  • DEVICE 指令分配一个接口名称作为参数,格式为 brN,其中使用接口号替换 N
  • TYPE 指令分配参数 Bridge。这个指令决定设备类型及参数,区分大小写。
  • 为桥接接口配置文件分配 IP 地址,其物理接口配置文件必须只含有 MAC 地址(如下)。
  • 在桥接中添加额外指令 DELAY=0,防止桥接在监控流量、了解主机位置及构建用来决定主机过滤的 MAC 地址表时等待。如果不可能有任何路由循环,则不需要默认的 15 秒延迟。

例 6.1. ifcfg-br0 接口配置文件示例

以下桥接接口配置文件示例使用静态 IP 地址:
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
BOOTPROTO=none
ONBOOT=yes
DELAY=0
要完成桥接,需创建另一个接口,或修改现有接口,并将其指向桥接接口。

例 6.2. ifcfg-ethX 接口配置文件示例

以下是指向桥接接口的以太网接口配置文件示例。在 /etc/sysconfig/network-scripts/ifcfg-ethX 中配置您的物理接口,其中 X 是与具体接口对应的独有数字,如下:
DEVICE=ethX
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
使用 NAME 指令自选指定名称。如果未指定名称,则 NetworkManager 插件 ifcfg-rh 会为该连接配置文件生成格式为类型接口的名称。在这个示例中意味着桥接名为 Bridge br0。另外,如果在 ifcfg-br0 文件中添加 NAME=bridge-br0,则该连接的配置文件名称应为 bridge-br0

注意

DEVICE 指令中,可使用大多数接口名称,因为它不决定设备类型。不一定需要 TYPE=Ethernet。如果未设置 TYPE,则需将该设备视为以太网设备(除非其名称与不同的接口配置文件完全匹配)。
指令区分大小写。
使用 HWADDR 指令指定硬件或 MAC 地址会影响设备命名过程,如 第 8 章 一致网络设备命名 所述。

警告

如果在远程主机中配置桥接,同时通过要配置的物理网卡连接到那个主机,请在执行前考虑可能丢失连接的情况。重启该服务可能会丢失连接,同时如果出现任何错误,可能会很难重获连接。建议使用控制台或带外访问。
要启动新或最新配置的接口,请作为 root,采用以下格式运行以下命令:
ifup device
这个命令将探测 NetworkManager 是否正在运行,并调用 nmcli con load UUID,然后调用 nmcli con up UUID
另外,可作为 root 运行以下命令重启所有接口:
~]# systemctl restart network
这个命令将停止网络服务,启动该网络服务,然后为所有使用 ONBOOT=yes 的 ifcfg 调用 ifup

注意

NetworkManager 默认不会意识到 ifcfg 文件更改,并在该接口下次启动前继续使用旧的配置数据。这是由 NetworkManager.conf 文件中的 monitor-connection-files 选项设定。详情请查看 NetworkManager.conf(5) manual page。

6.3.3. 附带绑定的网络桥接

在此给出由两个或更多绑定的以太网接口组成的网络桥接示例,因为这是虚拟化环境中的常见应用程序。如果不熟悉绑定接口的配置文件,请参考 第 4.4.2 节 “创建频道绑定接口”
创建或编辑两个或更多绑定的以太网接口配置文件,如下:
DEVICE=ethX
TYPE=Ethernet
SLAVE=yes
MASTER=bond0
BOOTPROTO=none
HWADDR=AA:BB:CC:DD:EE:FF

注意

最常用的接口名称为 ethX,但通常可以使用任何名称。
创建或编辑接口配置文件 /etc/sysconfig/network-scripts/ifcfg-bond0,如下:
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS='mode=1 miimon=100'
BRIDGE=brbond0
有关配置 bonding 模块及查看绑定参数的进一步说明及建议,请查看 第 4.5 节 “使用频道绑定”
创建或编辑接口配置文件 /etc/sysconfig/network-scripts/ifcfg-brbond0,如下:
DEVICE=brbond0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
我们现在有两个或更多包含 MASTER=bond0 指令的接口配置文件。这些接入点指向名为 /etc/sysconfig/network-scripts/ifcfg-bond0 的配置文件,该文件包含 DEVICE=bond0 指令。这个 ifcfg-bond0 会按顺序指向 /etc/sysconfig/network-scripts/ifcfg-brbond0 配置文件,该文件包含 IP 地址,并作为该主机内部的虚拟网络的接口。
要启动新或最新配置的接口,请作为 root,采用以下格式运行以下命令:
ifup device
这个命令将探测 NetworkManager 是否正在运行,并调用 nmcli con load UUID,然后调用 nmcli con up UUID
另外,可作为 root 运行以下命令重启所有接口:
~]# systemctl restart network
这个命令将停止网络服务,启动该网络服务,然后为所有使用 ONBOOT=yes 的 ifcfg 调用 ifup

注意

NetworkManager 默认不会意识到 ifcfg 文件更改,并在该接口下次启动前继续使用旧的配置数据。这是由 NetworkManager.conf 文件中的 monitor-connection-files 选项设定。详情请查看 NetworkManager.conf(5) manual page。