策略路由、Track与NQA联动配置总结-H3C

策略路由根据需求自行修改,本文主要是专注nqa的配置。如果探测的出接口为dialer接口就不用设置下一跳直接出接口就可以了(out interface Dialer0 )。探测目标类型也可以根据具体需改,我做的是用icmp探测链路的状态,还有探测目标还可以为TCP UDP HTTP等等。

一、组网需求:
Switch A、Switch B、Switch C两两互联,在Switch A上配置策略路由,使不同的业务流量报文转发到不同的网段。
Switch A作为10.1.1.0/24网段内主机的缺省网关,配置20.1.1.0/24网段的静态路由指向Switch B,并配置静态路由使Switch A、Switch B、Switch C所有直连网段能够互通。通过配置策略路由,对于来自10.1.1.0/24网段的ICMP流量,优先通过Switch C进行转发;对于该网段的其他流量,则通过Switch B进行转发。
如果Switch B与Switch C之间的链路故障,则策略路由将会导致ICMP流量无法完成转发。在Switch A上通过策略路由、Track与NQA联动,实时探测Switch B与Switch C的直连网段路由是否可达。如果路由不可达,则NQA能够快速地检测到路由故障,使Switch A上策略路由失效,ICMP流量将查找路由表路由通过Switch B进行转发。
同样地,Switch B作为20.1.1.0/24网段内主机的缺省网关,配置10.1.1.0/24网段的静态路由指向Switch A。对于来自20.1.1.0/24网段的ICMP流量,优先通过Switch C进行转发;对于该网段的其他流量,则通过Switch B进行转发。
在Switch B上通过策略路由、Track与NQA联动,实时探测Switch A与Switch C的直连网段路由是否可达。如果Switch A与Switch C之间的链路故障,此时路由不可达,则NQA能够快速地检测到路由故障,使Switch B上策略路由失效,ICMP流量将查找路由表路由通过Switch A进行转发。
二、组网图:
策略路由、Track与NQA联动配置总结-H3C
三、配置步骤:
按照组网图创建VLAN,在VLAN中加入对应的端口,并配置各VLAN接口的IP地址,具体配置过程略。

  1. 配置Switch A
    1.1 配置到达非直连网段的静态路由。
    1)配置到达20.1.1.0/24网段的静态路由,下一跳地址为12.1.1.2。
    system-view
    [SwitchA] ip route-static 20.1.1.0 24 12.1.1.2
    2)配置到达23.1.1.0/30网段的静态路由,下一跳地址为13.1.1.2。
    [SwitchA] ip route-static 23.1.1.0 30 13.1.1.2
    1.2 配置TRACK项
    1)创建管理员名为admin、操作标签为test的NQA测试组。
    [SwitchA] nqa entry admin test
    2)配置测试类型为ICMP-echo。
    [SwitchA-nqa-admin-test] type icmp-echo
    3)配置测试的目的地址为23.1.1.1,下一跳地址为13.1.1.2,以便通过NQA检测Switch A-Switch C-Switch B这条路径的连通性。
    [SwitchA-nqa-admin-test-icmp-echo] destination ip 23.1.1.1
    [SwitchA-nqa-admin-test-icmp-echo] next-hop 13.1.1.2
    4)配置测试频率为1000ms。
    [SwitchA-nqa-admin-test-icmp-echo] frequency 1000
    5)配置联动项1(连续失败3次触发联动)。
    [SwitchA-nqa-admin-test-icmp-echo] reaction 1 checked-element probe-fail threshold-type consecutive 3 action-type trigger-only
    [SwitchA-nqa-admin-test-icmp-echo] quit
    6)启动探测。
    [SwitchA] nqa schedule admin test start-time now lifetime forever
    7)配置Track项1,关联NQA测试组(管理员为admin,操作标签为test)的联动项1。
    [SwitchA] track 1 nqa entry admin test reaction 1
    1.3 配置关于ICMP流量报文的策略路由,并且与Track项联动。
    1)定义访问控制列表ACL 3001,用来匹配ICMP报文。
    [SwitchA] acl number 3001
    [SwitchA-acl-adv-3001] rule permit icmp
    [SwitchA-acl-adv-3001] quit
    2)定义5号节点,指定所有ICMP报文的下一跳为13.1.1.2。
    [SwitchA] policy-based-route ICMP_PBR permit node 5
    [SwitchA-pbr-ICMP_PBR-5] if-match acl 3001
    [SwitchA-pbr-ICMP_PBR-5] apply ip-address next-hop 13.1.1.2 track 1
    [SwitchA-pbr-ICMP_PBR-5] quit
    3)在接口Vlan-interface10上应用转发策略路由,处理此接口接收的报文。
    [SwitchA] interface vlan-interface 10
    [SwitchA-Vlan-interface10] ip policy-based-route ICMP_PBR
    [SwitchA-Vlan-interface10] quit
  2. 配置Switch B
    2.1 配置到达非直连网段的静态路由。
    1) 配置到达10.1.1.0/24网段的静态路由,下一跳地址为12.1.1.1。
    system-view
    [SwitchB] ip route-static 10.1.1.0 24 12.1.1.1
    2) 配置到达13.1.1.0/30网段的静态路由,下一跳地址为23.1.1.2。
    [SwitchB] ip route-static 13.1.1.0 30 23.1.1.2
    2.2 配置TRACK项
    1)创建管理员名为admin、操作标签为test的NQA测试组。
    [SwitchB] nqa entry admin test
    2)配置测试类型为ICMP-echo。
    [SwitchB-nqa-admin-test] type icmp-echo
    3)配置测试的目的地址为13.1.1.1,下一跳地址为23.1.1.2,以便通过NQA检测Switch B-Switch C-Switch A这条路径的连通性。
    [SwitchB-nqa-admin-test-icmp-echo] destination ip 13.1.1.1
    [SwitchB-nqa-admin-test-icmp-echo] next-hop 23.1.1.2
    4)配置测试频率为1000ms。
    [SwitchB-nqa-admin-test-icmp-echo] frequency 1000
    5)配置联动项1(连续失败3次触发联动)。
    [SwitchB-nqa-admin-test-icmp-echo] reaction 1 checked-element probe-fail threshold-type consecutive 3 action-type trigger-only
    [SwitchB-nqa-admin-test-icmp-echo] quit
    6)启动探测。
    [SwitchB] nqa schedule admin test start-time now lifetime forever
    7)配置Track项1,关联NQA测试组(管理员为admin,操作标签为test)的联动项1。
    [SwitchB] track 1 nqa entry admin test reaction 1
    2.3 配置关于ICMP流量报文的策略路由,并且与Track项联动。
    1)定义访问控制列表ACL 3001,用来匹配ICMP报文。
    [SwitchB] acl number 3001
    [SwitchB-acl-adv-3001] rule permit icmp
    [SwitchB-acl-adv-3001] quit
    2)定义5号节点,指定所有ICMP报文的下一跳为23.1.1.2。
    [SwitchB] policy-based-route ICMP_PBR permit node 5
    [SwitchB-pbr-ICMP_PBR-5] if-match acl 3001
    [SwitchB-pbr-ICMP_PBR-5] apply ip-address next-hop 23.1.1.2 track 1
    [SwitchB-pbr-ICMP_PBR-5] quit
    3)在接口Vlan-interface20上应用转发策略路由,处理此接口接收的报文。
    [SwitchB] interface vlan-interface 20
    [SwitchB-Vlan-interface20] ip policy-based-route ICMP_PBR
    [SwitchB-Vlan-interface20] quit
  3. 配置Switch C
    3.1 配置到达非直连网段的静态路由。
    1)配置到达10.1.1.0/24网段的静态路由,下一跳地址为13.1.1.1。
    system-view
    [SwitchC] ip route-static 10.1.1.0 24 13.1.1.1
    2)配置到达20.1.1.0/24网段的静态路由,下一跳地址为23.1.1.1。
    [SwitchC] ip route-static 20.1.1.0 24 23.1.1.1
    4.验证配置结果
    4.1 验证策略路由是否生效。
    在Switch B上做流量统计,对ICMP流量报文和其他报文(以Telnet报文为例)做流量统计,验证策略路由是否生效。
    1)配置流量统计QoS

定义ACL 3005,匹配ICMP流量报文:
acl number 3005
rule 0 permit icmp source 10.1.1.0 0.0.0.255 destination 20.1.1.0 0.0.0.255
定义ACL 3006,匹配TCP流量报文:
acl number 3006
rule 0 permit tcp source 10.1.1.0 0.0.0.255 destination 20.1.1.0 0.0.0.255
创建流量统计QoS:
traffic classifier ACC_1 operator and
if-match acl 3005
#
traffic classifier ACC_2 operator and
if-match acl 3006
#
traffic behavior ACC
accounting packet
#
qos policy ACC
classifier ACC_1 behavior ACC
classifier ACC_2 behavior ACC
#
将QoS分别应用在连接Switch A的G1/0/2和连接Switch C的G1/0/1接口的入方向:
interface GigabitEthernet1/0/1

qos apply policy ACC inbound

interface GigabitEthernet1/0/2

qos apply policy ACC inbound

查看流量统计结果
从10.1.1.0/24网段的主机上Ping/Telnet 20.1.1.0/24网段的主机后,查看流量统计结果:
[SwitchB]display qos policy interface GigabitEthernet 1/0/2
Interface: GigabitEthernet1/0/2
Direction: Inbound
Policy: ACC
Classifier: ACC_1
Operator: AND
Rule(s) : If-match acl 3005
Behavior: ACC
Accounting Enable:
0 (Packets)
Classifier: ACC_2
Operator: AND
Rule(s) : If-match acl 3006
Behavior: ACC
Accounting Enable:
32 (Packets)
[SwitchB]display qos policy interface GigabitEthernet 1/0/1
Interface: GigabitEthernet1/0/1
Direction: Inbound
Policy: ACC
Classifier: ACC_1
Operator: AND
Rule(s) : If-match acl 3005
Behavior: ACC
Accounting Enable:
5 (Packets)
Classifier: ACC_2
Operator: AND
Rule(s) : If-match acl 3006
Behavior: ACC
Accounting Enable:
0 (Packets)
由于Telnet使用的是TCP协议,ping使用的是ICMP协议,所以由以上结果可证明:Switch A转发的ICMP报文的下一跳为13.1.1.2,策略路由生效。
4.2 验证策略路由与Track项联动是否生效。
断开Switch B与Switch C的链路后,查看Switch A上Track项状态:
display track 1
Track ID: 1
Status: Negative
Duration: 0 days 0 hours 1 minutes 35 seconds
Notification delay: Positive 0, Negative 0 (in seconds)
Reference object:
NQA entry: admin test
Reaction: 1
清空Switch B的流量统计计数,重新进行Ping/Telnet操作,再次查看Switch B的流量统计结果:
[SwitchB]display qos policy interface GigabitEthernet 1/0/2
Interface: GigabitEthernet1/0/2
Direction: Inbound
Policy: ACC
Classifier: ACC_1
Operator: AND
Rule(s) : If-match acl 3005
Behavior: ACC
Accounting Enable:
5 (Packets)
Classifier: ACC_2
Operator: AND
Rule(s) : If-match acl 3006
Behavior: ACC
Accounting Enable:
54 (Packets)
说明Track项已经检测到探测的网段不可达,并且成功将策略路由置为无效。
以上验证步骤是诊断流量从10.1.1.0/24网段到20.1.1.0/24网段的情况,对于反向的流量验证与上面情况类似。
四、配置关键点:

nqa相关其他配置
nqa entry admin icmp1
history-record enable 启用探测历史记录
out interface GigabitEthernet1/0/3 指定出接口

指定Track项状态变为Negative时,延迟通知应用模块时间为50秒;Track项状态变为Positive时,延迟通知应用模块时间为120秒。
[Sysname] track 101 list boolean or
[Sysname-track-101] delay negative 50 positive 120

检查nqa是否正常,可以先去检查track的状态,如果为positive代表正常,negative为失败。
策略路由、Track与NQA联动配置总结-H3C

display nqa history命令用来显示NQA测试组的历史记录。
display nqa reaction counters命令用来显示阈值告警组的当前监测结果。
display nqa result命令用来显示最近一次NQA测试的结果。
display nqa statistics命令用来显示NQA测试的统计信息。

上一篇:分治(Divide-and-Conquer(P))算法


下一篇:交换机命令随笔与案例