1.Track简介

  Track的用途是实现联动功能。联动功能通过在监测模块、Track模块和应用模块之间建立关联,实现这些模块之间的联合动作。联动功能利用监测模块对链路状态、网络性能等进行监测,并通过Track模块将监测结果及时通知给应用模块,

  以便应用模块进行相应的处理。例如,在静态路由、Track和NQA之间建立联动,利用NQA监测静态路由的下一跳地址是否可达。NQA监测到下一跳不可达时,通过Track通知静态路由模块该监测结果,

  以便静态路由模块将该条路由置为无效,确保报文不再通过该静态路由转发。

  如果应用模块直接与监测模块关联,由于不同监测模块通知给应用模块的监测结果形式各不相同,应用模块需要分别处理不同形式的监测结果。

  联动功能在应用模块和监测模块之间增加了Track模块,通过Track模块屏蔽不同监测模块的差异,将监测结果以统一的形式通知给应用模块,从而简化应用模块的处理。

2.Track项与监测项联动

  Track模块和监测模块之间通过Track项建立关联。监测模块负责对接口状态、链路状态等进行监测,并将监测结果通知给Track模块;Track模块根据监测结果改变Track项的状态。

  • 如果监测结果为监测对象工作正常(如接口处于up状态、网络可达),则对应Track项的状态为Positive。

  • 如果监测结果为监测对象出现异常(如接口处于down状态、网络不可达),则对应Track项的状态为Negative。

  • 如果监测结果无效(如NQA作为监测模块时,与Track项关联的NQA测试组不存在),则对应Track项的状态为NotReady。

  目前,可以与Track模块实现联动功能的监测模块包括:

  • NQA(Network Quality Analyzer,网络质量分析)

  • BFD(Bidirectional Forwarding Detection,双向转发检测)

  • 接口管理

  • 路由管理

  • LLDPLink Layer Discovery Protocol,链路层发现协议)

  另外,Track模块支持与监测模块列表建立关联。监测对象列表是多个监测对象的集合,这些监测对象依据其状态和列表的类型共同决定Track项的状态。

3.应用项与Track项联动

  应用模块和Track模块之间通过Track项建立关联。Track项的状态改变后,通知应用模块;应用模块根据Track项的状态,及时进行相应的处理,从而避免通信的中断或服务质量的降低。

  目前,可以与Track模块实现联动功能的应用模块包括:

  • VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
  • 静态路由
  • 策略路由
  • Smart Link
  • TRILL
  • VPLS
  • VXLAN
  • MPLS L2VPN
  • EAA
  • ERPS

  在某些情况下,Track项状态发生变化后,如果立即通知应用模块,则可能会由于路由无法及时恢复等原因,导致通信中断。例如,VRRP备份组中Master路由器通过Track监视上行接口的状态。

  上行接口出现故障时,Track通知Master路由器降低优先级,使得Backup路由器抢占成为新的Master,负责转发报文。当上行接口恢复时,如果Track立即通知原来的Master路由器恢复优先级,该路由器将立即承担转发任务。

  此时该路由器可能尚未恢复上行的路由,从而导致报文转发失败。在这种情况下,用户可以配置Track项状态发生变化时,延迟一定的时间通知应用模块。

4.Track与单个监测模块联动

  1)Track与NQA联动

  NQA测试组周期性地探测某个目的地址是否可达、是否可以与某个目的服务器建立TCP连接等。如果在Track项和NQA测试组之间建立了关联,则当连续探测失败的次数达到指定的阈值时,

  NQA将通知Track模块监测对象出现异常,Track模块将与NQA测试组关联的Track项的状态置为Negative;否则,NQA通知Track模块监测对象正常工作,Track模块将Track项的状态置为Positive。

  track track-entry-number nqa entry admin-name operation-tag reaction item-number:创建与NQA测试组中指定联动项关联的Track项,并进入Track视图

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块

  2)Track与BFD联动

  如果在Track项和BFD会话之间建立了关联,则当BFD判断出对端不可达时,BFD会通知Track模块将与BFD会话关联的Track项的状态置为Negative;否则,通知Track模块将Track项的状态置为Positive。

  BFD会话支持两种工作方式:Echo报文方式和控制报文方式。Track项只能与Echo报文方式的BFD会话建立关联,不能与控制报文方式的BFD会话建立联动。

  track track-entry-number bfd echo interface interface-type interface-number remote ip remote-ip-address local ip local-ip-address:创建和BFD会话关联的Track项,并进入Track视图

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块

  3)Track与接口管理联动

  接口管理用来监视接口的物理状态、链路状态和网络层协议状态。如果在Track项和接口之间建立了关联,则当接口的物理状态、链路状态或网络层协议状态为up时,

  接口管理通知Track模块将与接口关联的Track项的状态置为Positive;接口的物理状态、链路状态或网络层协议状态为down时,接口管理通知Track模块将Track项的状态为Negative。

  track track-entry-number interface interface-type interface-number:创建和接口管理关联的Track项,监视接口的链路状态,并进入Track视图

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块  

  4)Track与路由管理联动

  如果在Track项和路由管理之间建立了关联,当对应的路由条目在路由表中存在时,路由管理通知Track模块将与之关联的Track项状态设置为Positive;当对应的路由条目在路由表中被删除时,

  路由管理将通知Track模块将与之关联的Track项状态设置为Negative。

  track track-entry-number ip route [ vpn-instance vpn-instance-name ] ip-address { mask-length | mask } reachability:创建与路由管理关联的Track项,并进入Track视图

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块  

4.Track与监测对象列表联动

  1)Track与布尔类型的监测对象列表联动

  对于布尔与类型的列表,如果列表中的所有监测对象的状态都是Positive,那么此Track项的状态为Positive;如果有一个或多个监测对象的状态为Negative,那么此Track项的状态为Negative。

  对于布尔或类型的列表,如果列表中至少有一个监测对象的状态是Positive,那么此Track项的状态为Positive,如果所有的监测对象的状态都是Negative,那么此Track项的状态为Negative。

  track track-entry-number list boolean { and | or }:创建和布尔类型列表关联的Track项,并进入Track视图

    object track-entry-idnot ]:向列表中添加与单个监测对象联动的Track项

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块   

  2)Track与比例类型的监测对象列表联动

  Track项的状态由Track列表中Positive对象/Negative对象的总比例和threshold percentage命令配置的门限值的大小决定。当列表中Positive对象所占百分比大于或等于Positive门限值时,Track项状态变为Positive;

  小于或等于Negative门限值时,Track项状态变为Negative。当关联列表中的Positive对象比例小于Positive参数指定值或Negative对象比例大于Negative参数指定值时,Track项状态保持不变。

  track track-entry-number list threshold percentage:创建和比例类型列表关联的Track项,并进入Track视图

    object track-entry-id:向列表中添加与单个监测对象联动的Track项

  threshold percentage { negative negative-threshold | positive positive-threshold } *:配置状态变化的门限值,缺省情况下,Negative门限值为0%,Positive门限值为1%

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块

  3)Track与权重类型的监测对象列表联动

  Track项的状态由Track列表中Positive对象/Negative对象的总权重和threshold weight命令配置的权重值的大小决定。每个加入列表的Track对象都拥有一个权重值,

  当处于Positive的监测项的权重之和大于或等于Positive门限值时,Track项状态变为Positive;当处于Positive的监测项的权重之和小于或等于Negative门限值时,Track项状态变为Negative。

  当关联列表中的Positive对象权重小于Positive参数指定值或Negative对象权重大于Negative参数指定值时,Track项状态保持不变。

  track track-entry-number list threshold weight:创建和权重类型列表关联的Track项,并进入Track视图

    object track-entry-idweight weight ]:向列表中添加与单个监测对象联动的Track项

  threshold weight { negative negative-threshold | positive positive-threshold } *:配置状态变化的权重值,缺省情况下,Negative权重值为0,Positive权重值为1

  delay { negative negative-time | positive positive-time } *:指定Track项状态变化时通知应用模块的延迟时间,缺省情况下,Track项状态变化时立即通知应用模块

5.Track与应用模块联动

  用户配置Track和应用模块联动时,需保证联动的Track项已被创建,否则应用模块可能会获取到错误的Track项状态信息。

  1)Track与VRRP联动

  VRRP是一种容错协议,它将一组承担网关功能的路由器加入到备份组中,形成一台虚拟路由器。备份组中的路由器根据优先级,选举出Master路由器,承担转发任务。优先级越高,越有可能成为Master路由器。

  其他路由器作为Backup路由器,当Master路由器发生故障时,取代Master承担转发任务,从而保证网络内的主机通过虚拟路由器不间断地与外部网络进行通信。

  VRRP工作在标准协议模式和负载均衡模式时,通过在Track模块和VRRP备份组之间建立联动,可以实现:

  • 根据上行链路的状态,改变路由器的优先级。当路由器的上行链路出现故障时,备份组无法感知上行链路的故障,如果该路由器为Master,将会导致局域网内的主机无法访问外部网络。通过联动功能,可以解决该问题。

  利用监测模块监视路由器上行链路的状态,并在监测模块、Track模块和VRRP备份组之间建立联动,当上行链路出现故障时,通知将Track项状态变为Negative,并将路由器的优先级降低指定的数额。

  从而,使得备份组内其它路由器的优先级高于这个路由器的优先级,成为Master路由器,保证局域网内主机与外部网络的通信不会中断。

  • 在Backup路由器上监视Master路由器的状态。当Master路由器出现故障时,工作在切换模式的Backup路由器能够迅速成为Master路由器,以保证通信不会中断。

  VRRP工作在负载均衡模式时,通过在Track模块和VRRP虚拟转发器之间建立联动,还可以实现:

  • 根据上行链路的状态,改变虚拟转发器的优先级。当AVF(Active Virtual Forwarder,动态虚拟转发器)的上行链路出现故障时,Track项的状态变为Negative,虚拟转发器的权重将降低指定的数额,

    以便虚拟转发器优先级更高的路由器抢占成为AVF,接替其转发流量。

  • 在LVF(Listening Virtual Forwarder,监听虚拟转发器)上通过Track监视AVF的状态,当AVF出现故障时,工作在虚拟转发器快速切换模式的LVF能够迅速成为AVF,以保证通信不会中断。

  配置Track与VRRP联动时,需要注意:

  • 接口IP地址与虚拟IP地址相同的路由器称为IP地址拥有者。路由器在某个备份组中作为IP地址拥有者时,如果在该路由器上配置该备份组监视指定的接口或Track项,则该配置不会生效。

     该路由器不再作为IP地址拥有者后,之前的配置才会生效。

  • 被监视Track项的状态由Negative变为Positive或NotReady后,对应的路由器优先级或虚拟转发器优先级会自动恢复。

  vrrp [ ipv6 ] vrid virtual-router-id track track-entry-number { forwarder-switchover member-ip ip-address | priority reduced [ priority-reduced ] switchover | weight reduced [ weight-reduced ] }

  :VRRP备份组监视指定的Track项

  vrrp [ ipv6 ] vrid virtual-router-id track track-entry-number { forwarder-switchover member-ip ip-address | priority reduced [ priority-reduced ] switchover | weight reduced [ weight-reduced ] }

  :虚拟转发器监视指定的Track项

  2)Track与静态路由联动

  静态路由是一种特殊的路由,由管理员手工配置。配置静态路由后,去往指定目的地的报文将按照管理员指定的路径进行转发。

  静态路由的缺点在于:不能自动适应网络拓扑结构的变化,当网络发生故障或者拓扑发生变化时,可能会导致静态路由不可达,网络通信中断。

  为了防止这种情况发生,可以配置其它路由和静态路由形成备份关系。静态路由可达时,根据静态路由转发报文,其它路由处于备份状态;静态路由不可达时,根据备份路由转发报文,从而避免通信中断,提高了网络可靠性。

  通过在Track模块和静态路由之间建立联动,可以实现静态路由可达性的实时判断。

  如果在配置静态路由时只指定了下一跳而未指定出接口,可以通过联动功能,利用监测模块监视静态路由下一跳的可达性,并根据Track项的状态来判断静态路由的可达性:

  • 当Track项状态为Positive时,静态路由的下一跳可达,配置的静态路由将生效;

  • 当Track项状态为Negative时,静态路由的下一跳不可达,配置的静态路由无效;

  • 当Track项状态为NotReady时,无法判断静态路由的下一跳是否可达,此时配置的静态路由生效。

  配置Track与静态路由联动时,需要注意的是:

  • 如果Track模块通过NQA探测私网静态路由中下一跳的可达性,静态路由下一跳的VPN实例名与NQA测试组配置的实例名必须相同,才能进行正常的探测。

  • 在静态路由进行迭代时,Track项监测的应该是静态路由迭代后最终的下一跳地址,而不是配置中指定的下一跳地址。否则,可能导致错误地将有效路由判断为无效路由。

  ip route-static { dest-address { mask-length | mask } | group group-name } { next-hop-address track track-entry-number | vpn-instance d-vpn-instance-name next-hop-address track track-entry-number }

  [ preference preference-value ] [ tag tag-value ] description description-text ]:通过Track与静态路由联动,检测静态路由下一跳是否可达

  3)Track与策略路由联动

  策略路由是一种依据用户制定的策略进行路由选择的机制。与单纯依照IP报文的目的地址查找路由表进行转发不同,策略路由基于到达报文的源地址、长度等信息灵活地进行路由选择。

  对于满足一定条件(报文长度或ACL规则)的报文,将执行一定的操作(设置转发报文的VPN实例、设置报文的优先级、设置报文的出接口和下一跳、设置报文的缺省出接口和下一跳等),以指导报文的转发。

  策略路由无法判断对报文执行的操作的可用性。当执行的操作不可用时,策略路由仍然对报文执行该操作,可能会导致报文转发失败。例如,策略路由中配置满足一定条件的报文,需要通过指定的出接口转发。

  当该出接口所在的链路出现故障时,策略路由无法感知链路故障,仍然通过该接口转发报文,导致报文转发失败。

  通过联动功能,可以解决上述问题,增强了策略路由应用的灵活性,以及策略路由对网络环境的动态感知能力。配置策略路由执行的操作与Track项关联,利用监测模块监视链路的状态,通过Track项的状态来动态地决定策略路由操作的可用性:

  • Track项状态为Positive时,表示链路正常工作,与该Track项关联的策略路由操作生效,可以指导转发;

  • Track项状态为Negative时,表示链路出现故障,与该Track项关联的策略路由操作无效,转发时忽略该配置项;

  • Track项状态为NotReady时,与该Track项关联的策略路由操作生效,可以指导转发。

  目前,支持与Track项关联的策略路由操作包括:

  • 设置报文的出接口

  • 设置报文的下一跳

  • 设置报文的缺省出接口

  • 设置报文的缺省下一跳

  policy-based-route policy-name [ deny | permit ] node node-number:创建策略或一个策略节点,并进入该策略视图

   if-match packet-length min-len max-len:设置IP报文长度匹配条件

   if-match acl { acl-numbername acl-name }:设置ACL匹配条件

   apply output-interface { interface-type interface-numbertrack track-entry-number ] }&<1-n>:设置报文的出接口,并与Track项关联

   4)Track与冗余组联动

  冗余组本身无法感知链路故障,所以需要与Track联动,来达到监控链路状态的目的。联动关系建立后,冗余组能够快速检测上、下行链路是否故障,如果故障,则通知组内所有成员(包括以太网冗余接口)整体进行倒换。

  通过配置Track与冗余组联动,可以实时监控任意类型的故障,以触发冗余组进行整体倒换。

  Track模块根据监测模块的监测结果改变Track项的状态,并将Track项状态通知给冗余组模块;冗余组模块根据Track项状态进行相应处理:

  • 如果Track项状态变为Positive,则增加冗余组节点权重值,权重值为正值,则认为节点能够正常工作;

  • 如果Track项状态变为Negative,则减少冗余组节点权重值,如果权重值变为负值,则冗余组进行倒转;

  • 如果Track项状态变为Notready,处理方式和Negative一致,减少冗余组节点权重值,如果权重值变为负值,则冗余组进行倒转。

  在配置Track与冗余组联动时,需要配置对应的关联接口,当出现故障时,冗余组记录该接口为故障接口。如果冗余组功能支持倒回,需要配置该参数;否则可以不配置该参数。

  redundancy group group-name:创建冗余组并进入该冗余组视图

  node node-id:创建冗余组节点,并进入冗余组节点视图

  track track-entry-number [ reduced weight-reduced ] [ interface interface-type interface-number ]:配置Track与冗余组关联

6.display track { track-entry-number | all [ negative | positive ] } [ brief ]:显示Track项的信息

7.Track典型配置

  

 

posted on 2021-07-19 17:36  星痕1216  阅读(1147)  评论(0编辑  收藏  举报