03-Track配置
本章节下载: 03-Track配置 (275.97 KB)
目 录
Track用于在监测模块、Track模块和应用模块之间建立关联,来实现这些模块之间的联合动作。联动功能在应用模块和监测模块之间增加了Track模块,通过Track模块屏蔽不同监测模块的差异,将监测结果以统一的形式通知给应用模块,从而简化应用模块的处理。
如图1-1所示,联动功能利用监测模块对链路状态、网络性能等进行监测,并通过Track模块将监测结果及时通知给应用模块,以便应用模块进行相应的处理。例如,在NQA、Track和静态路由之间建立联动,利用NQA监测静态路由的下一跳地址是否可达。NQA监测到下一跳不可达时,通过Track通知静态路由模块该监测结果,以便静态路由模块将该条路由置为无效,确保报文不再通过该静态路由转发。
Track模块通过Track项与监测模块建立关联。Track项定义了Positive、Negative和NotReady三种状态。监测模块负责对接口状态、链路状态等进行监测,并将监测结果通知给Track模块;Track模块根据监测结果改变Track项的状态。
· 如果监测结果为监测对象工作正常(如接口处于up状态、网络可达),则对应Track项的状态为Positive。
· 如果监测结果为监测对象出现异常(如接口处于down状态、网络不可达),则对应Track项的状态为Negative。
· 如果监测结果无效(如NQA作为监测模块时,与Track项关联的NQA测试组不存在),则对应Track项的状态为NotReady。
应用模块通过引用Track项与Track模块建立关联。Track项的状态改变后,通知应用模块;应用模块根据Track项的状态,及时进行相应的处理,从而避免通信的中断或服务质量的降低。
目前,可以与Track模块实现联动功能的监测模块包括:
· NQA(Network Quality Analyzer,网络质量分析)
· BFD(Bidirectional Forwarding Detection,双向转发检测)
· 接口管理
· 路由管理
另外,Track模块支持与监测模块列表建立关联。监测对象列表是多个监测对象的集合,这些监测对象依据其状态和列表的类型共同决定Track项的状态,主要有4种类型的列表:
· 布尔与类型列表:基于列表中对象状态的布尔与运算结果决定Track项的状态。
· 布尔或类型列表:基于列表中对象状态的布尔或运算结果决定Track项的状态。
· 比例类型列表:由Track列表中Positive对象/Negative对象的总比例和threshold percentage命令配置的门限值的大小决定Track项的状态。
· 权重类型列表:由Track列表中Positive对象/Negative对象的总权重和threshold weight命令配置的权重值的大小决定Track项的状态。
目前,可以与Track模块实现联动功能的应用模块包括:
· VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
· 静态路由
· 策略路由
· EAA
在某些情况下,Track项状态发生变化后,如果立即通知应用模块,则可能会由于路由无法及时恢复等原因,导致通信中断。
下面以NQA、Track和静态路由联动为例,说明联动功能的工作原理。
用户在设备上配置了一条静态路由,下一跳地址为192.168.0.88。如果192.168.0.88可达,则报文可以通过该静态路由转发,该静态路由有效;如果192.168.0.88不可达,则通过该静态路由转发报文会导致报文转发失败,此时,需要将该静态路由置为无效。通过在NQA、Track模块和静态路由之间建立联动,可以实现实时监测下一跳的可达性,以便及时判断静态路由是否有效。
在此例中联动功能的配置方法及其工作原理为:
(1) 创建NQA测试组,通过NQA测试组监测目的地址192.168.0.88是否可达。
(2) 创建和NQA测试组关联的Track项。192.168.0.88可达时,NQA会将监测结果通知给Track模块,Track模块将该Track项的状态变为Positive;192.168.0.88不可达时,NQA将监测结果通知给Track模块,Track模块将该Track项的状态变为Negative。
(3) 配置这条静态路由和Track项关联。如果Track模块通知静态路由Track项的状态为Positive,则静态路由模块将这条路由置为有效;如果Track模块通知静态路由Track项的状态为Negative,则静态路由模块将这条路由置为无效。
为了实现联动功能,需要在Track与监测模块、Track与应用模块之间分别建立联动关系。Track配置任务如下:
(1) 配置Track与单个监控模块联动。
(2) 配置Track与监测对象列表联动
(3) 配置Track与应用模块联动。
NQA测试组周期性地探测某个目的地址是否可达、是否可以与某个目的服务器建立TCP连接等。如果在Track项和NQA测试组之间建立了关联,则当连续探测失败的次数达到指定的阈值时,NQA将通知Track模块监测对象出现异常,Track模块将与NQA测试组关联的Track项的状态置为Negative;否则,NQA通知Track模块监测对象正常工作,Track模块将Track项的状态置为Positive。NQA的详细介绍,请参见“网络管理和监控配置指导”中的“NQA”。
配置Track项时,引用的NQA测试组或联动项可以不存在,此时该Track项的状态为NotReady。
(1) 进入系统视图。
system-view
(2) 创建与NQA测试组中指定联动项关联的Track项,并进入Track视图。
track track-entry-number nqa entry admin-name operation-tag reaction item-number
配置Track项时,引用的NQA测试组或联动项可以不存在,此时该Track项的状态为NotReady。
(3) 指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
如果在Track项和BFD会话之间建立了关联,则当BFD判断出对端不可达时,BFD会通知Track模块将与BFD会话关联的Track项的状态置为Negative;否则,通知Track模块将Track项的状态置为Positive。
BFD会话支持两种工作方式:Echo报文方式和控制报文方式。Track项只能与Echo报文方式的BFD会话建立关联,不能与控制报文方式的BFD会话建立联动。BFD的详细介绍,请参见“网络管理和监控配置指导”中的“BFD”。
配置Track与BFD联动前,需要配置BFD echo报文的源地址,配置方法请参见“网络管理和监控配置指导”中的“BFD”。
(1) 进入系统视图。
system-view
(2) 创建和BFD会话关联的Track项,并进入Track视图。
track track-entry-number bfd echo interface interface-type interface-number { remote ip remote-ip-address local ip local-ip-address | remote ipv6 remote-ipv6-address local ipv6 local-ipv6-address }
(3) 指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
接口管理用来监视接口的链路状态、物理状态和网络层协议状态。如果在Track项和接口之间建立了关联,则当接口的链路状态、物理状态或网络层协议状态为up时,接口管理通知Track模块将与接口关联的Track项的状态置为Positive;接口的链路状态、物理状态或网络层协议状态为down时,接口管理通知Track模块将Track项的状态为Negative。
(1) 进入系统视图。
system-view
(2) 创建和接口管理关联的Track项,并进入Track视图。请至少选择其中一项进行配置。
¡ 监视接口的链路状态。
track track-entry-number interface interface-type interface-number
¡ 监视接口的物理状态。
track track-entry-number interface interface-type interface-number physical
¡ 监视接口的网络层协议状态。
track track-entry-number interface interface-type interface-number protocol { ipv4 | ipv6 }
(3) 指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
如果在Track项和路由管理之间建立了关联,当对应的路由条目在路由表中存在时,路由管理通知Track模块将与之关联的Track项状态设置为Positive;当对应的路由条目在路由表中被删除时,路由管理将通知Track模块将与之关联的Track项状态设置为Negative。
(1) 进入系统视图。
system-view
(2) 创建与路由管理关联的Track项,并进入Track视图。
track track-entry-number ip route [ vpn-instance vpn-instance-name ] ip-address { mask-length | mask } reachability
(3) 指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
对于布尔与类型的列表,如果列表中的所有监测对象的状态都是Positive,那么此Track项的状态为Positive;如果有一个或多个监测对象的状态为Negative,那么此Track项的状态为Negative。对于布尔或类型的列表,如果列表中至少有一个监测对象的状态是Positive,那么此Track项的状态为Positive,如果所有的监测对象的状态都是Negative,那么此Track项的状态为Negative。
(1) 进入系统视图。
system-view
(2) 创建与单个监控对象关联的Track项。
请参见“1.5 配置Track与单个监测模块联动”。
可配置至少一个与单个监控对象关联的Track项。
(3) 创建和布尔类型列表关联的Track项,并进入Track视图。
track track-entry-number list boolean { and | or }
(4) 向列表中添加与单个监测对象联动的Track项。
object track-entry-number [ not ]
Track列表中需添加所有需要联动的Track对象。
(5) (可选)指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
Track项的状态由Track列表中Positive对象/Negative对象的总比例和threshold percentage命令配置的门限值的大小决定。当列表中Positive对象所占百分比大于或等于Positive门限值时,Track项状态变为Positive;小于或等于Negative门限值时,Track项状态变为Negative。当关联列表中的Positive对象比例小于Positive参数指定值且大于Negative参数指定值时,Track项状态保持不变。
(1) 进入系统视图。
system-view
(2) 创建与单个监控对象关联的Track项。
请参见“1.5 配置Track与单个监测模块联动”。
可配置至少一个与单个监控对象关联的Track项。
(3) 创建和比例类型列表关联的Track项,并进入Track视图。
track track-entry-number list threshold percentage
(4) 向列表中添加与单个监测对象联动的Track项。
object track-entry-number
Track列表中需添加所有需要联动的Track对象。
(5) 配置状态变化的门限值。
threshold percentage { negative negative-threshold | positive positive-threshold } *
缺省情况下,Negative状态门限值为0%,Positive状态门限值为1%。
(6) (可选)指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
Track项的状态由Track列表中Positive对象/Negative对象的总权重和threshold weight命令配置的权重值的大小决定。每个加入列表的Track对象都拥有一个权重值,当处于Positive的监测项的权重之和大于或等于Positive门限值时,Track项状态变为Positive;当处于Positive的监测项的权重之和小于或等于Negative门限值时,Track项状态变为Negative。当关联列表中的Positive对象权重小于Positive参数指定值且大于Negative参数指定值时,Track项状态保持不变。
(1) 进入系统视图。
system-view
(2) 创建与单个监控对象关联的Track项。
请参见“1.5 配置Track与单个监测模块联动”。
可配置至少一个与单个监控对象关联的Track项。
(3) 创建和权重类型列表关联的Track项,并进入Track视图。
track track-entry-number list threshold weight
(4) 向列表中添加与单个监测对象联动的Track项。
object track-entry-number [ weight weight ]
Track列表中需添加所有需要联动的Track对象。
(5) 配置状态变化的权重值。
threshold weight { negative negative-threshold | positive positive-threshold } *
缺省情况下,Negative门限值权重为0,Positive门限值权重为1。
(6) (可选)指定Track项状态变化时通知应用模块的延迟时间。
delay { negative negative-time | positive positive-time } *
缺省情况下,Track项状态变化时立即通知应用模块。
用户配置Track和应用模块联动时,需保证联动的Track项已被创建,否则应用模块可能会获取到错误的Track项状态信息。
静态路由是一种特殊的路由,由管理员手工配置。配置静态路由后,去往指定目的地的报文将按照管理员指定的路径进行转发。静态路由配置的详细介绍,请参见“三层技术-IP路由配置指导”中的“静态路由”和“IPv6静态路由”。
静态路由的缺点在于:不能自动适应网络拓扑结构的变化,当网络发生故障或者拓扑发生变化时,可能会导致静态路由不可达,网络通信中断。
为了防止这种情况发生,可以配置其它路由和静态路由形成备份关系。静态路由可达时,根据静态路由转发报文,其它路由处于备份状态;静态路由不可达时,根据备份路由转发报文,从而避免通信中断,提高了网络可靠性。
通过在Track模块和静态路由之间建立联动,可以实现静态路由可达性的实时判断。
如果在配置静态路由时只指定了下一跳而未指定出接口,可以通过联动功能,利用监测模块监视静态路由下一跳的可达性,并根据Track项的状态来判断静态路由的可达性:
· 当Track项状态为Positive时,静态路由的下一跳可达,配置的静态路由将生效;
· 当Track项状态为Negative时,静态路由的下一跳不可达,配置的静态路由无效;
· 当Track项状态为NotReady时,无法判断静态路由的下一跳是否可达,此时配置的静态路由生效。
如果Track模块通过NQA探测私网静态路由中下一跳的可达性,静态路由下一跳的VPN实例名与NQA测试组配置的实例名必须相同,才能进行正常的探测。
在静态路由进行迭代时,Track项监测的应该是静态路由迭代后最终的下一跳地址,而不是配置中指定的下一跳地址。否则,可能导致错误地将有效路由判断为无效路由。
(1) 进入系统视图。
system-view
(2) 配置通过Track与IPv4静态路由联动,检测IPv4静态路由下一跳是否可达。
(公网)
ip route-static { dest-address { mask-length | mask } | group group-name } { interface-type interface-number [ next-hop-address ] track track-entry-number | next-hop-address track track-entry-number | vpn-instance d-vpn-instance-name next-hop-address track track-entry-number } [ preference preference ] [ tag tag-value ] [ description text ]
(VPN网络)
ip route-static vpn-instance s-vpn-instance-name { dest-address { mask-length | mask } | group group-name } { interface-type interface-number [ next-hop-address ] track track-entry-number | next-hop-address [ public ] track track-entry-number | vpn-instance d-vpn-instance-name next-hop-address track track-entry-number } [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置Track与IPv4静态路由联动。
(1) 进入系统视图。
system-view
(2) 配置通过Track与IPv6静态路由联动,检测IPv6静态路由下一跳是否可达。
(公网)
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | [ vpn-instance d-vpn-instance-name ] next-hop-address } track track-entry-number [ preference preference ] [ tag tag-value ] [ description text ]
(VPN网络)
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | vpn-instance d-vpn-instance-name next-hop-address } track track-entry-number [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置Track与IPv6静态路由联动。
策略路由是一种依据用户指定的策略灵活选路的机制,满足策略的报文将执行指定的操作,以指导报文转发。策略路由配置的详细介绍,请参见“三层技术-IP路由配置指导”中的“策略路由”。
策略路由无法判断对报文执行的操作的可用性。当执行的操作不可用时,策略路由仍然对报文执行该操作,可能会导致报文转发失败。例如,策略路由中配置满足一定条件的报文,需要通过指定的出接口转发。当该出接口所在的链路出现故障时,策略路由无法感知链路故障,仍然通过该接口转发报文,导致报文转发失败。
通过联动功能,可以解决上述问题,增强了策略路由应用的灵活性,以及策略路由对网络环境的动态感知能力。配置策略路由执行的操作与Track项关联,利用监测模块监视链路的状态,通过Track项的状态来动态地决定策略路由操作的可用性:
· Track项状态为Positive时,表示链路正常工作,与该Track项关联的策略路由操作生效,可以指导转发;
· Track项状态为Negative时,表示链路出现故障,与该Track项关联的策略路由操作无效,转发时忽略该配置项;
· Track项状态为NotReady时,与该Track项关联的策略路由操作生效,可以指导转发。
目前,支持与Track项关联的策略路由操作包括:
· 设置报文的出接口
· 设置报文的下一跳
· 设置报文的缺省出接口
· 设置报文的缺省下一跳
配置Track与策略路由联动前,需要先创建策略或一个策略节点,并配置匹配规则。
(1) 进入系统视图。
system-view
(2) 创建策略或一个策略节点,并进入该策略视图。
policy-based-route policy-name [ deny | permit ] node node-number
(3) 设置匹配规则。
¡ 设置ACL匹配规则。
if-match acl { acl-number | name acl-name }
缺省情况下,未设置ACL匹配规则。
策略路由不支持匹配二层信息的ACL匹配规则。
¡ 设置IP报文长度匹配规则。
if-match packet-length min-len max-len
缺省情况下,未设置IP报文长度匹配规则。
(4) 配置指导报文转发类动作。请至少选择其中一项进行配置。
¡ 设置指导报文转发的出接口,并与Track项关联。
apply output-interface { interface-type interface-number [ track track-entry-number ] }&<1-4>
缺省情况下,未设置指导报文转发的出接口。
¡ 设置报文的下一跳,并与Track项关联。
apply next-hop [ vpn-instance vpn-instance-name | inbound-vpn ] { ip-address [ direct ] [ track track-entry-number ] [ weight weight-value ] }&<1-4>
缺省情况下,未设置报文转发的下一跳。
¡ 设置报文缺省出接口,并与Track项关联。
apply default-output-interface { interface-type interface-number [ track track-entry-number ] }&<1-4>
缺省情况下,未设置报文的缺省出接口。
¡ 设置报文缺省下一跳,并与Track项关联。
apply default-next-hop [ vpn-instance vpn-instance-name | inbound-vpn ] { ip-address [ direct ] [ track track-entry-number ] }&<1-4>
缺省情况下,未设置指导报文转发的缺省下一跳。
(1) 进入系统视图。
system-view
(2) 创建策略或一个策略节点,并进入该策略视图。
ipv6 policy-based-route policy-name [ deny | permit ] node node-number
(3) 设置匹配规则。
¡ 设置ACL匹配规则。
if-match acl { ipv6-acl-number | name ipv6-acl-name }
缺省情况下,未设置ACL匹配规则。
IPv6策略路由不支持匹配二层信息的ACL匹配规则。
¡ 设置IPv6报文长度匹配规则。
if-match packet-length min-len max-len
缺省情况下,未设置IPv6报文长度匹配规则。
(4) 配置指导报文转发类动作。请至少选择其中一项进行配置。
¡ 设置报文的出接口,并与Track项关联。
apply output-interface { interface-type interface-number [ track track-entry-number ] }&<1-4>
缺省情况下,未设置指导报文转发的出接口。
¡ 设置报文的下一跳,并与Track项关联。
apply next-hop [ vpn-instance vpn-instance-name | inbound-vpn ] { ipv6-address [ direct ] [ track track-entry-number ] [ weight weight-value ] } &<1-4>
缺省情况下,未设置报文转发的下一跳。
¡ 设置报文缺省出接口,并与Track项关联。
apply default-output-interface { interface-type interface-number [ track track-entry-number ] }&<1-4>
缺省情况下,未设置报文的缺省出接口。
¡ 设置报文缺省下一跳,并与Track项关联。
apply default-next-hop [ vpn-instance vpn-instance-name | inbound-vpn ] { ipv6-address [ direct ] [ track track-entry-number ] }&<1-4>
缺省情况下,未设置指导报文转发的缺省下一跳。
配置Track与EAA联动后,当关联的Track项状态由Positive变为Negative或者Negative变为Positive时,触发监控策略执行;如果关联多个Track项,则最后一个处于Positive(Negative)状态的Track项变为Negative(Positive)时,触发监控策略执行。
如果配置了抑制时间,触发策略的同时开始计时,定时器超时前,收到状态从Positive(Negative)变为Negative(Positive)的消息,直接丢弃,不会处理。直到定时器超后,收到状态从Positive(Negative)变为Negative(Positive)的消息才处理,再一次触发策略执行。
EAA的详细介绍,请参见“网络管理和监控配置指导”中的“EAA”。
(1) 进入系统视图。
system-view
(2) 创建CLI监控策略并进入CLI监控策略视图。
rtm cli-policy policy-name
(3) 配置Track监控事件。
event track track-entry-number-list state { negative | positive } [ suppress-time suppress-time ]
缺省情况下,未配置Track监控事件。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Track的运行情况,通过查看显示信息验证配置的效果。
表1-1 Track显示和维护
操作 |
命令 |
显示Track项的信息 |
display track { track-entry-number | all [ negative | positive ] } [ brief ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!