第 5 章 配置网络成组(Network Teaming)

5.1. 了解网络成组

联合或合并网络连接,以提供具有较高吞吐量的本地连接或冗余的方式可称为频道绑定以太网绑定端口聚合频道成组NIC 成组链接合并 等等。这个最初在 Linux 内核中应用的概念泛指绑定。现使用网络成组(Network Teaming)代表这个概念的最新应用。这不会影响现有的绑定驱动程序,网络成组会作为备选方法提供,且不会替换 Red Hat Enterprise Linux 7 中的绑定。
网络成组或成组旨在通过提供小内核驱动程序,以便使用不同的方法应用这个概念,实现数据包流的快速处理,并让各种用户空间应用程序在用户空间执行各种任务。该驱动程序有一个应用程序编程接口API),即 成组 Netlink API,可使用该接口进行 Netlink 通讯。用户空间程序库使用这个 API 与该驱动程序通讯。库指的是 lib,可用来进行成组 Netlink 通讯及 RT Netlink 信息在用户空间的换行。同时还提供应用程序守护进程 teamd 使用 Libteam 库。teamd 的实例可控制成组驱动程序中的实例。该守护进程通过使用附加代码(即 运行程序)采用负载平衡及 active-backup 逻辑(比如轮询)。通过使用这个方式分离代码,可方便网络成组对负载平衡及冗余要求的扩展及延伸解决方案。例如:使用 teamd 编写自定义运行程序应用新的逻辑可相对简单,即使 teamd 为自选程序,用户仍可编写其自己的应用程序以便使用 libteam
teamdctl 提供一个用来控制使用 D-bus 运行 teamd 实例的工具。它可为 teamd D-Bus API 提供 D-Bus 换行程序。默认情况下,teamd 使用 Unix 域套接字(Unix Domain Socket)进行侦听和通讯,但仍监控 D-Bus。这样做是保证能够在没有 D-Bus 或者尚未载入 D-Bus 的环境中使用 teamd。例如:引导 teamd 链接时不一定载入 D-Bus。可在运行时使用 teamdctl 工具读取配置、连接监控程序状态、端口状态检查及变更、添加和删除端口以及将端口状态在 active 和 backup 状态间切换。
成组 Netlink API 通信使用 Netlink 信息与用户空间应用程序通讯。用户空间库 libteam 不会直接与这个 API 互动,但会使用 libnlteamnl 与驱动程序 API 互动。
总之,不会直接配置或控制内核中运行的成组驱动程序实例。所有配置均采用用户空间应用程序完成,比如 teamd 程序。然后该程序会根据需要指向内核驱动程序。