解决方案

网桥是将两个本地网络连接到一个网络中的设备。
它在数据链路层(OSI模型的第2层)工作。
经常与虚拟化软件一起使用的网桥。
例如,诸如KVM,LXD或Docker用户之类的流行软件可以配置网桥,而不是基于NAT的网络。

nmcli命令行工具可以创建持久的网桥配置,而无需编辑任何文件。

本页面显示了如何使用CentOS 8 Enterprise Linux上的网络管理器命令行工具。

问题

如何在CentoS 8服务器上添加和创建Linux网桥?
如何配置CentOS 8并使用nmcli命令添加网桥(br0)?
如何在CentOS Linux 8服务器上为KVM(基于内核的虚拟机)创建Linux网桥?

在CentOS 8中如何使用nmcli命令添加网桥

CentOS 8使用nmcli添加网桥

使用nmcli创建网桥接口的步骤如下:

  • 查找有关当前CentOS 8网络连接的信息:sudo nmcli con show
  • 然后,添加一个新网桥br0:sudo nmcli con add type bridge ifname br0
  • 为br0创建一个从属接口:sudo nmcli con add type bridge-slave ifname eno1 master br0
  • 打开br0接口以通过DHCP获取IP:sudo nmcli con up br0
  • 或者像下面这个进行静态IP设置

在CentOS 8上创建Linux网桥

查看CentOS Linux 8接口和IP地址的信息:

$ nmcli con show
$ nmcli connection show --active

创建网桥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

为网桥禁用或启用STP

生成树协议(STP)的主要目的是确保当网络中有冗余路径时,您不会创建环路。

我们可以为br0禁用或启用STP:

$ sudo nmcli con modify br0 bridge.stp no
$ sudo nmcli con modify br0 bridge.stp yes

$ 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:                           --

为网桥接口设置静态或基于DHCP的IP地址

br0接口可以配置静态或者动态IP地址(如果有DHCP服务器)。
我们通常会设置一个静态IP地址。

br0 IPv4设置
$ 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
br0 IPv6设置
$ 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

在CentOS 8上启用br0网桥接口

启用br0:

$ sudo nmcli con up br0
$ nmcli con show

验证网桥设置

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

$ 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

$ ip a show eno1
$ ip r

$ ping -c 4 www.onitroad.local
$ ping -c 4 192.168.2.25

查看以太网设备和桥接设备的链接状态:

$ ip link show master br0
$ bridge link show
$ bridge link show dev eno1
日期:2019-11-20 08:53:06 来源:oir作者:oir