指数
什么是等价多路径 (ECMP)?
配置语法
例子
目标
拓扑
配置示例
同等成本多路径 (ECMP) 是一种第 3 层路由策略,用于使用多个可用路径将流量转发到目标。ECMP 会增加到目标的路径数量,并增加到达目标的可用带宽。ECMP 机制通过使用未使用的链路和带宽实现负载平衡和增加带宽。
ECMP 哈希
不同的层需要不同的哈希种子,以防止树大小的数据中心网络拓扑中的流量极化。在 SONiC 中,默认情况下,我们对 ECMP 和 LAG 使用不同的哈希算法,因此需要配置哈希种子。
虽然 ECMP 可以增加可用链路的数量,但所有可用路径都应紧密共享,以便没有路径过度或未充分利用。您可以修改 IP ECMP 负载共享哈希参数,以影响跨多个可用路径的流量负载共享。要获得最佳 ECMP 负载共享,请在位于源和目标之间的所有设备中配置 ECMP。
最佳做法是在每个层上根据网络中的独特流量模式(如果需要)配置不同的负载平衡参数。例如,在路由器 A 上,用于负载平衡的哈希字段可能包括 source-ip、dest-ip、protocol、source-port 和 L4-dest-port,而在路由器 B 上,哈希字段只能使用 source-ip、dest-ip 和 protocol。
配置 ECMP 哈希种子。
为每个设备配置唯一的哈希种子以避免哈希极化,这可能会导致网络拥塞。当多个数据流尝试使用相同的交换机端口访问交换机时,可能会发生网络极化。
配置语法 |
说明 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
配置哈希种子。种子值的值为 0 到 16777215。 |
在 BGP 配置中激活多路径
配置语法 |
说明 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths {number}
|
配置可选择的最大 eBGP 路由数,以形成用于负载共享的同等成本多路径 (ECMP) 路由。 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths ibgp {number} |
配置可选择的最大 iBGP 路由数,以形成用于负载共享的同等成本多路径 (ECMP) 路由。 |
为 IPv4 配置 ECMP 负载共享哈希(可选)。
配置语法 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv4 {ipv4-src-ip | ipv4-dst-ip | ipv4-ip-proto | ipv4-l4-src-port| ipv4-l4-dst-port | symmetric}
|
为 IPv6 配置 ECMP 负载共享哈希(可选)。
配置语法 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv6 {ipv6-src-ip | ipv6-dst-ip | ipv6-next-hdr | ipv6-l4-src-port| ipv6-l4-dst-port | symmetric}
|
请考虑 Dell SONiC 交换机有两个从 BGP 到 4.4.4.4/32 路由的路由。我们必须使用 ECMP 达到 4.4.4.4/32,并同时使用两个路由。
我们可以查看 BGP 邻居通告到交换机的路径,以访问主机或子网,使用 命令 show bgp ipv4 单播 <主机/子网>。示例输出如下所示
DELLSONiC# show bgp ipv4 单播 4.4.4.4
适用于 4.4.4.4/32 的 BGP 路由表条目
路径:(2 个可用,最佳 2 个,表默认值)
200
10.0.0.2 从 10.0.0.2 (20.0.0.1)
来源不完整, 指标 0, 有效, 外部, 多路径
上次更新:2023-12-25 14:34:55+0000
200
30.0.0.2 中的 30.0.0.2 (30.0.0.2)
来源不完整, 指标 0, 有效, 外部, 多路径, 最佳 (较旧的路径)
上次更新:2023-12-25 14:34:55+0000 |
|
让我们激活 ECMP。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
让我们将最大 BGP 路径配置为 2,因为我们有两个路径。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp 100
DELLSONiC(config-router-bgp)# address-family ipv4 unicast
DELLSONiC(config-router-bgp-af)# maximum-paths 2 |
要验证路由表中是否安装了两个路由,请使用以下命令:
show ip route <hopst/subnet>
DELLSONiC# show ip route 4.4.4.4
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
B>* 4.4.4.4/32 via 10.0.0.2 Eth1/1 20/0 03:02:41 ago
* via 30.0.0.2 Eth1/2
|