网桥是将两个或多个网段互连并在它们之间提供通信的数据链路层设备。它创建单个网络接口,以从多个网络或网段中建立单个聚合网络。它根据主机的MAC地址(存储在MAC地址表中)转发流量。
RHEL(Red Hat Enterprise Linux)和CentOS 8等Linux操作系统支持基于软件的网桥的实现,以模拟硬件桥。网桥的功能类似于网络交换机。它的行为或多或少类似于虚拟网络交换机。
网络桥接有几种用例,一个实际的应用是在虚拟化环境中创建虚拟网络交换机,该交换机用于将虚拟机(VM)连接到与主机相同的网络。
本指南介绍了可以在RHEL / CentOS 8中设置网桥多种方法,并使用它在Oracle VirtualBox和KVM下以桥接模式设置虚拟网络,以及将虚拟机连接到与主机相同的网络。
使用nmcli工具设置网桥
nmcli是一种广泛使用、可编写脚本且功能强大的 命令行工具 ,用于控制NetworkManager和报告网络状态。它直接与Network Manager通信,并且仅控制系统范围的连接。重要的是,它允许用户使用缩写词,只要它们是一组可能选项中的唯一前缀即可。
首先,使用IP命令来识别当前连接到您的计算机的网络接口(物理和虚拟)以及它们所连接的网络。
# ip add
从以上命令的输出中,以太网接口称为enp2s0,我们将把该接口从接口添加到网桥。
接下来,要列出测试系统上的活动网络连接,请使用以下nmcli命令。
# nmcli conn show --active
重要说明:如果已安装并启动libvirtd守护程序(libvirtd),则代表网络桥(虚拟网络交换机)的默认网络接口为virbr0,如上面所示,它配置为以NAT模式运行。
接下来,使用以下nmcli命令创建一个网桥接口,其中conn或con代表连接,连接名称为br0,接口名称也为br0。
# nmcli conn add type bridge con-name br0 ifname br0
注意:在桥接模式下,虚拟机很容易访问物理网络,它们与主机位于同一子网中,并且可以访问DHCP等服务。
要设置静态IP地址,请运行以下命令来设置br0连接的IPv4地址、网络掩码、默认网关和DNS 服务器 (根据您的环境设置值)。
# nmcli conn modify br0 ipv4.addresses '192.168.1.1/24' # nmcli conn modify br0 ipv4.gateway '192.168.1.1' # nmcli conn modify br0 ipv4.dns '192.168.1.1' # nmcli conn modify br0 ipv4.method manual
现在,如图所示,将以太网接口(enp2s0)作为便携式设备添加到网桥(br0)连接中。
# nmcli conn add type ethernet slave-type bridge con-name bridge-br0 ifname enp2s0 master br0
接下来,打开或激活网桥连接,您可以使用如下所示的连接名称或UUID。
# nmcli conn up br0 # nmcli conn up 2f03943b-6fb5-44b1-b714-a755660bf6eb
然后停用或关闭以太网或有线连接。
# nmcli conn down Wired\ connection\ 1 # nmcli conn down e1ffb0e0-8ebc-49d0-a690-2117ca5e2f42
现在,当您尝试列出系统上的活动网络连接时,网桥连接应显示在列表中。
接下来,使用以下bridge命令显示当前桥端口配置和标志。
# bridge link show
要停用网桥连接并删除它,请运行以下命令。请注意,您首先必须激活有线连接。
# nmcli conn up Wired\ connection\ 1 # nmcli conn down br0 # nmcli conn del br0