在 RHEL/CentOS 8 中创建网桥的 3 种方法
网桥是一种数据链路层设备,用于连接两个或多个网段,从而提供它们之间的通信。它创建单个网络接口,以便从多个网络或网段设置单个聚合网络。它根据主机的 MAC 地址(存储在 MAC 地址表中)转发流量。
RHEL(Red Hat Enterprise Linux)和CentOS 8等 Linux 操作系统支持实现基于软件的网络桥接来模拟硬件桥接。该桥接的功能与网络交换机类似;它或多或少就像一个虚拟网络交换机。
网络桥接有几种用例,一种实际应用是在虚拟化环境中创建虚拟网络交换机,用于将虚拟机 (VM) 连接到与主机相同的网络。
本指南展示了在RHEL/CentOS 8中设置网桥的多种方法,并使用它在Oracle VirtualBox和KVM下以桥接模式设置虚拟网络,将虚拟机连接到与主机相同的网络。
使用 nmcli 工具设置网桥
nmcli是一个广泛使用、可编写脚本且功能强大的命令行工具,用于控制NetworkManager并报告网络状态。它直接与 NetworkManager 通信并仅控制系统范围的连接。重要的是,它允许用户使用缩写,只要它们是可能选项集中的唯一前缀即可。
首先,使用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 OR # nmcli conn up 2f03943b-6fb5-44b1-b714-a755660bf6eb
然后停用或关闭以太网或有线连接。
# nmcli conn down Wired\ connection\ 1 OR # nmcli conn down e1ffb0e0-8ebc-49d0-a690-2117ca5e2f42
现在,当您尝试列出系统上的活动网络连接时,桥接连接应该显示在列表中。
# nmcli conn show --active
接下来,使用以下桥接命令显示当前桥接端口配置和标志。
# bridge link show
要停用桥接连接并将其删除,请运行以下命令。请注意,首先必须激活有线连接。
# nmcli conn up Wired\ connection\ 1 # nmcli conn down br0 # nmcli conn del br0 # nmcli conn del bridge-br0
有关更多信息,请参阅nmcli手册页。
# man nmcli
通过 Cockpit Web 控制台创建网桥
cockpit是一个轻量级、交互式且易于使用的基于 Web 的服务器管理界面。为了与系统的网络配置进行交互,cockpit 使用NetworkManager及其提供的DBus API 。
要添加桥接器,请转到网络,然后单击添加桥接器,如下图所示。
弹出窗口将显示添加新网桥的选项。设置网桥名称并选择端口,如以下屏幕截图所示。您可以选择启用STP(生成树协议),然后单击应用。
在接口列表下,现在应该出现新的桥接器,并且以太网接口应该被停用。
要查看桥接器的详细信息,请双击它。有选项可以将其关闭或删除,为其添加新端口设备等等。
使用 nm-connection-editor 应用程序创建网桥
nm-connection-editor是NetworkManager的图形网络连接编辑器,用于添加、删除和修改NetworkManager存储的网络连接。任何修改只有在 NetworkManager 运行时才有效。
要启动它,请在命令行中以 root 身份运行nm-connection-editor命令或从系统菜单中打开它。
# nm-connection-editor
打开后,单击加号以添加新连接,如下面的屏幕截图所示。
在弹出的窗口中,从下拉菜单中选择连接类型(在本例中为桥接),然后单击创建。
接下来,设置桥接连接和接口名称,然后单击“添加”以添加桥接端口。选择以太网作为连接类型。然后单击“创建”。
接下来,编辑端口设备连接详细信息,然后单击“保存”。
现在桥接端口应该被添加到桥接连接列表中。然后点击保存。
从连接编辑器的主界面,您应该能够看到新的桥接连接和桥接接口,如下面的屏幕截图所示。
现在继续使用 nmcli 工具从命令行激活桥接连接并停用有线连接,如前所示。
# nmcli conn up br0 # nmcli conn down Wired\ connection\ 1
如何在虚拟化软件中使用网桥
在本节中,我们将展示如何在Oracle VirtualBox和KVM下使用网桥将虚拟机连接到主机网络,如下所述。
在 Oracle VirtualBox 中使用网桥
要配置虚拟机以使用桥接适配器,请从虚拟机列表中选择它,然后转到其设置,单击网络选项并选择适配器(例如适配器 1),然后确保选中启用网络适配器选项,将连接设置为桥接适配器,然后选择桥接接口的名称(br0)并单击确定。
在 KVM 中使用网桥
要在KVM下使用上面创建的网桥,请--network=bridge=br0
在使用命令行界面的虚拟机时使用选项,使用virt-install命令。
# virt-install --virt-type=kvm --name Ubuntu18.04 --ram 1536 --vcpus=4 --os-variant=ubuntu18.04 --cdrom=/path/to/install.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/var/lib/libvirt/images/ubuntu18.04.qcow2,size=20,bus=virtio,format=qcow2
您还可以创建其他网络并使用virsh 命令行工具对其进行配置,并且可以编辑 VM 的 XML 配置文件以使用这些新的桥接网络之一。
在本指南中,我们展示了如何在RHEL/CentOS 8中设置网桥,并在Oracle VirtualBox和KVM下使用它将虚拟机连接到主机的同一网络。
与往常一样,如果您有任何问题或意见,请通过下面的反馈表与我们联系。您可以在 RHEL 8文档中找到有关了解虚拟网络和配置网桥的更多详细信息。