如何在CentOS/RHEL 7/8中创建或者配置网桥

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

在本文中,我将向我们展示分步指南,以在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