如何在CentOS/RHEL 7/8中创建或者配置网桥
在本文中,我将向我们展示分步指南,以在CentOS或者RHEL 7节点上使用nmtui(NetworkManager)配置网桥。
网桥是一种链路层设备,它根据MAC地址在网络之间转发流量,因此也称为第2层设备。
桥接网络(也称为网络桥接或者虚拟网络交换)会将虚拟机网络接口与物理接口放置在同一网络上。
我们可以使用NetworkManager文本用户界面(NMTUI)或者通过命令行界面(CLI)配置网桥,方法是手动创建所需的配置文件。
使用NMTUI(NetworkManager)配置网桥
文本用户界面工具nmtui
可用于在终端窗口中配置网桥。
发出以下命令以启动该工具:
# nmtui
出现文本用户界面。
任何无效的命令都会显示使用情况消息。
说明:
执行nmtui之后,要导航,请使用箭头键或者按Tab'前进,然后按
Shift + Tab'退回选项。
按Enter键选择一个选项。
空格键可切换复选框的状态。
从开始菜单中,选择"编辑连接"。
选择"添加","新连接"屏幕打开。
选择我们要用来配置网桥的网桥
,打开编辑连接
屏幕。
为网桥指定一个"配置文件名称"和"设备"名称。
要将奴隶接口添加到网桥,请选择添加
,打开新建连接
屏幕。
在设备
部分中输入所需从站的设备名称或者MAC地址,然后选择确定
按钮。
说明:
如果我们未指定MAC地址,则在重新加载编辑连接
窗口后,设备
部分会自动填充,但前提是成功找到该设备。
桥接从站的名称显示在从站
部分中。
如果我们有DHCP服务器,则可以将IPv4和IPv6地址设置为自动。
如果我们想分配静态IP,请手动填写网络详细信息,如下所示。
由于我们没有使用IPv6,因此我将IPv6 Configuration
设置为Ignore
。
在选择确定按钮之前,请检查并确认设置,这将退出nmtui(NetworkManager)实用程序。
接下来,重新启动网络服务以使更改生效。
# systemctl restart network
现在检查网络配置
# ifconfig eno51: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 9c:dc:71:77:ef:51 txqueuelen 1000 (Ethernet) RX packets 9856 bytes 554308 (541.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eno52: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 9c:dc:71:77:ef:59 txqueuelen 1000 (Ethernet) RX packets 9895 bytes 557714 (544.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 73 bytes 10718 (10.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 15454 bytes 1232040 (1.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 15454 bytes 1232040 (1.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 nm-bridge1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.43.138.12 netmask 255.255.255.255 broadcast 10.43.138.12 inet6 fe80::9edc:71ff:fe77:ef59 prefixlen 64 scopeid 0x20<link> ether 9c:dc:71:77:ef:59 txqueuelen 1000 (Ethernet) RX packets 46 bytes 2324 (2.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 37 bytes 5336 (5.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:2c:4b:76 txqueuelen 1000 (Ethernet) RX packets 2892 bytes 617616 (603.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4322 bytes 372843 (364.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vnet1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::fc54:ff:fe1c:8df6 prefixlen 64 scopeid 0x20<link> ether fe:54:00:1c:8d:f6 txqueuelen 1000 (Ethernet) RX packets 162 bytes 46797 (45.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1487 bytes 85335 (83.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
最后,现在我们将验证桥的连接性
# ping 10.43.138.30 PING 10.43.138.30 (10.43.138.30) 56(84) bytes of data. 64 bytes from 10.43.138.30: icmp_seq=1 ttl=64 time=39.4 ms 64 bytes from 10.43.138.30: icmp_seq=2 ttl=64 time=10.8 ms ^C --- 10.43.138.30 ping statistics -- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 10.826/25.147/39.469/14.322 ms
因此,我们可以连接到网关,这意味着我们的网桥正在按预期工作。
通过CLI配置网桥
要配置网桥,请在/etc/sysconfig/network-scripts /目录中创建一个名为ifcfg-brN的文件,将N替换为接口号,例如0。ifcfg-br1
网桥接口文件和以太网接口文件的内容差不多。
此示例中的差异如下:
DEVICE指令以其接口名称作为接口名称,格式为brN,其中N替换为接口编号。
TYPE指令有一个参数Bridge。
该指令确定设备类型,并且参数区分大小写。桥接接口配置文件现在具有IP地址,而物理接口仅具有MAC地址。
添加了一个额外的指令DELAY = 0以防止网桥监视流量,了解主机的位置以及建立MAC地址表作为其过滤决策的基础。
将NM_CONTROLLED = no添加到以太网接口以防止NetworkManager更改文件。
以下是使用静态IP地址的示例网桥接口配置文件:
# cat ifcfg-br1 DEVICE=nm-bridge1 STP=no TYPE=Bridge BOOTPROTO=none IPADDR=10.43.138.12 PREFIX=32 GATEWAY=10.43.138.30 IPV6INIT=no NAME=br1 ONBOOT=yes DELAY=0
要完成网络桥接,我们必须创建另一个接口,或者我们可以使用现有接口,并将其指向桥接接口。
以下是指向网桥接口的示例以太网接口配置文件。
在/etc/sysconfig/network-scripts/ifcfg-ethX
中配置物理接口,其中`X'是与特定接口相对应的唯一编号,如下所示:
# cat ifcfg-Ethernet_connection_2 TYPE=Ethernet NAME="Ethernet connection 2" DEVICE=eno52 ONBOOT=yes BRIDGE=nm-bridge1
说明:
由于网络设备的命名一致,接口名称可以是" ethX"或者" enX",或者取决于网卡类型。
最后重新启动网络服务以使更改生效
# systemctl restart network