CentOS 8使用nmcli命令添加网桥(br0)

时间:2020-01-09 10:34:10  来源:igfitidea点击:

如何配置CentOS 8并使用nmcli命令添加网桥(br0)?
如何在CentOS Linux 8服务器上为KVM(基于内核的虚拟机)创建Linux网桥?
网桥不过是将两个本地网络连接到一个网络中的设备。
它在数据链路层(OSI模型的第2层)工作。
经常与虚拟化软件一起使用的网桥。
例如,诸如KVM,LXD或Docker用户之类的流行软件可以配置网桥,而不是基于NAT的网络。

nmcli命令行工具可以创建持久的网桥配置,而无需编辑任何文件。
本页面显示了如何使用CentOS 8 Enterprise Linux上的网络管理器命令行工具nmcli创建网桥接口。

CentOS 8使用nmcli添加网桥(br0)

当您要使用网络管理器时,在CentOS 8上创建和添加桥接口的过程如下:

  • 打开终端应用程序或使用[nixmcd name = ssh]登录
  • 查找有关当前CentOS 8网络连接的信息:sudo nmcli con show
  • 然后,添加一个名为br0的新网桥:sudo nmcli con添加类型为ifif br0的网桥
  • 为br0创建一个从属接口:sudo nmcli con add type bridge-slave ifname eno1 master br0
  • 打开br0接口以通过DHCP获取IP:sudo nmcli con up br0
  • 下面针对br0接口讨论静态IP设置

让我们详细查看在CentOS 8中创建网桥的所有示例和说明。

警告:这些说明对现有服务器进行了重要的网络更改,错误的命令可能会丢失与服务器的网络/SSH连接。
因此,不建议在基于ssh的会话上运行这些命令。
此外,您可能需要更新防火墙规则以匹配网桥设置。
对于远程服务器,我建议使用基于IP或IPMI的KVM远程会话。

在CentOS 8上创建Linux网桥的前提条件

首先,获取有关当前CentOS Linux 8接口和IP地址的信息,因为稍后我们需要此信息。
因此,键入以下命令:

$ nmcli con show
$ nmcli connection show --active

输出:

NAME  UUID                                  TYPE      DEVICE 
eno1  71a189f2-9cb9-49f0-8464-37a6801740e3  ethernet  eno1

所以我的服务器有一个使用eno1以太网接口的eno1。
我将设置一个名为br0的网桥接口,并将接口添加(奴役)到eno1中。

步骤1创建一个名为br0的网桥

语法为:

$ sudo nmcli con add ifname br0 type bridge con-name br0
$ sudo nmcli con add type bridge-slave ifname eno1 master br0
$ nmcli connection show

步骤2为网桥禁用或启用STP

生成树协议(STP)的主要目的是确保当网络中有冗余路径时,您不会创建环路。
我们可以为br0禁用STP或启用以下功能:

$ sudo nmcli con modify br0 bridge.stp no
## CentOS 8 nmcli command to enable STP with br0 ## 
$ sudo nmcli con modify br0 bridge.stp yes
## Verification ##
$ nmcli con show
$ nmcli -f bridge con show br0

输出:

bridge.mac-address:                     -
bridge.stp:                             no
bridge.priority:                        32768
bridge.forward-delay:                   15
bridge.hello-time:                      2
bridge.max-age:                         20
bridge.ageing-time:                     300
bridge.group-forward-mask:              0
bridge.multicast-snooping:              yes
bridge.vlan-filtering:                  no
bridge.vlan-default-pvid:               1
bridge.vlans:                           -

步骤3为网桥接口设置静态或基于DHCP的IP

我们尚未为br0接口分配任何静态IP地址。
因此,如果DHCP服务器可用,则应提供IP地址和其他设置。
但是,在服务器上,我们通常会设置一个静态IP地址。
在此示例中,我将现有的eno1 IP网络设置转换为br0设置,如下所示:

IPv4 br0设置
$ sudo nmcli connection modify br0 ipv4.addresses '192.168.2.19/24'
$ sudo nmcli connection modify br0 ipv4.gateway '192.168.2.254'
$ sudo nmcli connection modify br0 ipv4.dns '192.168.2.254'
$ sudo nmcli connection modify br0 ipv4.dns-search 'sweet.home'
$ sudo nmcli connection modify br0 ipv4.method manual
IPv6 br0设置
$ sudo nmcli connection modify bridge0 ipv6.addresses 'Your-Static-IPv6-Address'
$ sudo nmcli connection modify br0 ipv6.gateway 'Your-Static-IPv6-Gateway-Address'
$ sudo nmcli connection modify br0 ipv6.dns 'Your-Static-IPv6-DNS'
$ sudo nmcli connection modify br0 ipv6.dns-search 'sweet.home'
$ sudo nmcli connection modify br0 ipv6.method manual

步骤4在CentOS 8上启用br0网桥接口

到目前为止,我们已经配置了必需的网络设置。
现在该打开我们的br0了:

$ sudo nmcli con up br0
$ nmcli con show

等待一段时间以激活设置。

步骤5验证网桥设置

使用ip命令查看br0的IP设置:

$ ip a s
$ ip a s br0

您可以删除eno1,因为br0本身具有静态IP地址,因为eno1将处于转发状态:

$ sudo nmcli connection delete eno1

使用ip命令的外观如下:

$ nmcli connection show
$ ip a show br0
$ nmcli device
## interface active and works with br0 ##
$ ip a show eno1
$ ip r
## Check Internet and local LAN connectivity using ping command ##
$ ping -c 4 www.theitroad.local
$ ping -c 4 192.168.2.25

显示CentOS 8 Linux机器上以太网设备和桥接设备的链接状态:

$ ip link show master br0
$ bridge link show
$ bridge link show dev eno1