了解分配给路径的带宽不等的 BGP 流量的负载平衡
多路径选项从活动路由决策过程中移除决胜局,从而允许将从多个来源获知的等价 BGP 路由安装到转发表中。但是,当可用路径的成本不相等时,您可能希望以非对称方式均衡流量负载。
在转发表中安装多个下一跃点后,Junos OS 按前缀负载均衡算法会选择特定的转发下一跃点。此过程会针对数据包的源地址和目标地址进行哈希处理,以便确定性地将前缀配对映射到其中一个可用的下一跃点。当散列函数带有大量前缀时(例如可能发生在互联网对等交换上),按前缀映射效果最佳,并且它可以防止通信节点对之间的数据包重新排序。
企业网络通常希望更改默认行为,以唤起 按数据包的 负载均衡算法。此处强调的是“按数据包”,因为其用法用词不当,源于原始互联网处理器 ASIC 的历史行为。实际上,当前的瞻博网络路由器支持按前缀(默认)和按流的负载平衡。后者涉及针对各种第 3 层和第 4 层标头进行散列,包括源地址、目标地址、传输协议、传入接口和应用端口的某些部分。这样做的结果是,现在各个流量都会被散列到特定的下一跃点,从而在可用的下一跃点之间实现更均匀的分布,尤其是在在较少源和目标对之间进行路由时。
使用按数据包的负载平衡,包含两个端点之间通信流的数据包可能会被重新排序,但各个流中的数据包会保持正确的排序。无论您选择按前缀还是按数据包负载平衡,接入链路的不对称都可能带来技术挑战。无论通过哪种方式,与映射到快速以太网接入链路等的流量相比,映射到 T1 链路等的前缀或流量的性能都会下降。更糟糕的是,在流量负载较大的情况下,任何尝试均等负载平衡都可能导致 T1 链路完全饱和,并因数据包丢失而导致会话中断。
幸运的是,瞻博网络 BGP 实施支持带宽社区的概念。此扩展社区对给定下一跃点的带宽进行编码,当与多路径结合使用时,负载均衡算法将按照下一跃点的相对带宽成正比,在下一跃点集中分配流量。换句话说,如果你有一个 10 Mbps 的下一跳和一个 1 Mbps 的下一跳,那么平均每使用一个低速的下一跳,就会有 9 个流映射到高速下一跳。
不平等负载平衡的工作原理(控制平面和 PFE)
在支持的平台上,数据包转发引擎 (PFE) 支持基于路径带宽的 BGP 不等负载平衡。借助此功能,设备能够按照BGP路径的相对容量比例分配流量,而不是平均分配流量。
为实现这一点,控制平面会考虑与每条路径关联的相对成本或带宽,为每个符合条件的下一跃点计算一组负载均衡权重(平衡值)。然后将这些计算值编程到 PFE 中。
PFE 使用这些权重在可用路径上按比例分配流量,确保更高容量的链路承载相应更大的流量份额。在可用路径具有不等特性的环境中,这种方法可以提高链路利用率,并有助于防止低带宽路径拥塞。
只有按数据包负载平衡才支持使用 BGP 带宽社区。
配置任务由两部分组成:
-
配置外部 BGP (EBGP) 对等会话,启用多路径,并定义导入策略,以便使用反映链路速度的带宽社区标记路由。
-
启用按数据包(实际上是按流)的负载平衡,以实现最佳流量分配。