16-自适应路由配置
本章节下载: 16-自适应路由配置 (577.75 KB)
自适应路由功能是一种网络路由技术,它允许路由设备感知整个网络的拓扑或流量条件的变化,并根据变化及时动态地调整路径选择。这种调整可以优化网络性能,确保数据包以最有效的方式到达目的地,从而减少延迟,避免拥塞,并提高网络的整体可靠性和效率。
本功能用于如下流量切换场景。
如图1-1所示,在Spine-Leaf架构组网中,跨Leaf的服务器之间的东西向流量需要途径Spine设备进行转发。在此组网中,部署了多台Spine设备以提高可靠性,Spine设备作为RR与各个Leaf设备建立BGP会话,Leaf设备之间通过BGP路由反射交换Server的路由信息。在本场景中,以Server A与Server H之间的数据交互为例,从Leaf 1去往Leaf 4的路径存在两条(途径Spine 1和Spine 2),每一条路径都存在两段,分别是“本地Leaf→Spine”,“Spine→对端Leaf”。以优选途经Spine 1的路径为例,当优选路径故障时,通常要通过BGP路由重新优选的方式来切换路径,在“本地Leaf→Spine”段路径故障时(图中故障点1),Leaf 1凭借与Spine 1之间的BGP连接,可以通过BGP的一些功能配置(如联动BFD链路检测)快速感知到,并且进行路由重新优选,将路径快速切换到Spine 2。但当“Spine→对端Leaf”段路径故障时(图中故障点2),由于Leaf 1和Leaf 4之间没有直接建立BGP连接,Leaf 1无法直接感知到该链路故障,只能等到Spine感知链路故障后重新优选路由,并且更新路由信息,Leaf 1才能将去往Leaf 4的流量切换到Spine 2。这段路径切换的时间通常较长,可能导致流量丢失。
开启自适应路由功能后,Leaf设备可以快速响应整个网络的链路状态变化,即使“Spine→对端Leaf”段发生链路状态变化(链路Down或流量拥塞均适用),Leaf设备也可以快速感知,并计算出最优路径完成路径切换,同时保障路径快切和服务质量。
自适应路由功能模块新增了一种在Spine和Leaf之间发布的私有协议报文,称为ARN(Adaptive Routing Notification,自适应路由通知)报文。ARN报文通过UDP协议来发送,在开启了自适应路由功能后,设备会发送多个种类的ARN报文,用来传递不同的信息。
以下是各类ARN报文的简要介绍:
· Device ID通告报文(AD报文):用于通告本地的Device ID。
· 链路状态通告报文(LS报文):用于通告链路Up/Down状态。
· ACK报文:用于回复收到的LS报文,以确认这些报文已经被接收端收到。
在上述报文中,AD报文在自适应路由功能运行过程中以固定的时间间隔周期性发送。LS报文在特定条件下触发发送。触发发送的LS报文需要收到对端的对应类型ACK报文,才会停止发送,否则会重复进行发送。如果设备本端的Device ID发生了变化,则会立即触发发送AD报文向其他设备通告自己的新Device ID。
以图1-2所示组网为例,普通方式的自适应路由功能生效过程为:
(1) Leaf设备均与两个Spine设备建立EBGP连接,Leaf之间通过BGP协议传递Server路由信息。
(2) 在所有Leaf上配置负载分担功能,将来自Spine 1和Spine 2的同一前缀路由形成等价。
(3) 在各个Leaf设备上配置peer advertise device-id命令后,Leaf设备会在本设备发布的公网单播路由中携带设备ID扩展团体属性。设备ID扩展团体属性是一种私有扩展团体属性,取值为设备的全局Router ID,用于在自适应路由组网中标识一台设备。
(4) 在Leaf和Spine设备上均开启全局和接口的自适应路由功能。
(5) 自适应路由相关功能开启后,如图1-3所示,Spine和Leaf设备都会周期性向外发送AD报文,来通知自己设备的Device ID,收到AD报文的设备记录对端的Device ID。
图1-3 AD报文发布示意图
(6) 如图1-4所示,当链路Down时,例如Leaf 4与Spine 1之间的链路Down,Spine 1会向除了Leaf 4之外的三台Leaf设备都发送LS报文。LS报文包含如下信息:
¡ 对端Leaf的Device ID。
¡ 通知其他Leaf设备Spine 1与Leaf 4之间链路Down的信息。
图1-4 链路Down LS报文触发示意图
Leaf 1、Leaf 2以及Leaf 3收到链路Down LS报文后,根据Leaf 4的Device ID找到携带了对应Device ID扩展团体属性的BGP路由,然后将这些路由在转发表中去往Spine 1对应的下一跳进行失效处理,并通过剩下的下一跳负载分担转发流量,借此实现链路Down后的快速路径切换。
如果在Leaf设备上,存在指向Down链路的Traffic Matrix静态流表,则该Leaf设备收到链路Down LS报文后,也会将指向Down链路的Traffic Matrix静态流表进行失效处理。
当前仅支持在三层以太网接口上开启接口的自适应路由功能,不支持在三层以太网子接口、三层聚合接口和三层聚合子接口等接口类型上配置。
自适应路由配置任务如下:
(1) 开启自适应路由功能
(3) (可选)配置全局Router ID
(4) (可选)配置ARN报文参数
(5) (可选)配置自适应路由性能优化
¡ 配置设备生成Traffic Matrix动态流表的延迟时间
普通方式自适应路由功能仅需要开启全局和接口下的自适应路由即可生效。
(1) 进入系统视图。
system-view
(2) 开启全局自适应路由功能,并进入自适应路由视图。
adaptive-routing enable
缺省情况下,全局自适应路由功能处于关闭状态。
(3) 退回系统视图。
quit
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启接口的自适应路由功能。
adaptive-routing detect
缺省情况下,接口的自适应路由功能处于关闭状态。
在自适应路由组网中,需要在Spine与Leaf之间建立EBGP IPv4/IPv6单播会话,并在Spine和Leaf设备上配置发布BGP IPv4/IPv6单播路由时携带设备ID扩展团体属性。
设备ID扩展团体属性是H3C私有属性,为了满足与其他厂商的互通需求,可以通过extcommunity-type device-id命令将设备发送的设备ID扩展团体属性的类型值修改为其他厂商设备能够识别的值。
(1) 进入系统视图。
system-view
(2) 配置BGP进程,与Leaf之间建立EBGP IPv4/IPv6单播会话。
本步骤的详细配置过程,请参见“三层技术-IP路由配置指导”中的“BGP”。
(3) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(4) (可选)配置设备ID扩展团体属性的类型值。
extcommunity-type device-id device-type-value
缺省情况下,设备ID扩展团体属性的类型值为十六进制数84ef。
(5) 进入BGP IPv4单播地址族视图或BGP IPv6单播地址族视图。
¡ 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 配置进行BGP负载分担的路由条数。
balance [ ebgp | eibgp | ibgp ] number [ ecmp-nexthop-local | ecmp-nexthop-unchanged ]
缺省情况下,不会进行BGP负载分担。
(7) (可选)配置不同AS_PATH属性的路由能够形成BGP负载分担。
balance as-path-neglect
缺省情况下,不同AS_PATH属性的路由之间不能形成BGP负载分担。
(8) 配置向Leaf设备发布路由时携带设备ID扩展团体属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise device-id
缺省情况下,向对等体发布路由时不携带设备ID扩展团体属性。
(9) 配置向Leaf设备发布路由时允许携带扩展团体属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情况下,设备不向对等体发布扩展团体属性。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 配置BGP进程,并与Spine之间建立BGP IPv4/IPv6单播会话。
本步骤的详细配置过程,请参见“三层技术-IP路由配置指导”中的“BGP”。
(3) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(4) (可选)配置设备ID扩展团体属性的类型值。
extcommunity-type device-id device-type-value
缺省情况下,设备ID扩展团体属性的类型值为十六进制数84ef。
(5) 进入BGP IPv4单播地址族视图或BGP IPv6单播地址族视图。
¡ 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 配置进行BGP负载分担的路由条数。
balance [ ebgp | eibgp | ibgp ] number [ ecmp-nexthop-local | ecmp-nexthop-unchanged ]
缺省情况下,不会进行BGP负载分担。
(7) (可选)配置不同AS_PATH属性的路由能够形成BGP负载分担。
balance as-path-neglect
缺省情况下,不同AS_PATH属性的路由之间不能形成BGP负载分担。
(8) 配置向对Spine设备发布路由时携带设备ID扩展团体属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise device-id
缺省情况下,向对等体发布路由时不携带设备ID扩展团体属性。
(9) 配置向Spine设备发布路由时允许携带扩展团体属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情况下,设备不向对等体发布扩展团体属性。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
开启自适应路由功能后,设备取本地配置的全局Router ID作为自身的Device ID进行发布。通过本功能可以修改全局Router ID
(1) 进入系统视图。
system-view
(2) 配置全局Router ID。
router id router-id
缺省情况下,如果未配置全局Router ID,设备则按照下面的规则进行选择:
a. 如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID。
b. 如果未配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态)。
c. 如果所有接口上都未配置IP地址,则Router ID为无效值0.0.0.0,BGP不能使用该Route ID来建立BGP会话。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
在自适应路由功能中,触发的ARN报文(链路状态变化通知报文、Device ID变更通知报文)存在确认机制,需要收到对端回应的对应ARN确认报文,否则会以一定的时间间隔重复发送,本功能控制的就是此时间间隔。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置触发的ARN报文的发送时间间隔。
adaptive-routing interval interval-value
缺省情况下,发送ARN切换报文的时间间隔是500毫秒。
请将ARN报文收发两端设备的UDP端口号配置为相同值。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置接口发送的ARN报文的UDP源端口号以及目的端口号。
adaptive-routing udp-port port-number
缺省情况下,ARN报文的UDP源以及目的端口号均为4780。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置ARN报文的源IPv4地址。
adaptive-routing udp-source-ip ipv4-address
缺省情况下,ARN报文的源IPv4地址为1.1.1.1。
在自适应路由场景中,缺省情况下,Spine设备检测到拥塞并判断需要进行链路切换时,会建立流表,其匹配域为源IP地址和目的IP地址(二元组)。
采用二元组匹配时,可以在拥塞场景下快速调度更多流量,使生成的流表匹配更多流进行切换。为了更精确地控制流量,减少对无关业务的影响,可以通过执行undo ip-pair-flow enable命令,将自适应路由按照“源IP地址、目的IP地址、源端口号、目的端口号、协议类型”的五元组建立流表。
通过本功能修改流表建立方式后,会清除当前设备上的已有流表信息。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置自适应路由按照“源IP地址、目的IP地址、源端口号、目的端口号、协议类型”的五元组建立流表。
undo ip-pair-flow enable
缺省情况下,自适应路由按照“源IP地址和目的IP地址”的二元组建立流表。
在缺省配置下,自适应路由特性在检测到链路拥塞时,仅针对RoCE报文中的RDMA Write First报文生成流表,并基于该流表执行链路切换。
适用的报文特征仅为:
· 传输层协议:UDP
· UDP目的端口:4791(RoCE v2默认端口)
· BTH(Base Transport Header)Opcode:0x0600(表示为RDMA Write First)
上述报文特征主要出现在高速RDMA通信中,因此缺省行为主要适用于智算场景。
如需在通算场景中同样利用自适应路由的拥塞检测与流表链路切换能力(例如让普通TCP/UDP业务流也参与链路切换),可通过配置本功能,将匹配范围扩展至所有类型的报文流量。
通过本功能修改自适应路由工作场景后,会清除当前设备上的已有流表信息。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置自适应路由工作在通算场景。
general-computing enable
缺省情况下,自适应路由特性仅能对特定的RoCE报文进行拥塞控制。
缺省情况下,自适应路由特性在检测到链路拥塞时,会选择该链路上带宽占用最大的业务流,并将其切换到其他链路。此方式可快速缓解当前链路的拥塞,但可能因为大流量迁移而导致其他可用链路的负载过重,进而导致链路间负载不均。
若需在缓解拥塞的同时进一步优化多链路的流量均衡,可通过配置本功能调整流选择策略:当检测到链路拥塞时,系统将根据各业务流的带宽占用情况进行排序,并选择带宽位于中位数位置的业务流切换至其他链路。此策略可在减少拥塞的同时,使链路间的带宽利用更趋均衡。
通过本功能修改调流策略后,会清除当前设备上的已有流表信息。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置自适应路由的调流策略为调中等流。
adjust-medium-flow enable
缺省情况下,自适应路由的调流策略为调大流。
开启Leaf设备的本地拥塞调流功能后,Leaf设备可以像Spine设备一样检测本地链路的拥塞情况。
其工作机制为:如果Leaf和Spine间存在多条负载分担链路,且仅部分链路出现拥塞,则Leaf会生成Traffic Matrix动态流表,并将部分流量切换到剩余未拥塞的链路中。需要注意的是,流量切换到的目标链路质量值不得超过链路质量阈值,否则Leaf不会将流量切换到该链路上。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置自适应路由的调流策略为调中等流。
congest-flow local-adjust
缺省情况下,Leaf设备的本地拥塞调流功能处于关闭状态。
在自适应路由组网中,流量路径切换需要根据链路质量值的计算结果进行决策。缺省情况下,设备驱动按照固定的周期向自适应路由模块上报本地接口的链路质量值。然后,在动态组网环境中,链路质量值可能会频繁变化。如果不及时更新,可能导致自适应路由模块的计算结果与链路的实际情况不符,从而造成流量路径切换错误。
为了解决上述问题,设备引入了一个本地链路质量即时上报更新机制。当本地接口的链路质量值变化百分比超过本功能指定的上报门限时,设备驱动会立即向自适应路由模块上报最新的链路质量值。这一机制确保了自适应路由模块能够根据当前链路状况进行准确的计算,从而提高流量路径切换的稳定性和准确性。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置本地链路质量波动的上报门限。
link-quality fluctuation-threshold threshold-value
缺省情况下,本地链路质量波动的上报门限是10%。
如果Spine和Leaf间存在多条负载分担链路,且仅部分链路出现拥塞,则感知到拥塞的设备会生成Traffic Matrix动态流表,将流量切换到剩余未拥塞的链路中。
本功能可以控制设备延迟生成Traffic Matrix动态流表,以避免链路质量瞬时波动造成的流量误切换,从而保持链路的稳定运行和数据传输的准确性。
(1) 进入系统视图。
system-view
(2) 进入自适应路由视图。
adaptive-routing enable
(3) 配置设备生成Traffic Matrix动态流表的延迟时间。
adaptive-routing dynamic-flow delay delay-value
缺省情况下,设备在感知到拥塞时立即生成Traffic Matrix动态流表指导流量切换。
在完成上述配置后,在任意视图下执行display命令可以显示配置后自适应路由的运行情况,通过查看显示信息验证配置的效果。
|
操作 |
命令 |
|
显示设备ID与接口的对应关系 |
display adaptive-routing device status [ device-id ] |
|
显示设备下发的流表信息 |
display adaptive-routing flow ipv4 |
|
显示设备下发的流表统计信息 |
display adaptive-routing flow statistics |
|
显示设备收集到的链路质量值 |
display adaptive-routing link-quality [ device-id ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
