策略路由基础

“路由策略”(Routing Policy,RP)与“策略路由”(Policy-Based Routing,PBR)有着本质上的区别。“路由策略”中的“路由”是名词,而“策略”是动词,操作对象是路由信息。“路由策略”主要用来实现路由表中的路由过滤和路由属性设置等功能。它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。而“策略路由”中的“策略”是名词,“路由”却变成了动词,是基于策略的路由(这里的“路由”也是动词),操作对象是数据报文,是在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要按照某种策略改变数据报文转发路径。

一、策略路由概述

传统的路由转发原理是首先根据报文的目的地址查找路由表,然后进行报文转发。但是目前越来越多的用户希望能够在传统路由转发的基础上根据自己定义的策略进行报文转发和选路。策略路由正是这样一种可依据用户制定的策略进行报文路由选路的机制。策略路由可使网络管理者不仅能够根据报文的目的地址,而且能够根据报文的源地址、报文大小和链路质量等属性来制定策略路由,以改变报文转发路径,满足用户需求。

策略路由具有如下优点:

①可以根据用户实际需求制定策略进行路由选择,增强路由选择的灵活性和可控性
②可以使不同的数据流通过不同的链路进行发送,提高链路的利用效率。
③在满足业务服务质量的前提下,选择费用较低的链路传输业务数据,从而降低企业数据服务成本。

路由策略调用高级ACL可以实习bgp路由控制_IP

华为系列路由器支持三种策略路由:本地策略路由、接口策略路由和智能策略路由(Smart Policy Routing,SPR)。设备配置策略路由后,当设备下发或转发数据报文时,系统首先根据策略路由转发,若没有配置策略路由或配置了策略路由但找不到匹配的表项时,再根据路由表来转发。

路由策略调用高级ACL可以实习bgp路由控制_链路_02

二、本地策略路由

“本地策略路由”是仅对本机发送的报文(比如本地的Ping报文)有效的策略路由,对转发的报文不起作用。

一条本地策略路由可以配置多个策略点,并且这些策略点具有不同的优先级,本机发送的报文优先匹配优先级高的策略点。本地策略路由支持基于ACL或报文长度的匹配规则。

在本地策略路由中,当本机下发报文时,会根据本地策略路由节点的优先级,依次匹配各节点绑定的匹配规则。如果找到了匹配的本地策略路由节点,则按照以下步骤发送报文;如果没有找到匹配的本地策略路由节点,按照发送IP报文的一般流程,根据目的地址查找路由。

(1)查看用户是否设置了报文的优先级

如果用户设置了报文的优先级,则首先根据用户设置的优先级设置报文的优先级,然后继续执行下一步;否则直接进行下一步。由此看出,报文的优先级是首先要考虑的规则。

(2)查看用户是否设置了本地策略路由的出接口

如果用户设置了出接口,将报文从出接口发送出去,不再执行下面步骤;否则直接进行下一步。

(3)查看用户是否设置了本地策略路由的下一跳

①如果设置了策略路由的下一跳,且下一跳可达,则查看是否设置了下一跳联动路由。

a、如果设置了下一跳联动路由功能,设备会根据配置的联动路由的IP地址检测该IP地址是否路由可达。

●如果该IP地址路由可达,则配置的下一跳生效,设备将报文发往下一跳,不再执行下面步骤。

●如果该IP地址路由不可达,则配置的下一跳不生效,设备会继续查看是否配置备份下一跳。

☞如果用户配置了备份下一跳,且备份下一跳可达,将报文发往备份下一跳,不再执行下面的步骤。

☞如果用户未配置备份下一跳,或配置的备份下一跳不可达,则按照正常流程根据报文的目的地址查找路由。如果没有查找到路由,则执行下一步。

b、如果用户未设置下一跳联动路由功能,将报文发往下一跳,不再执行下面的步骤。

②如果设置了策略路由的下一跳但下一跳不可达,则设备会继续查看是否配置备份下一跳。

a、如果用户配置了备份下一跳,且备份下一跳可达,将报文发往备份下一跳,不再执行下面的步骤。

b、如果用户未配置备份下一跳,或配置的备份下一跳不可达,则按照正常流程根据报文的目的地址查找路由。如果没有查找到路由,则执行下一步。

③如果用户未设置下一跳,则按照正常流程根据报文的目的地址查找路由。如果没有查找到路由,则执行下一步。

(4)查看用户是否设置了本地策略路由的缺省出接口

①如果用户设置了缺省出接口,将报文从缺省出接口发送出去,不再执行下面的步骤。

②如果用户未设置缺省出接口,则执行下一步。

(5)查看用户是否设置了本地策略路由的缺省下一跳

①如果用户设置了缺省下一跳,将报文发往缺省下一跳,不再执行下面的步骤

②如果用户未设置缺省下一步,则执行下一步

(6)丢弃报文产生ICMP_UNREACH消息

 

三、接口策略路由

接口策略路由仅对转发的报文起作用,对本地发送的报文不起作用,且只对接口入方向的报文生效

接口策略路由是通过在流行为中配置重定向实现的。缺省情况下,设备按照路由表的下一跳进行报文转发,如果配置了接口策略路由,则设备按照接口策略路由指定的下一跳进行转发。

在按照接口策略路由指定的下一跳进行报文转发时,如果设备上没有该下一跳IP地址对应的ARP表项,设备会触发ARP学习。如果设备上有,或者学习到了此ARP表项,则按照接口策略路由指定的下一跳IP地址进行报文转发;如果一直学习不到下一跳IP地址对应的ARP表项,则报文按照路由表指定的下一跳进行转发。

四、智能策略路由

随着网络业务需求的多样化,业务数据的集中放置,链路质量对网络业务越来越重要。很多用户把关注点从网络的连通性转移到业务的可用性上,如业务的可获得性、响应速度和业务质量等。这些复杂的业务需求给传统的基于逐跳的路由协议提出了挑战,它们无法感知链路的质量和业务的需求,所以带给用户的业务体验也得不到保障,即使路由可达,但链路质量可能已经很差甚至无法正常转发报文了。

智能策略路由SPR就是在这一背景下产生的一种策略路由。它可以主动探测链路质量并匹配业务的需求,通过匹配链路质量和网络业务对链路质量的需求,从而选择一条最优链路转发业务数据,可以有效地避免网络黑洞、网络振荡等问题。

1、业务区分

SPR支持通过以下属性对业务进行区分。

①根据协议类型区分:IP,TCP,UDP,GRE,IGMP,IPINIP,OSPF,ICMP。

②根据报文应用区分:DSCP(区分服务代码点),TOS(服务类型),IP Precedence(IP优先级),Fragment(分片),VPN,TCP-flag(TCP标志)。

③根据报文信息区分:Source IPAddress(源IP地址),Destination IP Address(目的IP地址),Protocol(协议),Source Port(源端口),Destination Port(目的端口),Source IP Prefix(源IP地址前缀),Destination IP Prefix(目的IP地址前缀)。

不同的业务对链路的时延D(Delay)、抖动时间J(Jitter)、丢包率L(Loss)以及CMI(CompositeMeasure Indicator,综合度量指标)有不同的要求,如果业务对链路的某一项质量参数没有要求,就不需要配置该参数的阀值。

2、探测链路和链路组

探测链路是SPR实现智能选路的基础,每个探测链路都有一个与之相对应的探针,即NQA(Network Quality Analysis,网络质量分析)测试例。如果测试失败,则表示对应的探测链路不可用。探测链路通过探针获取链路参数的质量,SPR根据探测链路的链路质量匹配业务需求,从而实现智能选路的需求。

SPR的链路角色分为主用链路组、备用链路组和逃生链路。当在SPR中业务无法从主用链路组和备用链路组中找到合适的链路传输数据时可以启用逃生链路。SPR根据NQA探测结果进行业务选路的具体流程如下:

路由策略调用高级ACL可以实习bgp路由控制_策略路由_03

SPR不直接使用探测链路,而是通过链路组的形式使用探测链路。一个探测链路可以加入不同的链路组,同时一个链路组中可以有一条或多条探测链路。同一个链路组可以被不同的业务绑定,如链路组1可以作为业务1的主用链路组,同时也可以作为业务2的备用链路组。

在业务选路时,如果当前链路上已经部署了业务,则该链路的选择指数将降低,即选择的几率变小,这样宏观上可以达到负载均衡的效果。

3、切换周期

SPR中的切换周期计时器主要用于在链路质量不满足业务需求时控制链路切换。

SPR根据NQA探测结果判断链路是否满足业务需求,SPR会定期获取NQA的探测结果,如果某次获取的NQA探测结果不满足业务需求,则切换周期计时器开始计时。在开始计时后到切换周期到达之前,如果某次获取的探测结果满足了业务需求,则切换周期计时器清零,直到下次获取到不满足业务需求的探测结果时会再次开始计时。如果计时器开始计时后,在切换周期内获取到的探测结果都不能满足业务需求,则SPR切换链路。

4、震荡抑制周期

某些情况下,网络会出现时好时坏的情况,从而导致SPR频繁切换链路,这样会严重影响业务体验。SPR的抑制振荡功能可以有效避免此类情况产生。但振荡抑制周期默认情况下不生效,周期值由用户自己配置。

SPR切换链路后,震荡抑制周期计时器开始计时,如果业务驻留链路的时间没有达到震荡抑制周期的时间,则SPR不会执行链路切换。震荡抑制周期超时后,如果在一个切换周期内链路还是不满足业务需求,则SPR将切换链路;如果在一个切换周期内链路质量变好,满足业务需求,则SPR不会切换链路。

 

本地策略路由配置与管理

通过配置本地策略路由,可以控制直接由本机发送的报文通过指定的出接口进行发送。也就是,本地策略路由只对主机面下发的数据生效。

本地策略路由配置思路是:先配置用于数据报文匹配的本地策略路由的匹配规则,然后配置本地策略路由的动作,最后在出接口上应用以上配置的本地策略路由。

按顺序配置以下任务:

①创建一个本地策略路由。
②通过apply命令配置本地策略路由的动作。
③在系统视图下全局应用前面创建的本地策略路由。

在配置本地策略路由之前,需完成:

●配置接口的链路层协议参数,使接口的链路协议状态为Up。
●配置用于匹配报文的ACL。这里就不仅限于基本ACL,还可以用高级ACL同时过滤报文的源IP地址、目的IP地址、源端口、目的端口等。
●如果希望报文进入VPN,则需要预先配置VPN。

一、配置本地策略路由的匹配规则

定义要通过本地策略路由进行过滤的报文,通过ACL或者匹配报文长度进行过滤。

system-view
policy-based-route
policy-name {deny | permit} node node-id      创建策略路由和策略点,若策略点已创建则进入本地策略路由视图。
if-match acl acl-number  设置本地策略路由中IP报文的ACL匹配条件。ACL必须事先配置好。
if-match packet-length  min-length max-length

二、配置本地策略路由的动作

是指对通过本地策略路由的报文进行出接口、下一跳(相当于对流进行重定向),或IP报文优先级指定等。配置时要注意:

①如果策略中设置了两个下一跳,那么报文转发在两个下一跳之间负载分担。
②如果策略中设置了两个出接口,那么报文转发在两个出接口之间负载分担。
③如果策略中同时设置了两个下一跳和两个出接口,那么报文转发仅在两个出接口之间负载分担。

system-view
policy-based-route
policy-name {deny | permit} node node-id      进入本地策略路由视图。
apply output-interface interface-type interface-number     指定本地策略路由中报文的出接口。配置成功后,将匹配策略点的本机下发报文从指定接口发送出去。报文的出接口不能为以太接口等广播型接口,如果是以太网接口要先用link-protocol ppp配置为p2p类型的,因为广播型的接口有多个可能的下一跳,可能会造成报文转发不成功的现象。
apply ip-address next-hop ip-address1 [ip-address2]     设置本地策略路由中报文的下一跳。当该策略点未配置出接口时,匹配策略点的本机下发报文被发往指定的下一跳。下一跳Ip地址不能是本设备的IP地址。
apply default output-interface interface-type interface-number     配置本地策略路由中报文的缺省出接口,同样不能为广播型接口。当该策略点未指定报文的出接口和下一跳,且匹配策略点的本机下发报文也未能按照正常流程根据报文目的地址查找到路由时,则将此报文从缺省出接口发送出去。
apply ip-address default next-hop ip-address1 [ip-address2]        配置本地策略路由中报文的缺省下一跳,仅对在路由表中未查找到路由的报文起作用。
apply access-vpn vpn-instance vpn-instance-name &<1-6>         设置本地策略路由中报文转发的VPN实例。当用户希望报文进入VPN时,可执行本命令配置报文转发的VPN实例。
apply ip-precedence precedence    设置本地策略路由中IP报文优先级,可以用数字或优先级关键字。
quit
ip policy-based-route refresh-time  refreshtime-value

路由策略调用高级ACL可以实习bgp路由控制_链路_04

三、应用本地策略路由

应用本地策略路由的方法是在系统视图下通过ip local policy-based-route policy-name使能这条本地策略路由即可。这样在本机上直接发送的报文(不包括转发的报文)都将应用所使能的本地策略路由。但要注意,一台路由器只能使能一个本地策略路由(但可以创建多条本地策略路由),且本命令为覆盖式命令,多次执行该命令后,仅最后一次配置结果生效。要使能其他本地策略路由时,必须先去使能正在应用的另一条本地策略路由。

四、本地策略路由管理

①display ip policy-based-route:看本地已使能的策略路由的策略。
②display ip policy-based-route setup local [verbose]:看本地策略路由的配置情况。
③display ip policy-based-route statistics local:看本地策略路由报文的统计信息。
④display policy-based-route [policy-name [verbose]]:看已创建的策略内容。

五、本地策略路由配置示例

路由策略调用高级ACL可以实习bgp路由控制_IP_05

如上拓扑,RouterA与RouterB间有两条链路相连。现要求RouterA在发送不同长度的报文时通过不同的下一跳地址进行转发。

①长度为64~1400字节的报文设置150.1.1.2作为下一跳地址。

②长度为1401~1500字节的报文设置151.1.1.2作为下一跳地址。

③所有其他长度的报文都按基于目的地址的方法进行路由选路。

    1、基本配置思路

仅需要在RouterA上配置一条匹配报文长度的本地策略路由,然后在RouterA上使能这条本地策略路由即可。因为有两个不同的报文长度匹配规则,所以需要配置两个不同的本地策略路由的策略点。

配置本地策略路由前,首先先配置这两台路由器上的各接口IP,为了使双方能与对方的Loopback接口所有网络互通(使报文长度不在64~1400字节或1401~1500字节范围内的报文能够按照路由中配置的下一跳进行转发),还需要配置路由。

路由策略调用高级ACL可以实习bgp路由控制_IP_06

路由策略调用高级ACL可以实习bgp路由控制_策略路由_07

配置RouterA和RouterB到达对方Loopback接口所在网络的静态路由。

路由策略调用高级ACL可以实习bgp路由控制_IP_08

在RouterA上创建名称为lab1的本地策略路由,用策略点10和策略点20分别配置两种报文长度匹配规则,并分别指定对应策略点的动作,即指定对应的下一跳地址。并在RouterA上使能本地策略路由lab1:

路由策略调用高级ACL可以实习bgp路由控制_链路_09

验证配置结果:先在用户视图下使用reset counters interface命令清空RouterB上两个接口的报文数统计信息,此时两个接口上的各种报文统计均为0。

路由策略调用高级ACL可以实习bgp路由控制_链路_10

路由策略调用高级ACL可以实习bgp路由控制_IP_11

路由策略调用高级ACL可以实习bgp路由控制_策略路由_12

根据配置的本地策略路由,这个长度的报文应该选择的是RouterB的GE0/0/0接口。查看RouterB接口统计信息,可以发现GE0/0/0接收和发送报文总数都增加了5,即RouterB接口GigabitEthernet0/0/0在接收到ICMP请求报文后给RouterA发送5个ICMP应答报文。

然后在进行一次

路由策略调用高级ACL可以实习bgp路由控制_链路_10

路由策略调用高级ACL可以实习bgp路由控制_链路_14

路由策略调用高级ACL可以实习bgp路由控制_策略路由_15

根据配置的本地策略路由,这个长度的报文应该选择的是RouterB的GE0/0/1接口。查看RouterB接口统计信息,可以发现GE0/0/1接收和发送报文总数都增加了5,即RouterB接口GigabitEthernet0/0/1在接收到ICMP请求报文后给RouterA发送5个ICMP应答报文。

接口策略路由配置与管理

配置接口策略路由可以将到达接口转发的报文(不对本机直接发送的报文生效)重定向到指定的下一跳地址。接口策略路由的最终目标是实现匹配规则的流按照QoS流策略实现流重定向,同样包括了QoS流策略配置中的以下4项基本配置任务(需按顺序配置):

①定义流分类。
②配置流重定向。
③配置流策略。
④应用流策略。

在配置接口策略路由前,需完成以下任务:

①配置相关接口的IP地址和路由协议,保证路由互通。
②如果使用ACL作为接口策略路由的流分类规则,配置相应的ACL。
③(可选)SAC(SmartApplication Control,智能应用控制)特征库文件已经上传到设备,保存在设备的存储介质中。

一、定义流分类

定义流分类就是将匹配一定规则的报文归为一类,对匹配同一流分类的报文进行相同的处理,是实现差分服务的前提和基础。流分类是通过if-match子句进行匹配的,可以基于报文中的内/外层VLAN ID、源IP地址、IP地址、协议类型、DSCP/IP优先级等进行匹配。

system-view
traffic classifier
classifier-name [operator {and | or}]       创建一个流分类,进入流分类视图。operator指定流分类下各规则之间的逻辑运算符,没有指定,缺省为逻辑“或”的关系。
if-match vlan-id start-vlan-id [to end-vlan-id]      在流分类中创建基于外层VLAN ID进行分类的匹配规则。
if-match cvlan-id start-vlan-id [to end-vlan-id]      在流分类中创建基于QinQ报文内层VLAN ID进行分类的匹配规则。
if-match 8021p {8021p-value} &<1-8>     在流分类中创建基于VLAN报文的802.1p优先级进行分类的匹配规则。
if-match cvlan-8021p {8021p-value } &<1-8>       在流分类中创建基于QinQ报文内层802.1p优先级进行分类的匹配规则。
if-match destination-mac mac-address [mac-address-mask mac-address-mask]   在流分类中创建基于目的MAC地址进行分类的匹配规则。
if-match source-mac mac-address [mac-address-mask mac-address-mask]   在流分类中创建基于源MAC地址进行分类的匹配规则。
if-match l2-protocol {arp | ip | mpls | rarp | protocol-value}      在流分类中创建基于二层封装的上层协议字段进行分类的匹配规则。
if-match any       在流分类中创建基于所有数据报文进行分类的匹配规则。当需要对所有的数据报文做统一处理时,使用本命令匹配所有的数据报文(但不匹配上送CPU的控制报文,如STP中的BPDU)。
if-match ip-precedence ip-precedence-value &<1-8>      在流分类中创建基于IP优先级进行分类的匹配规则。
if-match tcp syn-flag {ack | fin | psh | rst | syn | urg } *   在流分类中创建基于TCP报文头中的SYN Flag字段进行分类的匹配规则。
if-match inbound-interface interface-type interface-number   在流分类中创建基于入接口进行分类的匹配规则。设备仅支持在WAN接口应用包含该匹配规则的流策略。当包含此匹配规则的流策略应用在WAN接口出方向时,匹配的入接口不得为子接口或Eth-trunk的成员接口。
if-match outbound-interface interface-type interface-number   在流分类中创建基于Cellular出通道口对报文进行分类的匹配规则。
if-match acl {acl-number | acl-name}

二、配置流重定向

配置流重定向就是配置QoS流策略的一种流行为。通过配置重定向,设备将符合流分类规则的报文重定向到指定的下一跳地址或指定接口。但包含重定向动作的流策略只能在接口的入方向上应用。

可以通过与NQA联动,在网络链路出现故障时,实现路由快速切换,保障数据流量正常转发,因为NQA是网络故障诊断和定位的有效工具。与NQA实现联动后有以下两种情况。

①当NQA检测到与目的IP可达时,按照指定的IP进行报文转发,即重定向生效。
②当NQA检测到与目的IP不可达时,系统将按原来的转发路径转发报文,即重定向不生效。

system-view
traffic behavior
behavior-name     创建一个流行为,进入流行为视图。
redirect ip-nexthop ip-address [track nqa admin-name test-name ]         二选一,将符合流分类的报文重定向到下一跳,并配置与NQA测试例联动。
redirect interface interface-type interface-number

三、配置并应用流策略

流策略就是将以上配置的流分类和流行为关联起来,而流策略应用是将配置好的流策略在对应的接口入,或出方向上应用,分别对进入该接口,或从该接口转发的数据报文应用流策略。

system-view
traffic policy
policy-name      创建一个流策略,并进入流策略视图。
classifier classifier-name behavior behavior-name      在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。
quit
interface
interface-type interface-number    进入要应用流策略的接口或子接口,进入接口视图。
traffic-policy  policy-name {inbound | outbound}

四、接口策略路由管理

①display traffic classifier user-defined [classifier-name]:查看设备上所有或指定的流分类信息。

②display acl {nameacl-name | acl-number | all}:查看指定的ACL规则的配置信息。

③display acl resource[slot slot-id]:查看所有或指定主板上的ACL规则的资源信息。

④display traffic policy user-defined [policy-name [classifier classifier-name]]:查看所有或指定的流策略的配置信息。

⑤display traffic-policy applied-record policy-name:查看指定流策略的应用记录信息。

⑥display traffic behavior {system-defined | user-defined} [behavior-name]:查看所有或指定的流行为的配置信息。

五、接口策略路由配置示例

路由策略调用高级ACL可以实习bgp路由控制_链路_16

如上拓扑,VLAN10和VLAN20是企业内部的两个部门,分别通过交换机连接到RouterA的GE1/0/0和GE2/0/0。

HOSTA和HOSTB是同一部门内的两台主机,IP分别为192.168.1.2/24和192.168.1.3/24,属于192.168.1.0/24网段;HSOTC和HOSTD是另一部门的两台主机,IP分别为192.168.2.2/24和192.168.2.3/24,属于192.168.2.0/24网段。RouterA有两条链路连接到Internet,它们是RouterA——>RouterB——>RouterD和RouterA——>RouterC——>RouterD。要求:

①当RouterA的两条连接到Internet的链路都正常时,企业内部不同网段地址的报文通过不同的链路连接到Internet。

②当一条链路发生故障时,企业内部不同网段地址的报文都走无故障的链路,避免长时间的业务中断;而当故障链路恢复后,恢复报文从不同链路连接到Internet。

1、基本配置思路

可考虑采用流重定向与NQA联动,实现在被监控的链路正常时按照流策略定义的重定向行为对流进行重定向转发,而当被监控链路出现故障时,按照路由表中的路由进行转发。这里又涉及一个问题,那就是当链路出现故障时,IP路由表中的路由表项不会立即清除,所以又需利用路由与NQA的联动功能及时删除对应的路由表项(在链路由故障恢复后,该路由又会重新添加到IP路由表中),采用静态路由与NQA联动方式。

①配置各设备接口IP即路由协议,使用户能通过RouterA访问Internet。
②配置NQA测试例,检测链路RouterA——>RouterB——>RouterD和RouterA——>RouterC——>RouterD是否正常。
③配置NQA和静态路由联动,实现当链路故障时,及时删除路由表中对应路由表项,使流量可以切换到正常链路。
④配置流分类,匹配规则为匹配报文的源IP地址,实现基于源地址对报文进行分类。
⑤配置流行为,即配置NQA与流重定向联动,实现当NQA测试例检测到链路RouterA——>RouterB——>RouterD正常时,将满足规则的报文重定向到192.168.3.2/24,当NQA测试例检测到链路RouterA——>RouterC——>RouterD正常时,将满足规则的报文重定向到192.168.4.2/24。
⑥配置流策略,绑定上述流分类和流行为,并应用到相应的接口,实现策略路由。

路由策略调用高级ACL可以实习bgp路由控制_IP_17

路由策略调用高级ACL可以实习bgp路由控制_IP_18

配置各设备间的静态路由。注意,静态路由具有单向性和接力性,必须在各设备上确保双向通信都有所需的连续静态路由。

路由策略调用高级ACL可以实习bgp路由控制_链路_19

在RouterA和RouterD的两条链路之间分别配置NQA测试例。

在RouterA上要配置测试到达RouterD的GE1/0/0接口和GE2/0/0接口的两个NQA测试例,所创建的管理者账户都是admin,实例名分别为vlan10和vlan20。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_20

在RouterD上要配置测试到达RouterA的GE3/0/0接口和GE4/0/0接口的两个NQA测试例,所创建的管理者账户都是admin,实例名分别为vlan10和vlan20。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_21

在RouterA和RouterD上分别配置与对应NQA测试实例联动、到达目的网络的静态路由。通过配置静态路由与NQA联动,可以实现在链路发生故障后,NQA测试例快速检测到链路变化,并且在IP路由表中把与该NQA测试例联动的静态路由删除,从而影响流量转发的目的。在配置静态路由与NQA联动时,选择的测试实例名称一定要与静态路由对应的链路一致。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_22

在RouterA和RouterD上分别配置流分类。因为通信是双向的,所以需要在双向进行配置流策略,以便指导对应方向的流按规定进行重定向。

在RouterA上创建流分类vlan10、vlan20,通过基本ACL分别匹配源地址为192.168.1.0/24和192.168.2.0/24网段(分别对应VLAN10和VLAN20所在网段)的报文。在RouterD上创建流分类vlan10、vlan20,通过高级ACL分别匹配目的地址为192.168.1.0/24和192.168.2.0/24网段的报文。

路由策略调用高级ACL可以实习bgp路由控制_IP_23

在RouterA和RouterD上分别配置流重定向行为。这样。当NQA测试例检测到链路正常时,按照流策略定义的行为进行流重定向;而NQA测试例检测到链路故障时,则要按照路由表中的有效路由进行报文转发。

在RouterA上创建流行为vlan10,配置NQA测试例adminvlan10与重定向到下一跳192.168.3.2/24联动,实现在该下一跳链路正常时把数据从该链路上转发的目的。

路由策略调用高级ACL可以实习bgp路由控制_链路_24

在RouterA上创建流行为vlan20,配置NQA测试例adminvlan20与重定向到下一跳192.168.4.2/24联动,实现在该下一跳链路正常时把数据从该链路上转发的目的。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_25

在RouterD上创建流行为vlan10,配置NQA测试例adminvlan10与重定向到下一跳192.168.5.2/24联动,实现在该下一跳链路正常时把数据从该链路上转发的目的。在RouterD上创建流行为vlan20,配置NQA测试例adminvlan20与重定向到下一跳192.168.6.2/24联动,实现在该下一跳链路正常时把数据从该链路上转发的目的。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_26

在RouterA和RouterD上分别配置流策略并应用到接口上。

在RouterA上创建流策略vlan10、vlan20,分别将流对应的流分类和流行为进行绑定,并将流策略vlan10应用到接口GE5/0/0入方向,将流策略vlan20应用到接口GE5/0/1入方向。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_27

在RouterD上创建流策略vlan1020,将两个流分类和对应的流行为进行绑定,并将流策略vlan10应用到接口GE0/0/2入方向。

路由策略调用高级ACL可以实习bgp路由控制_IP_28

配置好后,通过display this接口视图查看相应接口配置,验证配置结果。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_29

路由策略调用高级ACL可以实习bgp路由控制_链路_30

通过display traffic policy user-defined任意视图查看RouterA和RouterD上用户自定义的流策略的配置信息。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_31

路由策略调用高级ACL可以实习bgp路由控制_链路_32

设置LSW1、LSW2,配置VLAN及各接口:

路由策略调用高级ACL可以实习bgp路由控制_策略路由_33

路由策略调用高级ACL可以实习bgp路由控制_IP_34

HostA为192.168.1.2,

路由策略调用高级ACL可以实习bgp路由控制_IP_35

去时是经过192.168.3.2,即RB的g0/0/0口,回来时是经过RB的g0/0/1接口。

HostC为192.168.2.2

路由策略调用高级ACL可以实习bgp路由控制_IP_36

去时和返回时的路径都是正确的。

路由策略调用高级ACL可以实习bgp路由控制_链路_37

路由策略调用高级ACL可以实习bgp路由控制_IP_38

shutdown掉RB的g0/0/1端口

在HostA上

路由策略调用高级ACL可以实习bgp路由控制_策略路由_39

路由策略调用高级ACL可以实习bgp路由控制_IP_40

通过上面的查询,看到静态地址192.168.7.0下一跳192.168.3.2的已经删除。

路由策略调用高级ACL可以实习bgp路由控制_策略路由_41

查看NQA,发现丢包率100%,所以判断链路质量很差,切换。