如何设置、修改和删除 Linux 网桥和绑定如何设置、修改和删除 Linux 网桥和绑定如何设置、修改和删除 Linux 网桥和绑定如何设置、修改和删除 Linux 网桥和绑定
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何设置、修改和删除 Linux 网桥和绑定

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在本指南中,我们将讨论两个基本的网络概念:桥接和绑定。我们将看到如何在 Linux 系统中设置、修改和删除桥接和绑定。我们将在Linux Mint 20 Ulyana 系统上演示该过程。但是,您也可以在 Ubuntu 或 Debian 上实施相同的过程。

先决条件:

  • Linux系统至少有两个网络接口

  • 须藤用户

桥梁

桥接是在两个或多个网络接口之间创建桥梁,以在它们之间传递流量。它允许您与其他系统共享系统的互联网连接。考虑这样一个场景:系统 A(没有互联网连接)想要连接到另一个系统 B 的互联网连接。您所需要做的就是用以太网电缆插入两个系统并在它们之间建立桥梁。但是,为此,您的系统 B 上需要两个接口。一个接口将连接到互联网,另一个接口将连接到系统 A。

设置网桥

在我们的示例中,我们将在两个接口 ens33 和 ens39 之间建立一个桥 br0 。 enss33 接口连接到互联网,而 ens39 连接到第二个系统(需要互联网连接)。我们将通过 DHCP 设置网桥。

首先,您必须安装所需的程序bridge-utils来创建桥。在终端中发出以下命令来安装bridge-utils:

$ sudo apt install bridge-utils

在终端中使用以下命令创建桥接网络接口:

$ brctl addbr br0

此命令将创建一个名为 br0 的网桥。您可以将其命名为任何您想要的名称。

现在使用以下语法添加您想要桥接的两个接口(一个连接到互联网,另一个连接到第二个系统):

$ sudo brctl addif <bridge_name> <interface 1> <interface 2>

例如,在我们的例子中,它将是:

$ sudo brctl addif br0 ens33 ens39

上述命令会将 enss33 和 ens39 添加到网桥 br0 中。

现在,调出桥接口:

$ ip link set dev <bridge name> up

在我们的例子中,它将是:

$ ip link set dev br0 up

您还可以运行以下命令来启动并运行接口(在 DHCP 的情况下)。

$ sudo dhclient br0

现在,编辑 /etc/network/interfaces 文件 并附加以下行:

auto br0

iface br0 inet dhcp

bridge_ports ens33 ens39

现在使用以下命令重新启动网络服务:

$ sudo systemctl restart networking. service

现在桥已经建立,希望您能够从第二个系统访问互联网。

观桥

您可以使用以下命令查看系统上所有已配置的网桥以及连接到它们的接口。

$  brctl show

修改桥

添加一个接口到桥接

您可以将接口添加到现有网桥,如下所示:

$ sudo brctl addif bridge_name interface_name

例如,要将名为 ens38 的接口添加到名为 br0 的现有网桥,命令将为:

$ sudo brctl addif br0 ens38

从桥中删除接口

您还可以从网桥中删除接口,如下所示:

$ sudo brctl delif bridge_name interface_name

例如,要从名为 br0 的网桥中删除名为 ens38 的接口,命令为:

$ sudo brctl delif br0 ens38

删除桥

要从系统中删除桥接器,您首先需要将其关闭。使用以下命令来执行此操作:

$ sudo ip link set dev bridge_name down

例如,要删除名为 br0 的网桥,请首先将其关闭:

$ sudo ip link set dev br0 down

然后,要删除桥,请使用以下命令:

$ sudo brctl delbr bridge_name

在我们的示例中,命令为:

$ sudo brctl delbr br0

网络绑定

网络绑定组合了多个网络接口,将它们呈现为单个接口,实际上将它们的带宽组合到单个连接中。绑定网络接口可提高吞吐量,在其中一个接口发生故障时提供高可用性和故障转移。

网络绑定有多种模式,如下:

  • mode=0(平衡循环)

  • mode=1(主动备份)

  • mode=2(平衡异或)

  • 模式=3(广播)

  • 模式=4(802.3ad)

  • mode=5(平衡TLB)

  • mode=6(平衡ALB)

设置网络绑定

在本指南中,我们将设置模式 1(主动备份模式)。我们将绑定两个接口:ens33 和 ens38。 ens33 将是我们的活动接口,而ens38 将是备用接口。

首先,您必须在系统上安装ifenslave工具。为此,请在终端中发出以下命令:

$ apt install ifenslave

然后使用以下命令加载内核模块:

$ sudo modprobe bonding

上述命令将为 Linux 内核添加额外的功能。

现在,找出您的网络接口。您可以使用以下命令来执行此操作:

$ ip link

以下输出显示除环回接口外还有两个网络接口ens33和ens38。我们将在名为 bond0 的键中绑定两个接口,ens33和 ens38。

现在在终端中使用以下命令编辑网络接口文件:

$ sudo nano /etc/network/interfaces

修改文件如下:

确保将界面名称替换为您的名称。

auto ens33
iface ens33 inet manual

bond-master bond0

bond-primary ens33 ens38

auto ens38

iface ens38 inet manual

bond-master bond0

bond-primary ens33 ens38

auto bond0

iface bond0 inet dhcp

bond-slaves none

bond-mode 1

bond-miimon 100

现在保存并关闭接口配置文件。

现在使用以下命令重新启动网络服务:

$ sudo systemctl restart networking.service

运行“ifconfig”或“ip a”命令,这次您将看到 bond0 作为一个单独的接口,并为其分配了 IP 地址。您还可以看到没有分配给 ens33 和 ens38 接口的 IP 地址。

测试粘合

要验证绑定是否正常工作,请发出以下命令:

$ cat /proc/net/bonding/bond0

以下输出显示绑定模式为 active-backup,并且主设备和当前活动从设备均为 ens33。

现在要测试主动备份模式,请从网络上的另一个系统对绑定服务器 IP 地址(在我们的示例中为 192.168.72.179)运行连续 ping。您的 ping 操作应该成功。然后尝试关闭活动接口并查看 ping 是否继续或停止。如果能 ping 通,则说明绑定配置成功。

如果运行以下命令,您还可以看到主从设备 ens33 已关闭,而当前活动的从设备现在为 ens38。

修改绑定

更改活动从接口

您还可以使用 -c 选项更改绑定中的活动从接口,如下所示:

$ sudo ifenslave -c bond active_interface

例如,在我们的场景中,我们将 ens33 作为活动接口,而 ens38 作为备份接口。要将 ens38 设置为活动从接口,命令为:

$ sudo ifenslave -c bond0 ens38

现在要确认活动接口是否已成功更改,请在终端中发出以下命令:

$ cat /proc/net/bonding/bond0

在下面的输出中,您可以看到活动从接口已更改为 ens38。

改变绑定模式

要更改绑定模式,请编辑/etc/network/interfaces 文件并更改绑定模式值。例如,要将绑定模式更改为循环,请将绑定模式的值修改为0。

bond-mode 0

现在要确认绑定模式是否已成功更改,请在终端中发出以下命令:

$ cat /proc/net/bonding/bond0

在下面的输出中,很明显绑定模式已更改为循环。

附加从站

要将新的从属接口附加到已有的绑定,请使用以下语法:

$ sudo ifenslave -v bond interface_name

-v 在这里用于详细输出。

例如,要将新的从属接口 ens33 添加到现有的 bond0 中,命令为:

$ sudo ifenslave -v bond0 ens33

分离从站

要将从属接口与绑定分离,请使用 -d 选项,如下所示:

$ sudo ifenslave -v bond interface_name

-v 此处用于详细输出。

例如,要将从属接口 ens33 与 bond0 分离,命令为:

$ sudo ifenslave -d -v bond0 ens33

删除绑定

要删除绑定,请编辑/etc/network.interfaces文件,并删除与绑定相关的配置。只保留接口配置,如下所示:

auto ens33
iface ens33 inet dhcp

auto ens38
iface ens38 inet dhcp

然后保存并关闭接口配置文件。

现在使用以下命令删除绑定:

$ sudo rmmod bonding

然后重新启动网络服务:

$ sudo systemctl restart networking.service

这就是全部内容了!在本文中,首先,我们展示了如何设置网桥以与其他系统共享互联网连接。然后我们展示了如何通过在桥中添加或删除接口来修改桥。接下来,我们展示了如何设置网络绑定以提高吞吐量、高可用性和故障转移。然后我们展示了如何通过更改其活动从属、附加/分离从属以及更改绑定模式来修改绑定。我们还展示了如何删除桥和键,以防您不再需要它们。

©2015-2025 Norria support@norria.com