Ubuntu 20.04使用nmcli命令添加网桥(br0)
如何配置我的Ubuntu 20.4 LTS并使用nmcli命令添加网桥(br0)?
如何在用于KVM(基于内核的虚拟机)的Ubuntu Linux 20.04 LTS服务器上创建Linux网桥?
网桥不过是将两个本地网络连接到一个网络中的设备。
它在数据链路层(OSI模型的第2层)工作。
经常与虚拟化软件一起使用的网桥。
例如,诸如KVM,LXD或者Docker用户之类的流行软件可以配置网桥,而不是基于NAT的网络。
nmcli命令行工具可以创建持久的网桥配置,而无需编辑任何文件。
该页面显示了如何在Ubuntu 20.04 LTS Linux服务器上使用网络管理器命令行工具nmcli创建网桥接口。
Ubuntu 20.04使用nmcli添加网桥(br0)
当您要使用网络管理器时,在Ubuntu 20.04版上创建和添加桥接口的过程如下:
- 打开终端应用程序或者使用[nixmcd name = ssh]登录
- 查找有关当前Ubuntu网络连接的信息:
sudo nmcli con show
- 然后,添加一个名为br0的新网桥:
sudo nmcli con
添加类型为ifif br0的网桥 - 使用enp0s31f6为br0创建一个从属接口:
sudo nmcli con add type bridge-slave ifname enp0s31f6 master br0
- 打开br0接口以通过DHCP获取IP:
sudo nmcli con up br0
- 下面针对br0接口讨论静态IP设置
让我们详细查看所有示例和说明,以便在Ubuntu Linux 20.04 LTS服务器中创建网桥。
在Ubuntu 20.04上创建Linux网桥的前提条件
首先,获取有关当前Ubuntu Linux接口和IP地址的信息,因为稍后我们需要此信息。
因此,执行以下命令:
$ nmcli con show $ nmcli connection show --active
输出:
NAME UUID TYPE DEVICE ETH0 71a189f2-9cb9-49f0-8464-37a6801740e3 ethernet enp0s31f6
因此,我的服务器有一个使用enp0s31f6以太网接口的ETH0。
我将建立一个名为br0的网桥接口,并将接口添加(奴役)到enp0s31f6。
步骤1创建一个名为br0的网桥
语法为:
$ sudo nmcli con add ifname br0 type bridge con-name br0 $ sudo nmcli con add type bridge-slave ifname enp0s31f6 master br0 $ nmcli connection show
步骤2为网桥禁用或者启用STP
生成树协议(STP)的主要目的是确保当网络中有冗余路径时,您不会创建环路。
我们可以为br0禁用STP或者启用以下功能:
$ sudo nmcli con modify br0 bridge.stp no ## Ubuntu 20.04 Linux 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: yes 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地址。
在此示例中,我将现有的enp0s31f6 IP网络设置转换为br0设置,如下所示:
IPv4 br0设置
$ sudo nmcli connection modify br0 ipv4.addresses '192.168.1.25/24' $ sudo nmcli connection modify br0 ipv4.gateway '192.168.1.254' $ sudo nmcli connection modify br0 ipv4.dns '192.168.1.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在Ubuntu Linux上启用br0网桥接口
到目前为止,我们已经配置了必需的网络设置。
现在该打开我们的br0了:
$ sudo nmcli con up br0 $ nmcli con show
等待一段时间以激活设置。
步骤5验证网桥设置
使用ip命令在Ubuntu框中查看br0网桥的IP设置:
$ ip a s $ ip a s br0
您可以删除enp0s31f6,因为br0本身具有静态IP地址,因为enp0s31f6将处于转发状态:
$ sudo nmcli connection delete enp0s31f6 ## 或者 $ sudo nmcli connection delete ETH0
使用ip命令的外观如下:
$ nmcli connection show $ ip a show br0 $ nmcli device ## interface active and works with br0 ## $ ip a show enp0s31f6 $ ip r ## Check Internet and local LAN connectivity using ping command ## $ ping -c 4 www.theitroad.local $ ping -c 4 192.168.1.25
显示Ubuntu Linux机器上以太网设备和桥接设备的链接状态:
$ ip link show master br0 $ bridge link show $ bridge link show dev enp0s31f6