智能策略路由智能策略路由是基于业务需求的策略路由,通过匹配链路质量和网络业务对链路质量的需求,实现智能选路。
产生背景随着网络业务需求的多样化,业务数据的集中放置,链路质量对网络业务越来越重要。越来越多的用户把关注点从网络的连通性转移到业务的可用性上,如业务的可获得性、响应速度和业务质量等。这些复杂的业务需求给传统的基于逐跳的路由协议提出了挑战,它们无法感知链路的质量和业务的需求,所以带给用户的业务体验也得不到保障,即使路由可达,但链路质量可能已经很差甚至无法正常转发报文了。智能策略路由SPR(Smart Policy Routing)就是在这一背景下产生的一种策略路由,它可以主动探测链路质量并匹配业务的需求,从而选择一条最优链路转发业务数据,可以有效的避免网络黑洞、网络震荡等问题。
业务区分SPR支持通过以下属性对业务进行区分:
- 根据协议类型区分:IP,TCP,UDP,GRE,IGMP,IPINIP,OSPF,ICMP。
- 根据报文应用区分:DSCP,TOS,IP Precedence,Fragment,VPN,TCP-flag。
- 根据报文信息区分:Source IP Address,Destination IP Address,Protocol,Source Port,Destination Port,Source IP Prefix,Destination IP Prefix。
不同的业务对链路的时延D(Delay)、抖动时间J(Jitter)、丢包率L(Loss)以及综合度量指标CMI(Composite Measure Indicator)有不同的要求,如果业务对链路的某一项质量参数没有要求,就不需要配置该参数的阈值。
说明:SPR根据NQA探测结果进行业务选路时,CMI值的计算如下:
- Delay的最大值为5000毫秒,Jitter的最大值为3000毫秒,Loss的最大值为1000‰,Delay、Jitter和Loss的缺省值分别为其最大值。以上参数值越小表明链路质量越好。
- CMI是链路的综合度量指标,计算公式为:CMI=9000–cmi-method ,其中cmi-method 缺省定义为:D+J+L。
- 用户可以根据实际业务需求自定义cmi-method的公式。例如用户定义cmi-method =D+10*J,此时链路的时延为1000毫秒,抖动为10毫秒,则CMI=9000–(D+10*J)=9000–(1000+100)=7900。
- CMI计算公式中的Delay、Jitter或Loss参数,如果伴有系数,则它们与系数的乘积不能大于它们的最大值。例如CMI=9000–(10*D+10*J+10*L),此时链路的时延为1000毫秒,抖动为100毫秒,丢包率为10‰。因为Delay=10*1000=10000>5000,所以Delay取其最大值5000,则CMI=9000–(5000+1000+100)= 2900。
说明:SPR根据IP FPM探测结果进行业务选路时,CMI值的计算如下:
- Delay的最大值为5000毫秒,Jitter的最大值为3000毫秒,Loss的最大值为1000‰,Delay、Jitter和Loss的缺省值分别为其最大值。
- CMI是链路的综合度量指标,计算公式为:CMI=D+J+L。CMI值越小表明链路质量越好。
SPR根据IP FPM探测结果进行业务选路实现原理为了降低Agile Controller-Branch负担,提高全网站点规格,采用站点与应用策略分离及流量触发选路相结合的方式。站点与应用策略相分离,Agile Controller-Branch仅维护站点邻接信息和应用策略,站点策略(也即业务模板)由AR产品侧创建,极大的降低Agile Controller-Branch负担,同时也大幅减少Agile Controller-Branch向AR传输的数据流量。流量触发选路,按需生成SPR配置,避免设备创建大量配置,同时减少探测选路对设备CPU造成的冲击,有效减轻设备的负担。
图12-1 SPR根据IP FPM探测结果进行业务选路实现原理
- 站点邻居表:表示站点关系。
- 应用策略表:表示应用类型。
- 站点策略表:由站点邻居表和应用策略表生成。
Agile Controller-Branch可以获取当前场景组网获取任一站点的所有邻接信息。站点邻接信息中包含目的站点ID,出接口及peer地址等。站点邻接信息下发后,AR内部生成一张站点邻接信息表,如图12-2所示,便于后续选路。图12-2 站点邻居表
任一站点的应用策略将不区分目的站点,但AC向不同站点下发的应用策略可能不一致。同一应用到不同站点需要有不同的策略时,可以根据站点创建自定义应用。站点间的应用策略可能不相同,这会出现流量来回路径不一致的问题。请用户谨慎使用。
站点策略动态生成,即由流量触发,根据流量的目的站点及VPN获取站点邻接信息,再根据应用策略,生成站点策略。站点策略表示的是某一应用到某一站点的选路策略。站点策略表创建后会根据表项内容生成SPR配置,配置的动态生成需要按一定的规则设置link-path、link-group、service-map等的名称,SPR根据配置进行探测选路。
探测链路和链路组探测链路是SPR根据探测结果实现智能选路的基础,每个探测链路都有一个与之相对应的探针。如果测试失败,则表示对应的探测链路不可用。探测链路通过探针获取链路参数的质量,SPR根据探测链路的链路质量匹配业务需求,从而实现智能选路的需求。
SPR不直接使用探测链路,而是通过链路组的形式使用探测链路。一个探测链路可以加入不同的链路组,同时一个链路组中可以有一条或多条探测链路。
SPR的链路角色分为:主用链路组、备用链路组和逃生链路。SPR中业务无法从主用链路组和备用链路组中找到合适的链路传输数据时可以启用逃生链路。
同一个链路组可以被不同的业务绑定,如链路组1可以作为业务1的主用链路组,同时也可以作为业务2的备用链路组。
说明:SPR业务根据IP FPM选路时,设备不支持配置逃生链路。
在DSVPN场景下,流量触发选路,选路时使用的是Tunnel口的地址建立的NHRP表项。
业务选路如图12-3所示,SPR根据NQA探测结果进行业务选路。图12-3 SPR业务根据NQA探测结果选路流程
如图12-4所示,SPR根据IP FPM探测结果进行业务选路。图12-4 SPR业务根据IP FPM探测结果选路流程
说明:SPR支持以上两种方式进行选路,但这两种方式无法同时配置。即NQA探测结果和IP FPM探测结果无法同时配置用于SPR选路。
在业务选路时,如果当前链路上已经部属了业务,则该链路的选择指数将降低,即选择的机率变小,这样宏观上可以达到负载均衡的效果。
切换周期SPR中切换周期计时器主要用于链路质量不满足业务需求时控制链路切换。
SPR根据NQA或者IP FPM探测结果判断链路是否满足业务需求,SPR会定期获取NQA或者IP FPM的探测结果,如果某次获取的NQA或者IP FPM探测结果不满足业务需求,则切换周期计时器开始计时。在开始计时后切换周期到达之前,如果某次获取的探测结果满足了业务需求,则切换周期计时器清零,直到下次获取到不满足业务需求的探测结果时会再次开始计时。如果计时器开始计时后,在切换周期内获取到的探测结果都不能满足业务需求,则SPR切换链路。
振荡抑制周期某些情况下,网络会出现时好时坏的情况,从而导致SPR频繁切换链路,严重影响业务体验。SPR的抑制振荡功能可以有效的避免此类情况产生。
振荡抑制周期默认情况下不生效,周期值由用户自己配置。SPR切换链路后,振荡抑制周期计时器开始计时,如果业务驻留链路的时间没有达到振荡抑制周期的时间,则SPR不会执行链路切换。振荡抑制周期超时后,如果在一个切换周期内链路还是不满足业务需求,则SPR将切换链路;如果在一个切换周期内链路质量变好,满足业务需求,则SPR不会切换链路。