首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏lakezhong的专栏

    ECMP在Linux内核的实现

    ECMP在不同版本的Linux内核实现方式不一样,总体上可分为4个阶段。 内核版本ECMP功能< Pre kernel v2.2无ECMP。 >= Pre kernel v2.2 < kernel v3.6有ECMP(Per-flow)>= kernel v3.6 < kernel v4.4有ECMP(Per-packet) 可以通过 ECMP_kernel_3_5_7.png ECMP特性是通过选取IP报文转发的下一跳实现的。 先看关键函数“ip_route_input_common()”。 下面结合代码来分析上述两种情况下的ECMP实现。 这个变更破坏了ECMP在历史版本的默认行为,因此遭到了社区的反对,在4.4版本中Per-flow类型的ECMP又回来了,下一节我们再分析。

    8.9K52发布于 2019-06-22
  • 来自专栏SDNLAB

    数据中心内负载均衡-ECMP的使用分析

    ECMP(Equal-cost multi-path) ? ECMP算法被多种路由协议支持,例如:OSPF、ISIS、EIGRP、BGP等。在数据中心架构VL2中也提到使用ECMP作为负载均衡算法。 对于未开启ECMP的网络来说,无法充分利用路径资源。 ECMP的路径选择策略有多种方法: ◆ 哈希,例如根据源IP地址的哈希为流选择路径。 ◆ 轮询,各个流在多条路径之间轮询传输。 图1.使用ECMP进行负载均衡 ? ECMP面临的问题 ? 然而ECMP是一种较为简单的负载均衡策略,其在实际使用中面临的问题也不容忽视。 以上,为使用ECMP算法进行负载均衡的分析,在数据中心这种突发性流量多,大象流与老鼠流并存的环境中,需要慎重考虑选择的负载均衡策略,ECMP简单易部署但也存在较多问题需要注意。

    4.5K60发布于 2018-03-28
  • 等价多路径路由(ECMP)实现双宽带上网

    本人使用Ubuntu24.04,如果是旧版Ubuntu或者CentOS可能不采用netplan,旧的Linux内核也可能没有ECMP,照搬方法时请谨慎,并且做好服务器断网的思想准备。 自动路由的工作原理ECMP (等价多路径路由)内核将流量分配到多个等价路径基于五元组(源IP、目的IP、源端口、目的端口、协议)进行哈希同一连接的所有数据包保持同一路径连接跟踪nf_conntrack  模块确保回复流量返回同一接口防止非对称路由问题ARP优化减少ARP广播对双网络的影响确保本地响应使用正确接口首先,创建负载均衡脚本(/usr/local/bin/enable-ecmp.sh):#! crontab -e# 添加以下内容@reboot sleep 15 && /usr/local/bin/enable-ecmp.sh重启后即可使用。 本人使用n2n组网,在开启ECMP之后,打洞始终无法成功,只能是转发模式。问题可能来自移动宽带,也可能是ECMP本身的问题。

    56100编辑于 2025-08-08
  • 来自专栏SDNLAB

    基于可编程交换芯片的硬件负载均衡应用

    Figure 1, ECMP path selection 基于基本的哈希多项式,Tofino可以支持客户自定义的哈希多项式。 用户可以增加静态ECMP / LAG成员的权重,也可以在ECMP / LAG成员之间进行轮循。 如果接收端可以容忍流的重新排序,则用户还可以P4 编程Tofino将数据包逐个分发到ECMP / LAG成员,以实现非常公平的硬件负载平衡。 相同流的小流可以通过不同的ECMP路径,这不会引起任何重新排序问题。由于所有流量都被分成细小流量,因此在老鼠流或大象流之间也可以实现平衡。 ? 可以考虑增加一段P4程序,在数据面自动检测ECMP所有路径的带宽占用情况,在流量很高时动态添加新路径,或在流量很低时动态删除路径。以监视ECMP路径的速率和流速。

    2.1K10发布于 2020-06-15
  • 来自专栏SDNLAB

    如何像Facebook一样构建数据中心 – BGP在大规模数据中心中的应用(3)

    基础ECMP ECMP是CLOS拓扑里面基本的流量分担机制,有以下特点/属性: 所有去往相同IP的流量都应该由从低层tier往所有的高层tier的链路分担。 一致性哈希 作者推荐使用一致性哈希(Consistent Hash)来解决在ECMP组里增加/删除下一条对流量的影响,这里就不展开讨论了。 在最坏的情况下,数据中心中所有的设备要么彻底删除一个prefix,要么在FIB里更新ECMP组。但是很多故障并不会有如此大的影响范围。 2.Tier 1设备故障:这种情况下,所有直连的Tier 2设备需要需要更新ECMP组,Tier 3设备同样不知情。 在多个prefixes需要在FIB中更新的情况,我们需要注意的是这些prefixes共享一样的ECMP组。

    1.6K10发布于 2018-07-31
  • Meta AI网络架构前传:RoCEv2在Llama 3万卡集群中的失效与救赎

    作为本系列首作——本文深度复盘传统RoCEv2在AI“低熵、突发、大象流”下的失效难题,详述了Meta在万卡训练集群实战中的全链路工程优化:涵盖从星型到三层Clos的拓扑变革,从E-ECMP到集中式TE PART 01 RoCEv2的核心挑战:AI流量特征与ECMP失效 随着AI训练集群规模的不断扩大,计算能力和网络拓扑结构的扩展性挑战引出了一个核心问题:如何高效地平衡和路由海量训练流量? ,在AI训练流量低熵场景下,ECMP算法性能表现极差,为了阶段性缓解流量冲突,Meta曾采用将RTSW的上下行带宽收敛比调整为2:1的成本昂贵方案作为短期过渡缓解措施。 3.2 增强型ECMP (E-ECMP) 与 QP扩展 解决方案:人为地为网络流创造更多的熵——配置交换机执行增强型 ECMP (E-ECMP),利用交换机 ASIC的UDF功能对RoCE 数据包的目标 QP字段进行额外的哈希运算来人为的增加熵值,生产环境测试表明,与未进行QP扩展的基线 ECMP相比,对于AllReduce 集体处理,E-ECMP 结合QP扩展使性能提升高达 40%。

    48711编辑于 2025-12-22
  • 来自专栏lakezhong的专栏

    一个简化的可横向扩容的高可用的四层接入网关的原理说明——ECMP

    使用的技术包括ECMP和LVS(ipvs ipvsadm)。 ECMP(Equal Cost Multi Path)用作L3(三层)负载均衡,用于解决“负载均衡服务器”的单点和扩缩容的问题。支持ECMP特性的路由器将IP报文转发到不同的“负载均衡服务器”上。 本文就ECMP做详细的说明,并搭建图1中的“ECMP部分”。 LVS用作L4(四层)负载均衡,用于解决单台“真实服务器”扩缩容麻烦和性能瓶颈的问题。 一个简化的可横向扩容的高可用的四层接入网关的原理说明——ECMP和NAT.png 为了实现可横向扩缩容和高可用,在“入口路由”到“负载均衡服务器”之间使用了ECMP,中文名称叫等价多路径 ECMP本是路由器的技术,那在搭建这个简化的“接入网关”我们配置好路由ECMP就好了,还需要做什么呢?

    5K50发布于 2019-06-22
  • 来自专栏小白debug

    能ping通,TCP就一定能连通吗?

    可以看到,中间某几行,有好几个IP,也就是说这一跳里同时可以选好几个目的机器,说明这段路径支持ECMPECMP有什么用 利用等价多路径,我们可以增加链路带宽。 举个例子。 ECMP的路径选择策略 当初开启ECMP就是为了提升性能,现在反而加重了乱序,降低了TCP传输性能。 这怎么能忍。 为了解决这个问题,我们需要有一个合理的路径选择策略。 如果路由开启了ECMP,那就可以同时利用这几条路径做传输。 ECMP可以提高链路带宽,同时利用五元组做哈希键进行路径选择,保证了同一条连接的数据包走同一条路径,减少了乱序的情况。 可以通过traceroute命令查看到链路上是否有用到ECMP的情况。 开启了ECMP的网络链路中,TCP和ping命令可能走的路径不同,甚至同样是TCP,不同连接之间,走的路径也不同,因此出现了连接时好时坏的问题,实在是走投无路了,可以考虑下是不是跟ECMP有关。

    2.2K10编辑于 2022-12-02
  • 来自专栏智算中心网络

    动态WCMP+Flowlet ALB:双引擎驱动智算网络负载均衡

    传统均衡技术失效,逐流ECMP依赖Hash算法在少量大流上极易导致严重负载不均,特定路径拥塞而其他路径闲置。 逐包ECMP乱序问题严重,严重影响GPU计算效率。AI训练任务(如AllReduce)具有全局同步特性。 基于Flowlet的自动负载均衡(ALB):​作为ECMP的智能增强器:​ 在ECMP选定的下一跳组内,ASIC芯片实时监测组内各出端口的瞬时负载和队列时延。 传统ECMP困境:​ Hash冲突可能导致所有大象流涌向同一Spine,造成Leaf1上行口拥塞丢包,拖慢整个训练任务。 Flowlet ALB优化ECMP场景: 在Leaf1到Spine的ECMP组内,某条链路突发微拥塞导致时延升高。Flowlet ALB作用:​ASIC实时检测到该出端口负载/时延超标。

    46210编辑于 2025-06-20
  • 来自专栏鹅厂网事

    可视化网络路径探测HashTrace

    挑战 作为内行,大家也都造现在的网络设计讲究双节点冗余保护——几乎每一过一个hop都有2台或2个以上的冗余节点,在路由上形成非常复杂的ECMP(假设端到端路径中有n个hop均是2台节点,那么端到端 ECMP一共有2^n个),传统的ping和traceroute在这种场景中有几个缺陷: l ping和traceroute的执行是命令行方式,返回结果也是命令行环境的字符串形式,解读起来不够直观,特别是 traceroute需要一定的网络功底; l 网络设备在ECMP转发时,由于不同链路转发延时的区别,如果对于一个会话的数据包在所有ECMP路径上轮询转发,会导致jitter,网络体验会非常差,所以网络设备会将每个会话的所有数据包都发往其中一条路径 或者MPLS TE隧道,traceroute无法反馈L2 ECMP结果和MPLS TE隧道信息,这些信息我们称为物理路径。 对策和方案 为了探测所有可能的ECMP,Paris Trace出现了,它可以发现并探测端到端的ECMP各个冗余节点。

    3.2K80发布于 2018-01-30
  • 来自专栏鹅厂网事

    透过MH370看网络自动化监控

    所有匹配同一条路由的数据包在转发平面被不同的因子(如5元组、3元组、2元组等)定义成不同的流,不同的流通过hash算法映射到这条路由不同ECMP上,由于流的定义和流量大小没有关系,因此实际的ECMP链路利用率并不是规划中的流量负载均衡 ,而是流数量负载均衡; l ECMP目前的监控也是比较薄弱的,有可能出现这种情况传统的网管是不会告警的,ECMP路由正常,但转发流量却一边是100%另外一边是0%,智能的网管应该产生告警,让我们检查一下是否 hash的因子没有配置正确或者设备出现了故障; l 在路由层面的ECMP确定好outputinterface正好是一个LACP聚合组,在流量在LACP聚合组内形成L2ECMP,这时候同样采用hash进行流数目负载均衡 ECMP有L3和L2两个层面,比如Leaf1上就是2条L3 ECMP路由 1. 每条activeroute都对应一个output-if; 2. 在Spine1的情况会复杂一些,因为这是一个L2/L3混合ECMP场景: 1. L2ECMP首先要检查所有成员链路状态是否是selected; 2.

    1.1K90发布于 2018-01-30
  • 来自专栏智算中心网络

    如何实现动态负载均衡?揭秘基于Flowlet的自适应路由机制

    当前主流的负载均衡技术主要包括三种类型:逐流的ECMP负载均衡、逐包负载均衡以及基于子流(Flowlet)的负载均衡。本文将从技术原理、优缺点及适用场景等方面对这三种技术进行系统对比与分析。 基于ECMP的逐流负载均衡ECMP(Equal-Cost Multi-Path)采用逐流负载分担机制,其核心原理是基于数据包的特征信息(如IP五元组)进行哈希计算,依据哈希值选择转发路径。 注:可通过静态方式与自动化配置工具缓解该问题,详见:主动规划+自动化配置工具,简单应对AI智算网络ECMP负载不均。 ASIC维护宏观流表(Macro Flow Table),记录各宏观流及其对应出接口(或ECMP成员链路)。通过实时测量端口负载与延迟,ARS以Flowlet为粒度将流量路由至更优路径。 ECMP组实时更新各出接口的链路质量,并在路径分配时依据最新结果择优转发。路径主动分配时机路径主动分配发生于流分割过程末尾。

    55210编辑于 2025-09-22
  • 合理使用光互联产品减少万卡集群高性能网络中TOR交换机上行网络的ECMP哈希冲突

    于是业界使用一种ECMP的方法,通过哈希运算(这里不做深究,简单点理解就是一种网络路径选择策略)进行数据流的网络路径选择,从而均衡所有网络路径的数据流。 本文通过分析万卡集群高性能网络TOR层的ECMP哈希冲突,介绍如何通过使用有源光缆AOC和无源铜缆DAC分支线缆产品来减少ECMP哈希冲突的方法。 1.ECMP(Equal-Cost Multi-Path Routing)等价多路径路由 未开启ECMP时,无法充分利用路径资源。 开启ECMP,便可同时利用多条路径,通过哈希运算进行负载均衡,服务器A到服务器C数据流选择橘色路径,服务器B到服务器D的数据流选择红色路径,如图2所示。 QSFP56封装 端口2:200G QSFP56封装5.结语 以上分析的是通过选择大成鹏通信有源光缆AOC和无源铜缆DAC分支线缆产品,来减少万卡集群高性能网络中TOR交换机上行网络的ECMP

    48110编辑于 2024-08-15
  • 来自专栏SDNLAB

    基于Segment Routing技术构建新一代骨干网:智能、可靠、可调度(一)

    为优化骨干网流量转发,在关键设备上开启如下功能: 1、为实现骨干网等价路由(以下简称ECMP),必须在M-Core和RR上开启BGP ADD-PATH属性; 2、为保证IGP最短路径转发,跨域之间ISIS -全局Segment,SR域中的所有节点都知道如何处理Prefix-SID -支持多跳,单个Segment跨越路径中的多跳,这样就减少了路径所需要的Segment数量,并允许跨多跳的等价路径 -支持ECMP ,走管理员指定的路径转发 实际部署中应尽量少用Adj-SID,因为其不支持ECMP,且会增加Segment-list长度,因此建议多使用Prefix-SID,即支持ECMP,又可以减少Segment-list 集合的其它成员来处理去往Anycast-SID的流量;Anycast-SID指令是:引导流量沿着支持ECMP的最短路径去往该Segment相关联的前缀。 Anycast-SID具有如下特性: -全局Segment -天生支持ECMP -支持高可用性 -支持流量工程 注意:所有节点必须配置相同的SRGB,才可以通告相同的Anycast Prefix-SID

    2.1K22发布于 2021-02-08
  • 来自专栏明明如月的技术专栏

    软考高级架构师:网络容易设计(备用路径和负载分担)

    通过配置多协议标签交换(MPLS)、等价多路径(ECMP)等技术,实现流量在多条路径之间的均衡分配。 ECMP(等价多路径) 负载分担中使用等价多路径(ECMP)的目的是什么? A. 防止网络攻击 B. 实现流量在多条路径之间的均衡分配 C. 创建安全的网络环境 D. ECMP(等价多路径)是实现流量负载分担的一种技术,不是用于实现备用路径的。 答案:B。等价多路径(ECMP)的目的是实现流量在多条路径之间的均衡分配,从而提高网络的性能和 吞吐量。

    41500编辑于 2024-05-25
  • 来自专栏星融元

    功能应用:RoCE与IB协议栈的选择策略(二)

    ECMP RoCE的ECMP数据中心IP网络为了高可靠和可扩展性,通常采用Spine-Leaf等网络架构。 在RoCE网络中,为了进一步细分RDMA操作,可以进一步识别BTH头部中的目的QP信息,从而实施更细粒度的ECMP。 InfiniBand的ECMP在控制平面,IB的路由基于子网管理器,在拓扑发现的基础上实现ECMP,但由于集中式的子网管理器与网络设备分离,可能无法及时感知网络拓扑的变化,进而实现动态的负载均衡。 在数据平面,IB的ECMP同样基于哈希计算和轮转机制。 在ECMP方面,两者均实现了基于Hash的负载分担。

    1.3K11编辑于 2024-11-07
  • 来自专栏网络虚拟化

    智能网卡系列三:P4语言的演进简述

    在此开发环境中,我们使用 P4 来表示数据中心交换机的转发行为,其功能集(如下表所列)与当前的共享内存交换机相当:包括 VLAN、ACL、隧道和 ECMP。 其中之一是等价多路径 (ECMP),这是一种在数据中心中使用的负载平衡机制,用于在一组候选传出链路之间分散流量。 如果没有 ECMP,路由可以按如下方式工作:将匹配键视为目标地址,操作仅基于此键选择输出端口。但是,要实现 ECMP,没有从目标地址到输出端口的 1:1 映射。 相反,ECMP 输出端口是根据给定流的 5 元组的哈希动态选择的。从 1:1 匹配操作映射转变为“一对一多”操作映射需要我们引入操作配置文件的概念。 在 ECMP 的情况下,此选择器是 5 元组的哈希。 我们还添加了一些新的动作原语;我们在这里总结其中最有趣的内容。

    84430编辑于 2023-07-09
  • 来自专栏SDNLAB

    Segment Routing 在大规模数据中的应用(上)

    在RFC7938提出的方案里,仍然有一些性能和可靠性的问题我们将在这篇RFC设计中去解决 问题1:ECMP通常是基于流的,这就意味着大象流(比较大的,时间长的流)将会影响到老鼠流(较小的存在时间短的流) 换句话说就是基于流的ECMP在流的存活时间分布不均匀的时候效率比较低下。 问题2: 使用了ECMP的最短路径算法是无法感知到网络失衡的。 流量从host A到host B每次都会从不同的ECMP路径走的话,重现故障就会十分困难。 这种复杂性和ECMP path的数量是以线性关系增长的,当网络规模扩大以后尤其明显。

    1.7K50发布于 2019-05-13
  • 来自专栏SDNLAB

    数据中心内的负载均衡-MPTCP

    数据中心最常使用的负载均衡算法为ECMP,通过根据数据流的五元组哈希,将这些数据均匀随机的分散到权重相等的路径上。这种随机选路负载均衡第一个问题是会产生哈希碰撞。 利用亚马逊EC2数据中心内的40台机器,对数据流使用TCP以及MPTCP不同子流的吞吐量测试 3.总结 在之前的文章中,曾介绍过数据中心内使用ECMP算法进行负载均衡,通过对数据包五元组哈希为流选择路径 但使用ECMP存在诸多缺陷: (1)过于简单,没有拥塞控制机制,因此在网络存在拥塞的情况下,使用ECMP可能会加剧路径的拥塞。 (2)在非对称网络架构下,ECMP的负载均衡效果并不好。 (3)ECMP这种基于流的负载均衡,不适合在数据中心这种老鼠流、大象流并存的环境中。 本文介绍了使用MPTCP协议做负载均衡,通过建立多条TCP子流的方式使用多条路径传输数据。 其实,我们还可以对每条子流使用ECMP算法,利用哈希随机选择路径,提高负载均衡效果。

    4.1K30发布于 2018-09-25
  • 来自专栏陶辉笔记

    构建弹性网络之分布式负载均衡技术(二):技术与实现

    ECMP技术不仅可扩展集群的地理覆盖范围,还突破了单一广播域的容量天花板,在真正意义上实现了大规模分布式系统的无边界扩展。 1.ECMP技术的应用 ECMP的工作原理是基于路由协议(如BGP、OSPF)在多台设备之间分配等价的多条路径。 当多条路径成本相同时,网络设备(如路由器或三层交换机)会利用ECMP算法自动将流入的流量按照预设规则均匀地分发到这些路径上。 相对于一主多辅方案,ECMP方案允许每台设备独立处理流量,无需通过单一主设备中转,减少了网络延迟,提升了数据处理效率。 由于ECMP技术无法应用在广播域内,所以需要将二层广播域的一主多辅架构与三层网络层的ECMP技术相结合,才能为弹性VIP地址的实现提供完整的技术支撑,在不同的网络层次上实现负载均衡和故障转移。

    43910编辑于 2024-09-06
领券