OliverXQ
作者OliverXQ2021-08-10 16:01
浪潮商用机器有限公司, 浪潮商用机器企业云创新中心

IBM i 以太网链路聚合基本知识总结

字数 4251阅读 1994评论 0赞 1

在 IBM i 在 7.1TR3 版本之前,以太网冗余方案是基于 ARP 网络协议实现的, ARP 是 Address Resolution Protocol 的缩写,即地址解析协议, 它位于 OSI 网络七层模型的的第三层 — 网络层,它的主要用途是根据 IP 地址找出该物理设备的 MAC 地址,也就是由通信发起方发送 ARP request 广播包到其他主机,收到 ARP 包的主机查看包内的 IP 地址是否和自己的 IP 地址相一致,如果一致就会单向回复 ARP Reply 响应包,告知本机的 MAC 地址,然后将 IP 地址和 MAC 地址的对应关系放入 ARP cache ,并进行后续的数据通信。

由于 ARP 协议是建立在局域网内所有可信任主机节点的基础上,它不会检查自己是否发过请求包,也不会对应答包进行合法性检查,所以存在 ARP 欺骗等安全隐患。同时,因为在 IBM i 在配置上需要为虚拟端口( *VIRTUALIP )设置以 255.255.255.255 为子网掩码的 IP 地址,所以路由将会很困难,甚至无法实现某些场景,为了解决上述问题, IBM i 7.1 TR3 版本正式推出了一个新功能叫 link aggregation 链路聚合,它将几个以相同速度运行的全双工以太网链路结合在一起,形成一个具有单一 MAC 地址的逻辑链路。

以太网链路聚合的概念有几个不同的名称:

· IEEE 802.3ad 或 802.1ax。

· 思科以 EtherChannel 的名义支持这一概念。

· 其他供应商使用 " teaming " 或 " trunking " 的名称。

链路聚合具有两个主要优势:可靠性的提升和聚合吞吐量的提升。

如果链路聚合环境中的任何链路发生故障, IBM i 将会自动切换到其他活动链路上来传输数据帧,自动故障切换是以帧为基础的,不影响任何正在运行的工作负载。例如,在上图所示的链路聚合环境中,如果四个 port 中的任何一个链路发生故障,其余三条链路将继续处理在故障链路上传输的流量,总之,如果有任何链路可以运行,聚合环境将继续运作。

此外,每条运行中的聚合链路都能以配置的线速运行,出站流量根据配置的偏好分布。入站流量根据链路伙伴处的配置分散到各条链路。许多工作负载,特别是具有多个并行 TCP 或 UDP 对话的工作负载,可以利用这种配置在可用端口上扩展其吞吐量。

在 IBM i 上配置链路聚合时,应注意以下几点:

  1. 一个聚合线路描述最多支持聚合 8 个端口。

  2. 所有的链路聚合用到的端口都不能被其他 line description 、 LAN console 或 remote support 使用。

  3. 虚拟以太网端口( 268C 类型)不支持聚合线路描述。

  4. 只有当 HEA 逻辑端口、 native SR-IOV 逻辑端口或 virtual NIC ( VNIC )端口是其相应物理端口上的唯一逻辑端口,同时如果聚合线路使用 LACP ( Link Aggregation Control Protocol ),并且在线路描述的聚合策略 AGGPCY 参数中指定 *LNKAGG ,则支持以上这些端口,否则任何其他配置都会阻止链路伙伴检测故障,造成数据包丢失。

  5. 所有的端口必须支持全双工和首选线路速度。每个端口必须支持 1Gbps 或更高,即使这不是首选线速。

  6. 所有的端口都必须连接到同一个链接伙伴(交换机)。

  7. 如果使用静态聚合( ETHCHL ),链接伙伴上(交换机)的所有相应端口必须配置在一个共同的静态聚合中。如果使用 LACP(LNKAGG) ,则将链接伙伴上的所有相应端口配置为 LACP ,并共享一个共同的键字。

8.IBM i Link Aggregation 支持与任何链接伙伴的静态聚合( ETHCHL ),并支持与思科和 IBM 网络交换机的 LACP ( LNKAGG )。其他具有 LACP 功能的链接伙伴或许会工作,但不被 IBM 官方支持。

  1. 分区中不能有超过 255 个集合线路描述。

下面 3 张图是 CRTLINETH 命令中 AGGPCY 的帮助信息,大家可以参考一下,下面将会分别讲述。



配置链路聚合时,要注意 CRTLINETH 命令中的 AGGPCY ( Aggregate policy )参数的含义,这个参数被分成两个元素,一个是 "Standard" 另一个是 "Policy type" 。 "Standard" 控制与链路伙伴进行的任何协商方式,并要求与链路伙伴进行相对应的具体设置,如 ETHCHL 和 LNKAGG 下所述; "Policy type" 描述了决定每个出站的以太网帧使用哪个端口的过程,这种类型会有性能产生影响。

"Standard" 参数有两个值可供选择,一个是 ETHCHL, 另一个 LNKAGG 。

· *ETHCHL 的含义是使用静态聚合,它不与链接伙伴进行协商,链接伙伴也必须被配置为静态聚合。聚合资源列表( AGGRSCL )中的以太网端口和链路伙伴配置的端口列表应该完全对应。如果它们不一致,那么一些以太网数据包可能无法到达正确的目的地。有可能会出现以下错误: AGGRSCL 中的端口连接到不同的链路伙伴,或连接到正确链路伙伴中的错误端口,或在链路伙伴的聚合中选择的端口连接到了 AGGRSCL 定义之外的端口。

· *LNKAGG 的含义是强制使用 IEEE 802.3ad 标准中描述的 LACP (链接聚合控制协议),通过协商( negotiation )检测 AGGRSCL 中每个以太网端口的链接伙伴的身份。该标准要求链路伙伴在与 AGGRSCL 中的端口相连的所有端口上启用 LACP 的共同识别信息。为了使端口能够聚合并用于以太网流量,其伙伴端口必须对 LACP 协商做出响应,而且响应必须与所有其他聚合端口的识别信息相匹,可以用命令 DSPLIND 显示显示每个端口的聚合状态,该状态有助于定位为什么端口没有聚合成功。

"Policy type" 有五个值可供选择,分别是 DFT 、 SRCPORT 、 DESTPORT 、 SRCDESTP 、 *RNDRBN

· RNDRBN ( round-robin )仅适用于 ETHCHL ,这个算法的作用是强迫每一批出站的数据包使用下一个可用的端口,确保所有的端口都以近乎平等的方式使用。然而,这就产生了数据包可能被不按顺序传送的风险,而 TCP 连接中的不按顺序传送会导致重传和大量延迟,只有在不考虑这个问题的情况下才使用这个选项。

· 其余的策略类型都可以称为哈希模式,它们描述使用数据包中的哪些数据来确定每个出站帧使用哪个以太网端口,哈希模式迫使特定的 TCP 连接在一个特定的以太网端口上保持单线程,以避免不按顺序传送的问题。这些算法在使用多少数据包来决定使用哪个端口方面有所不同,最理想的状态应该是 AGGRSCL 中的端口上的出站流量大致相同。随着使用数据包量的增加,系统可以达到更好的状态,逐步在端口上分散不相关的流量以达到均衡分布。然而要注意,使用更多的数据包也迫使每个出站数据包进行一些额外的处理和缓存处理。

· *DFT 哈希模式使用的数据量最少,它只查看目标 IP 地址(或非 IP 帧的 MAC ),这种模式使用的处理器资源也少,但只有在流量同时分布到不同的 IP 地址时才会均匀分布,适合于有大量客户端的繁忙服务器的场景。

· SRCPORT 、 DESTPORT 和 SRCDESTP 哈希模式还要查看每个出站数据包的源和目的 TCP 或 UDP 端口号(如果存在),这种估算方式会产生更多的每包处理开销,但能更好地在多个以太网端口之间分配不相关的流量,例如向同一远程主机进行并行文件传输。如果主机处理器资源不存在瓶颈,则 SRCDESTP 是大多数系统的最佳选择。

*SRCPORT 适配器选择算法使用源 TCP/IP 或 UDP 端口值来计算适配器路径。

*DESTPORT 适配器选择算法使用目的地 TCP/IP 或 UDP 端口值来计算出站的适配器路径。

*SRCDESTP 适配器选择算法使用源和目的地 TCP/IP 或 UDP 端口值来计算出站的适配器路径。

链路聚合的配置方法相对于利用 ARP 协议配置 virtual IP 的方法简单很多,用一条命令就可以实现。

CRTLINETH LIND(ETHAGG) RSRCNAME(AGG) AGGPCY(ETHCHL *SRCDESTP) AGGRSCL(CMN07 CMN08)

参数含义:

ETHAGG :线描述的名称。

*AGG :表示创建以太网聚合线路。

ETHCHL SRCDESTP 表示采用静态聚合,适配器选择算法使用源和目的地 TCP/IP 或 UDP 端口值来计算出站的适配器路径。

CMN07 、 CMN08 是以太网卡的端口名称,即采用两个以太网卡端口实现链路聚合。

链路聚合配置成功后,可以用 DSPLIND 命令查看其状态 , 大家可以看到 CMN07 、 CMN08 状态正常,处于“ LINK UP" 状态。

然后在线描述 ETHAGG 上配置一个 IP 地址,工作状态正常。

最后做一个简单测试,验证拔掉 CMN08 端口上的网线,是否对网络通信有影响。

如下图所示,拔掉 CMN08 端口上的网线后, CMN08 的状态变为“ LINK DOWN ” , 网络访问始终没有异常。

插回 CMN08 端口上的网线后, CMN08 的状态自动恢复为“ LINK UP ”。

总之,相对于基于 ARP 协议的 virtual IP 技术来讲,链路聚合技术有很多优势,被广泛采用,配置方法简便,同时提高了 IBM i 上的网络弹性和网络传输性能,降低了安全风险,避免不必要的网络中断。

参考文档

https://www.ibm.com/docs/en/i/7.4?topic=ethernet-link-aggregation

谢谢阅读,仅供参考。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表