第 8 章 配置网络合作
8.1. 了解网络合作
多种名称(如通道绑定、以太网绑定、端口中继、通道合作、NIC团队或链路聚合)的结合或 聚合,以提供吞吐量更高的逻辑链接或提供冗余。这个概念最初在 Linux 内核中实施,广泛称为
绑定
。网络合作这一术语已被选为指这个新的概念实施。现有绑定驱动程序不受影响,网络合作作为备选方式提供,不会替代 Red Hat Enterprise Linux 7 中的绑定。
注意
关于模式 4 链路聚合控制协议(LACP)合作模式,需要配置交换机来聚合链接。如需了解更多详细信息,请参阅 https://www.kernel.org/doc/Documentation/networking/bonding.txt
网络合作或团队旨在通过提供小型内核驱动程序来实现数据包流的快速处理,以及各种用户空间应用程序来执行用户空间中的所有其他操作,从而以不同的方式实施该概念。驱动程序具有应用程序编程接口( API),称为 “Team Netlink API”,用于实施 Netlink 通信。用户空间应用可以使用此 API 与驱动程序通信。提供了一个称为 “lib” 的库,用于对团队 Netlink 通信和 RT Netlink 消息进行用户空间换行。还提供使用
libteam
库的应用守护进程 teamd
。一个 teamd
实例可以控制一个团队驱动程序实例。“守护进程通过使用称为运行程序的额外代码来实施负载平衡和” active-backup 逻辑,如循环。通过以这种方式隔离代码,网络合作实施提供了易于扩展且可扩展的解决方案,以满足负载平衡和冗余要求。例如,自定义运行程序可以相对轻松地编写以通过 teamd
实施新逻辑,即使 teamd
是可选的,用户可以自行编写应用以使用 libteam。
teamdctl 实用程序可用于使用 D-bus 控制正在运行的
teamd
实例。teamdctl 围绕 teamd
D-Bus API 提供 D-Bus 打包程序。默认情况下,teamd
使用 Unix 域套接字侦听和通信,但仍监控 D-Bus。这是为了确保 teamd
可用于 D-Bus 不存在或尚未加载的环境中。例如,当通过 teamd
链接引导时,D-Bus 尚未加载。teamdctl 实用程序可在运行时用于读取配置、Link-watchers 状态、检查和更改端口状态、添加和删除端口,以及更改活动状态和备份状态之间的端口。
团队 Netlink API 使用 Netlink 消息与用户空间应用通信。
libteam
用户空间库不直接与 API 交互,而是使用 libnl 或 teamnl 与驱动程序 API 交互。
总之,在内核中运行的团队驱动程序实例不会被直接配置或控制。所有配置都借助用户空间应用来完成,如 teamd 应用。然后,应用程序会相应地指示内核驱动程序部分。
注意
在网络合作环境中,术语
端口
也称为 从设备
。当 直接使用
teamd
时,首选使用 从
接口,而使用 NetworkManager 来指代创建组的接口。