策略路由根據需求自行修改,本文主要是專注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進行轉發。
二、組網圖:
三、配置步驟:
按照組網圖創建VLAN,在VLAN中加入對應的端口,並配置各VLAN接口的IP地址,具體配置過程略。
- 配置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 - 配置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 - 配置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 2 nqa entry admin icmp2 reaction 1
[Sysname-track-101] delay negative 50 positive 120
檢查nqa是否正常,可以先去檢查track的狀態,如果為positive代表正常,negative為失敗。
display nqa history命令用來顯示NQA測試組的歷史記錄。
display nqa reaction counters命令用來顯示閾值告警組的當前監測結果。
display nqa result命令用來顯示最近一次NQA測試的結果。
display nqa statistics命令用來顯示NQA測試的統計信息。