网站搜索

如何在 Debian Linux 上配置网络 (NIC) 绑定/分组


NIC 组合为服务器/工作站计算领域的冗余和高可用性提供了一种有趣的解决方案。由于能够拥有多个网络接口卡,管理员可以在访问特定服务器的方式上发挥创意,或者创建更大的管道以使流量流经特定服务器。

另请阅读:如何在 Ubuntu 中配置网络绑定或分组

本指南将介绍 Debian 系统上两个网络接口卡的组合。名为ifenslave的软件将用于在绑定设备上附加和分离NIC。然后,绑定设备成为与内核交互的网络设备,但物理上使用实际的网络接口设备(eth0eth1 等)。

Debian Linux 中的绑定

在进行任何配置之前要做的第一件事是确定系统实际需要实现的绑定类型。截至撰写本文时,Linux 内核支持六种绑定模式。其中一些绑定“模式”设置起来很简单,而另一些则需要在链路连接的交换机上进行特殊配置。

了解债券模式

债券模式 0 – 平衡-rr

这种 NIC 组合方法称为“循环”,因此名称中为“RR”。使用这种绑定方法,网络数据包将通过组成绑定接口的每个网络接口卡进行轮换。

例如,具有 eth0eth1eth2 的系统均从属于 bond0 接口。当使用绑定模式 0 启用此接口时,会将第一个数据包发送到 eth0,将第二个数据包发送到 eth1,将第三个数据包发送到 eth1。eth2,然后从 eth0 开始处理第四个数据包。这就是该模式的“循环”名称的由来。

绑定模式 1 – 主动备份

使用这种绑定方法,只有一个网络接口处于活动状态,而绑定中的其他接口只是等待主网络接口卡的链路出现故障。

债券模式 2 – 平衡异或

在平衡 XOR 绑定模式中,绑定将评估源 MAC 地址和目标 MAC 地址,以确定将网络数据包发送到哪个接口。此方法将为给定的 MAC 地址选择相同的接口,因此能够实现负载平衡和容错。

绑定模式 3 – 广播

在此方法中,绑定设备将从所有从属接口传输数据,因此此特定绑定方法的名称为“广播”。这种方法的用途很少,但它确实提供了一定程度的容错能力。

绑定模式 4 – 802.3ad

这是一种用于链路聚合的特殊绑定方法,并且需要在该特定绑定接口所连接的交换机上进行特殊配置。此方法遵循IEEE链路聚合标准,并提供容错和增加的带宽。

绑定模式 5 – 传输负载平衡

TLB中,绑定将正常接收从属接口上的流量,但当系统需要发送流量时,它将根据每个接口的负载/队列确定最适合传输数据的接口接口。

绑定模式 6 – 自适应负载平衡

ALB中,绑定的负载平衡类似于绑定模式5,但还增加了负载接收平衡的能力。

根据系统将扮演的角色,选择合适的绑定方法势在必行。本教程将在具有两个网络接口(eth0eth1)的 Debian Jessie 上完成,并将设置为绑定模式 1< 或主动备份。

然而,在不同模式之间切换非常简单,因为它只是网络接口文件中的更改(假设未选择绑定模式 4,因为它需要交换机配置)。

NIC 分组配置

此过程的第一步是从存储库获取正确的软件。 Debian 的软件称为 ifenslave,可以使用“apt”安装。

apt-get install ifenslave-2.6

安装软件后,需要告诉内核为当前安装以及将来的重新启动加载绑定模块。要加载这一次模块,可以使用“modprobe”实用程序加载内核模块。

modprobe bonding

同样,为了确保此绑定在系统重新引导时处于活动状态,需要修改“/etc/modules”文件以通知内核在启动时加载绑定模块。

echo 'bonding' >> /etc/modules 

现在内核已经了解了 NIC 绑定所需的模块,是时候创建实际的绑定接口了。这是通过位于“/etc/network/interfaces”的接口文件完成的,并且可以使用任何文本编辑器进行编辑。

nano /etc/network/interfaces

该文件包含系统已连接的所有网络设备的网络接口设置。此示例有两个网卡(eth0eth1)。应在此文件中创建适当的绑定接口,以将两个物理网卡从属于一个逻辑接口。这是一个非常简单的接口文件,但它完成了创建工作绑定接口所需的一切。

第一节(上面的红色框)是标准环回接口配置。 “auto lo”通知内核在启动时自动启动适配器。 “iface lo inet Loopback”告诉系统该接口是系统的环回接口或更常见的引用为127.0.0.1

第二节(上面的黄色框)是将要使用的实际绑定接口。 “auto bond0”告诉系统在系统启动时自动初始化绑定。 “iface bond0 inet dhcp”可能很明显,但为了以防万一,此节指出名为 bond0 的接口应通过 DHCP 获取其网络信息(动态主机控制协议)。

bond-mode 1”用于确定该特定绑定接口使用哪种绑定模式。在本例中,bond-mode 1 表示该绑定是主动备份设置,选项“bond-primary”表示该绑定要使用的主要接口。 “slaves eth0 eth1”指出哪些物理接口是该特定绑定接口的一部分。

接下来的几行对于确定在发生链路故障时何时应将绑定从主接口切换到从属接口之一非常重要。 Miimon 是可用于监视绑定链接状态的选项之一,另一个选项是使用 arp 请求。

本指南将使用miimon。 ‘bond-miimon 100’告诉内核每 100 毫秒检查一次链接。 ‘bond-downdelay 400’表示系统将等待 400 毫秒,然后才得出当前活动接口确实已关闭的结论。

bond-updelay 800’用于告诉系统等待使用新的活动接口,直到链路建立后 800 毫秒。关于updelaydowndelay的注意事项,这两个值都必须是miimon值的倍数,否则系统将向下舍入。