如何使用nmcli创建和配置网桥(静态和DHCP)
" nmcli"(NetworkManager命令行界面)命令行实用程序用于控制NetworkManager和报告网络状态。
nmcli用于创建,显示,编辑,删除,激活和停用网络连接,以及控制和显示网络设备状态。
在本文中,我将分享在RHEL/CentOS 7/8中使用nmcli创建和配置网桥的步骤。
nmcli桥。
nmcli重新启动网络。
nmcli重新加载。
nmcli在RHEL中配置网桥。
使用nmcli创建网桥。
在Linux中使用nmcli配置网桥。
nmcli网络重新启动。
nmcli连接重新启动。
使用nmcli配置静态IP地址。
使用nmcli配置dhcp ip。
使用nmcli配置网桥。
我们可以使用nmcli工具配置永久静态IP和DHCP IP。
什么是网桥?
网桥将多个物理接口的资源合并为一个虚拟接口。
网桥类似于虚拟LAN接口,但相反。
网络桥接器将网络适配器连接到单个子网,并向所有桥接器客户端提供统一的网络。
例如,如果我们有一个16端口非托管交换机,并且交换机已满,并且需要将其他客户端添加到同一网络,则可以在pfSense安装中添加一个网络适配器,然后创建一个网桥以加入一个新的交换机。
客户端到同一网络。
nmcli命令的基本格式如下:
nmcli [OPTIONS] OBJECT { COMMAND | help }
其中"对象"可以是以下选项之一:常规,网络,无线电,连接,设备,代理和监视器。
我们可以在命令中使用这些选项的任何前缀。
例如," nmcli con help"," nmcli c help"," nmcli connection help"会生成相同的输出。
检查是否安装了桥接内核模块
在CentOS/RHEL 7/8中,桥接模块是默认加载的。
如有必要,可以通过以超级用户身份发出以下命令来确保模块已加载:
# lsmod | grep bridge bridge 136173 0
如果未加载模块,则可以使用以下方法安装模块
# modprobe --first-time bridge
要显示有关模块的信息,请发出以下命令:
# modinfo bridge
在RHEL/CentOS 7中使用nmcli配置网桥
使用nmcli创建和配置网络桥的第一步是创建实际的桥接口,然后将物理设备分配给该桥。
创建网桥界面
要创建一个名为`bridge-app-br0'的网桥,请以root身份发出以下命令:
[root@centos-7 ~]# nmcli connection add type bridge ifname app-br0 Connection 'bridge-app-br0' (39b1a2d0-23ab-4c9d-9cb5-a2ec32a21075) successfully added.
提示:
网桥前缀将自动添加到连接名称中。
如果未指定接口名称,则该名称将默认为bridge
,bridge-1
,bridge-2
等。
创建桥的从接口
要使用nmcli创建和配置网桥,我们还需要添加或者奴役接口。
要将第一个接口(例如eno51)奴役到网桥app-br0,请发出以下命令:
[root@centos-7 ~]# nmcli con add type ethernet con-name br-slave-1 ifname eno51 master app-br0 Connection 'br-slave-1' (5dd3f7d7-e618-4850-b2d6-29c889d19937) successfully added.
类似地,将第二个从属接口添加到桥接app-br0
[root@centos-7 ~]# nmcli con add type ethernet con-name br-slave-2 ifname eno52 master app-br0 Connection 'br-slave-2' (092d51b9-0807-45ea-b0bb-9cf0da9995b5) successfully added.
使用nmcli分配静态或者dhcp IP并配置网桥
网桥接口有多种可配置选项,我们可以使用nmcli对其进行修改。
例如,默认情况下启用生成树协议(STP)。
使用的值来自IEEE 802.1D-1998标准。
要禁用此网桥的STP,请以root身份发出以下命令:
[root@centos-7 ~]# nmcli con modify bridge-app-br0 bridge.stp no
要查看网桥设置,请发出以下命令:
[root@centos-7 ~]# nmcli -f bridge con show bridge-app-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.multicast-snooping: yes
使用nmcli分配DHCP IP的语法
# nmcli connection add type ethernet ifname con-name ipv4.method auto
使用nmcli分配静态IP的语法
# nmcli connection add type ethernet ifname con-name ipv4.method manual ipv4.address/ipv4.gateway
另请阅读:
16个ip命令示例,用于配置网络接口(备忘单)
要设置以太网,请配置以下命令选项:
con-name
-连接名称是连接配置文件的名称,不应与表示设备的接口名称混淆ifname
-接口名称type
-允许的值包括:以太网,wifi,wimax,gsm,cdma,infiniband,蓝牙,vlan,bond,bond-slaveipv4.method-特定于接口配置是通过dhcp(自动)还是静态(手动)进行。
ipv4.address-CIDR表示形式的IPv4地址。
ipv4.gateway-IPv4网关地址。
ipv6.address-IPv6地址(如果启用了IPv6,则为可选)
[root@centos-7 ~]# nmcli con modify bridge-app-br0 ipv4.method manual ipv4.address "192.151.12.6/26" ipv4.gateway "192.151.12.62" ipv4.dns 8.8.8.8 ipv4.dns-search example.com
其中我为网桥app-br0接口分配了一个静态IP地址192.151.12.6,其Netmask前缀为26,网关为192.151.12.62,DNS服务器IP为8.8.8.8.
要查看连接,请发出以下命令:
[root@centos-7 ~]# nmcli con show NAME UUID TYPE DEVICE Ethernet connection 2 b9bcd5b2-0342-4c35-9800-0c9436d2fe60 802-3-ethernet eno49 br-slave-1 5dd3f7d7-e618-4850-b2d6-29c889d19937 802-3-ethernet eno51 br-slave-2 092d51b9-0807-45ea-b0bb-9cf0da9995b5 802-3-ethernet eno52 bridge-app-br0 39b1a2d0-23ab-4c9d-9cb5-a2ec32a21075 bridge app-br0 eno50 5215c9b8-6f7d-4caa-9792-81dc099f41fc 802-3-ethernet eno50 eno55 0d918152-fdf6-4b87-9ac0-cb91fbb621c7 802-3-ethernet eno55 virbr0 b9030451-b81a-4727-86f6-6f2fbe9f7118 bridge virbr0 virbr1 12996be2-6d66-423a-8882-1533633a4a7e bridge virbr1 eno49 2ff6c44e-f016-4359-8eaf-121071bc612d 802-3-ethernet - eno51 a9031c75-f1f4-481e-bdc3-942b89a554c1 802-3-ethernet -
如我们所见,新创建的网桥和从接口在可用连接列表中可见。
brctl用于在Linux内核中设置,维护和检查以太网桥配置。
命令" brctl show"显示了以太网桥的所有当前实例
[root@centos-7 ~]# brctl show bridge name bridge id STP enabled interfaces app-br0 8000.9cdc7177ef51 no eno51 eno52
另请阅读:
如何在Linux(RHEL/CentOS 7)中配置ipv6地址
验证网桥配置
现在,我们已经完成了使用RHEL/CentOS 7中的nmcli创建和配置网桥的步骤。
要验证我们的配置,我们可以检查app-br0是否已分配了IP地址。
[root@centos-7 ~]# ip addr show dev app-br0 23: app-br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 9c:dc:71:77:ef:51 brd ff:ff:ff:ff:ff:ff inet 192.151.12.6/26 brd 192.151.12.63 scope global app-br0 valid_lft forever preferred_lft forever inet6 fe80::f479:8a1:4dd0:1df0/64 scope link valid_lft forever preferred_lft forever
接下来尝试对网桥接口的网关执行ping操作,并确保其可访问
[root@centos-7 ~]# ping 192.151.12.62 PING 192.151.12.62 (192.151.12.62) 56(84) bytes of data. 64 bytes from 192.151.12.62: icmp_seq=1 ttl=64 time=19.0 ms 64 bytes from 192.151.12.62: icmp_seq=2 ttl=64 time=0.706 ms 64 bytes from 192.151.12.62: icmp_seq=3 ttl=64 time=19.6 ms ^C --- 192.151.12.62 ping statistics -- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.706/13.134/19.671/8.792 ms
由于nmcli
对网络配置进行了永久更改,因此我们也可以验证nmcli
创建的网络配置文件。
网桥接口配置文件为ifcfg-bridge-app-br0
[root@centos-7 ~]# cd /etc/sysconfig/network-scripts/
[root@centos-7 network-scripts]# cat ifcfg-bridge-app-br0 DEVICE=app-br0 STP=no TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bridge-app-br0 UUID=39b1a2d0-23ab-4c9d-9cb5-a2ec32a21075 ONBOOT=yes IPADDR=192.151.12.6 PREFIX=26 GATEWAY=192.151.12.62 DNS1=8.8.8.8 DOMAIN=example.com
同样,验证网桥从接口的配置文件。
[root@centos-7 ~]# cat ifcfg-br-slave-1 TYPE=Ethernet NAME=br-slave-1 UUID=5dd3f7d7-e618-4850-b2d6-29c889d19937 DEVICE=eno51 ONBOOT=yes BRIDGE=app-br0 [root@centos-7 ~]# cat ifcfg-br-slave-2 TYPE=Ethernet NAME=br-slave-2 UUID=092d51b9-0807-45ea-b0bb-9cf0da9995b5 DEVICE=eno52 ONBOOT=yes BRIDGE=app-br0
检查默认网关
[root@centos-7 ~]# ip route default via 192.151.12.62 dev app-bridge proto static metric 426
重新启动网络管理器连接
重新加载连接接口
[root@centos-7 ~]# nmcli connection reload
除了创建和配置网桥nmcli外,我们还可以做更多的事情,有关选项的完整列表,请遵循nmcli工具的手册页。