• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

07-三層技術-IP路由配置指導

目錄

07-策略路由配置

本章節下載 07-策略路由配置  (238.89 KB)

07-策略路由配置


1 策略路由

說明

設備支持兩種運行模式:獨立運行模式和IRF模式,缺省情況為獨立運行模式。有關IRF模式的介紹,請參見“IRF配置指導”中的“IRF”。

 

1.1  策略路由簡介

策略路由功能可以用來對IP單播報文進行策略路由。

1.1.1  策略路由簡介

策略路由(policy-based-route)是一種依據用戶製定的策略進行路由選擇的機製。與單純依照IP報文的目的地址查找路由表進行轉發不同,策略路由基於到達報文的源地址、長度等信息靈活地進行路由選擇。對於滿足一定條件(報文長度或ACL規則)的報文,將執行一定的操作(設置轉發報文的VPN實例、設置報文的優先級、設置報文的出接口和下一跳、設置報文的缺省出接口和下一跳等),以指導報文的轉發。

根據作用對象的不同,策略路由可分為本地策略路由和接口策略路由:

·     本地策略路由:對本地產生的報文(比如本地發出的ping報文)進行策略路由,它隻對本地產生的報文起作用,對轉發的報文不起作用。

·     接口策略路由:對到達該接口的報文進行策略路由,它隻對轉發的報文起作用,對本地產生的報文不起作用。

對於一般轉發和安全等方麵的使用需求,大多數情況下隻需使用接口策略路由。

一般來講,策略路由的優先級要高於普通路由,即報文先按照策略路由進行轉發。如果報文無法匹配所有的策略路由條件,不能按照策略路由進行轉發,再按照普通路由進行轉發。

1.1.2  策略簡介

一個策略用來引入一條路由,對IP報文轉發進行路由選擇。

一個策略可以包含一個或多個節點。

1. 節點

·     每個節點由node-number來指定。node-number的值越小優先級越高,優先級高的節點優先被執行。

·     每個節點的具體內容由if-matchapply子句來指定。if-match子句定義該節點的匹配規則,apply子句定義該節點的動作。

·     每個節點對報文的處理方式由匹配模式決定。匹配模式分為permitdeny兩種。

2. if-match子句

策略路由提供了一種if-match子句,為if-match acl

在一個節點中,if-match子句最多隻能有一條。

3. apply子句

策略路由提供了三種apply子句,分別為:apply access-vpn vpn-instanceapply ip-precedenceapply ip-address next-hop

同一個節點中的各apply子句的執行優先級情況如表1-1所示。

表1-1 同一個節點中的各apply子句的執行優先級情況

子句

含義

執行優先情況

apply access-vpn vpn-instance

配置轉發報文的VPN實例

報文如果匹配了其中一個VPN實例下的轉發表,報文將在該VPN實例中進行轉發,如果對於所有配置的VPN實例,報文都未能匹配其下的轉發表,該報文將被丟棄。

apply ip-precedence

配置報文的優先級

在公網轉發中,即在未配置apply access-vpn vpn-instance的情況下,隻要配置了該子句,該子句就一定會執行。

apply ip-address next-hop

配置策略路由下一跳

在公網轉發中,即在未配置apply access-vpn vpn-instance的情況下,配置的下一跳有效時本語句會執行

 

說明

·     當配置策略路由下一跳為direct時,如果策略路由下一跳的ARP表項可以動態學習到,則認為下一跳可達,否則認為下一跳無效。

·     當係統工作模式為標準模式時,配置轉發報文到VPN實例,需要在配置VPN前配置保留VLAN,否則配置失效。關於係統工作模式的介紹請參見“基礎配置指導”中的“設備管理”。關於保留VLAN的詳細描述,請參見“MPLS命令參考/MPLS L3VPN”中的“reserve-vlan vlan-id”。

 

4. 節點的匹配模式與節點的if-match子句、apply子句的關係

一個節點的匹配模式與這個節點的if-match子句、apply子句的關係如表1-2所示。

表1-2 節點的匹配模式、if-match子句、apply子句三者之間的關係

節點匹配模式

是否滿足if-match子句

permit(允許模式)

deny(拒絕模式)

報文滿足此節點的if-match子句

執行此節點apply子句,不再匹配下一節點

不執行此節點apply子句,不再匹配下一節點,報文按正常轉發流程處理

報文不滿足此節點的if-match子句

不執行此節點apply子句,繼續匹配下一節點

不執行此節點apply子句,繼續匹配下一節點

 

同一個策略中的各節點之間是“或”的關係,即隻要報文通過一個節點的過濾,就意味著通過該策略的過濾;如果報文不能通過一個策略中任何一個節點的過濾,則認為沒有通過該策略的過濾,報文將按正常轉發流程處理。

1.1.3  策略路由與Track聯動

策略路由通過與Track聯動,增強了應用的靈活性和策略路由對網絡環境的動態感知能力。策略路由可以在配置報文的出接口、缺省出接口、下一跳、缺省下一跳時與Track項關聯,通過Track項的狀態來動態地決定策略的可用性。策略路由配置僅在關聯的Track項狀態為Positive或Invalid時生效。

說明

關於策略路由與Track聯動的詳細介紹和相關配置請參見“可靠性配置指導”中的“Track”。

 

1.2  配置策略路由

1.2.1  配置策略

表1-3 配置策略

操作

命令

說明

進入係統視圖

system-view

-

創建策略或一個策略節點,並進入策略路由視圖

policy-based-route policy-name [ deny | permit ] node node-number

必選

設置ACL匹配條件

if-match acl acl-number

可選

設置報文在指定VPN實例進行轉發

apply access-vpn vpn-instance vpn-instance-name

可選

設置報文的優先級

apply ip-precedence value

可選

設置報文的下一跳

apply ip-address next-hop [ vpn-instance vpn-instance-name ] ip-address1 [ direct ] [ track track-entry-number ] [ ip-address2 [ direct ] [ track track-entry-number ] ]

可選

如果用戶同時配置兩個下一跳,隻有主下一跳生效。當主用下一跳失效時,備用下一跳才生效,起到主備備份的作用。

 

說明

·     如果if-match子句中引用了ACL,請不要在引用的ACL規則中配置deny動作。

·     如果使用的ACL不存在,則不匹配任何報文。

·     如果某個策略節點匹配的報文不需要按策略路由轉發,請直接指定該策略節點的匹配模式為拒絕模式。

·     如果策略路由引用的ACL已經生效,在已生效ACL中執行添加rule的操作,新添加的rule可能會不生效(原因可能是ACL資源不夠或策略路由不支持此rule)。通過display acl { acl-number | all | name acl-name } slot slot-number查詢ACL的配置和運行情況時,不生效的rule會被標識成“uncompleted”。如果後續有了足夠的ACL資源,需要刪除不生效的rule並重新配置,此rule才能生效。關於display acl命令的詳細介紹,請參見“ACL和QoS命令參考”中的“ACL”。

·     apply ip-address next-hop命令可以配置兩個下一跳,可以通過一次配置兩個下一跳參數進行,也可以通過兩條配置命令完成。當用戶希望修改其中一個時,隻需要繼續執行apply ip-address next-hop命令,係統就會將最早配置的下一跳(一次配置兩個下一跳參數的情況下為命令行輸入的第二個參數值)替換;如果先前配置的兩個下一跳都需要修改,則直接在apply ip-address next-hop命令後配置兩個參數即可。

 

注意

·     如果某一節點不配置if-match子句,則所有報文都會通過該節點的過濾,根據permit/deny執行相應的操作,不再繼續匹配下一節點。

·     如果某一permit模式的節點不配置apply子句,當報文滿足此節點的if-match子句時,將不會執行任何動作,且不再繼續匹配下一節點,報文按正常轉發流程處理。

·     如果某一節點沒有配置任何if-match子句和apply子句,則所有報文都會通過該節點的過濾,但不會執行任何動作,且不再繼續匹配下一節點,報文按正常轉發流程處理。

 

1.2.2  配置本地策略路由

在應用本地策略路由時,隻能引用一個策略。

表1-4 配置本地策略路由

操作

命令

說明

進入係統視圖

system-view

-

應用本地策略路由

ip local policy-based-route policy-name

必選

缺省情況下,沒有應用本地策略路由

 

說明

·     如果配置時策略policy-name不存在,命令可以配置成功,但隻有當策略policy-name創建後,本地策略路由才真正生效。

·     本地策略隻支持IP轉發,不支持MPLS轉發。

·     本地策略路由不支持apply access-vpn vpn-instance

 

1.2.3  配置接口策略路由

在應用接口策略路由時,一個接口隻能引用一個策略。

表1-5 配置接口策略路由

操作

命令

說明

進入係統視圖

system-view

-

進入接口視圖

interface interface-type interface-number

-

應用接口策略路由

ip policy-based-route policy-name

必選

缺省情況下,沒有應用接口策略路由

 

說明

如果配置時策略policy-name不存在,命令可以配置成功,但隻有當策略policy-name創建後,接口策略路由才真正生效。

 

1.3  策略路由顯示和維護

在完成上述配置後,在任意視圖下執行display命令可以顯示配置策略路由後的運行情況,通過查看顯示信息驗證配置的效果。

在用戶視圖下,用戶可以執行reset命令重置策略路由的統計信息。

表1-6 策略路由顯示和維護

操作

命令

顯示係統和接口應用的所有策略路由的信息

display ip policy-based-route [ | { begin | exclude | include } regular-expression ]

顯示係統的策略路由的設置情況(獨立運行模式)

display ip policy-based-route setup { policy-name | interface interface-type interface-number [ slot slot-number ] | local [ slot slot-number ] } [ | { begin | exclude | include } regular-expression ]

顯示係統的策略路由的設置情況(IRF模式)

display ip policy-based-route setup { policy-name | interface interface-type interface-number [ chassis chassis-number slot slot-number ] | local [ chassis chassis-number slot slot-number ] } [ | { begin | exclude | include } regular-expression ]

顯示策略路由的統計信息(獨立運行模式)

display ip policy-based-route statistics { interface interface-type interface-number | local } [ slot slot-number ] [ | { begin | exclude | include } regular-expression ]

顯示策略路由的統計信息(IRF模式)

display ip policy-based-route statistics { interface interface-type interface-number | local } [ chassis chassis-number slot slot-number ] [ | { begin | exclude | include } regular-expression ]

顯示已經配置的策略路由

display policy-based-route [ policy-name ] [ | { begin | exclude | include } regular-expression ]

重置策略路由的統計信息

reset policy-based-route statistics [ policy-name ]

 

1.4  策略路由典型配置舉例

說明

缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態

 

1.4.1  基於報文協議類型的本地策略路由配置舉例

1. 組網需求

通過策略路由控製從Switch A發出的報文:

·     指定所有TCP報文的下一跳為1.1.2.2;

·     其它報文仍然按照查找路由表的方式進行轉發。

其中,Switch A分別與Switch B和Switch C直連。Switch B與Switch C路由不可達。

2. 組網圖

圖1-1 基於報文協議類型的本地策略路由的配置舉例組網圖

 

3. 配置步驟

(1)     配置Switch A

# 定義訪問控製列表,ACL 3101匹配TCP報文。

<SwitchA> system-view

[SwitchA] acl number 3101

[SwitchA-acl-adv-3101] rule permit tcp

[SwitchA-acl-adv-3101] quit

# 定義5號節點,指定所有TCP報文的下一跳為1.1.2.2。

[SwitchA] policy-based-route aaa permit node 5

[SwitchA-pbr-aaa-5] if-match acl 3101

[SwitchA-pbr-aaa-5] apply ip-address next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

# 在Switch A上應用本地策略路由。

[SwitchA] ip local policy-based-route aaa

# 配置接口Vlan-interface10和Vlan-interface20的IP地址。

[SwitchA] interface Vlan-interface 10

[SwitchA-Vlan-interface10] ip address 1.1.2.1 255.255.255.0

[SwitchA-Vlan-interface10] quit

[SwitchA] interface Vlan-interface 20

[SwitchA-Vlan-interface20] ip address 1.1.3.1 255.255.255.0

(2)     配置Switch B

# 配置接口Vlan-interface10的IP地址。

<SwitchB> system-view

[SwitchB] interface Vlan-interface 10

[SwitchB-Vlan-interface10] ip address 1.1.2.2 255.255.255.0

[SwitchB-Vlan-interface10] quit

(3)     配置Switch C

# 配置接口Vlan-interface20的IP地址。

<SwitchC> system-view

[SwitchC] interface Vlan-interface 20

[SwitchC-Vlan-interface20] ip address 1.1.3.2 255.255.255.0

[SwitchC-Vlan-interface20] quit

(4)     驗證配置結果

# 從Switch A上Telnet Switch B(1.1.2.2/24),結果成功。

<SwitchA> telnet 1.1.2.2

Trying 1.1.2.2 ...

Press CTRL+K to abort

Connected to 1.1.2.2 ...

******************************************************************************

* Copyright (c) 2004-2011 Hangzhou H3C Tech. Co., Ltd. All rights reserved.  *

* Without the owner's prior written consent,                                 *

* no decompiling or reverse-engineering shall be allowed.                    *

******************************************************************************

# 從Switch A上Telnet Switch C(1.1.3.2/24),結果失敗。

<SwitchA> telnet 1.1.3.2

Trying 1.1.3.2 ...

Press CTRL+K to abort

Can't connect to the remote host!

# 從Switch A上ping Switch C(1.1.3.2/24),結果成功。

<SwitchA> ping 1.1.3.2

  PING 1.1.3.2: 56  data bytes, press CTRL_C to break

    Reply from 1.1.3.2: bytes=56 Sequence=1 ttl=255 time=2 ms

    Reply from 1.1.3.2: bytes=56 Sequence=2 ttl=255 time=1 ms

    Reply from 1.1.3.2: bytes=56 Sequence=3 ttl=255 time=1 ms

    Reply from 1.1.3.2: bytes=56 Sequence=4 ttl=255 time=1 ms

    Reply from 1.1.3.2: bytes=56 Sequence=5 ttl=255 time=1 ms

 

  --- 1.1.3.2 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 1/1/2 ms

 

由於Telnet使用的是TCP協議,ping使用的是ICMP協議,所以由以上結果可證明:Switch A發出的TCP報文的下一跳為1.1.2.2,接口Vlan-interface20不發送TCP報文,但可以發送非TCP報文,策略路由設置成功。

1.4.2  基於報文協議類型的接口策略路由配置舉例

1. 組網需求

通過策略路由控製從Switch A的接口Vlan-interface11接收的報文:

·     指定所有TCP報文的下一跳為1.1.2.2;

·     其它報文仍然按照查找路由表的方式進行轉發。

2. 組網圖

圖1-2 基於報文協議類型的接口策略路由的配置舉例組網圖

3. 配置步驟

說明

本例中采用靜態路由保證各設備之間路由可達。

 

(1)     配置Switch A

# 定義訪問控製列表,ACL 3101匹配TCP報文。

<SwitchA> system-view

[SwitchA] acl number 3101

[SwitchA-acl-adv-3101] rule permit tcp

[SwitchA-acl-adv-3101] quit

# 定義5號節點,指定所有TCP報文的下一跳為1.1.2.2。

[SwitchA] policy-based-route aaa permit node 5

[SwitchA-pbr-aaa-5] if-match acl 3101

[SwitchA-pbr-aaa-5] apply ip-address next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

# 在接口Vlan-interface11上應用接口策略路由,處理此接口接收的報文。

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 10.110.0.10 255.255.255.0

[SwitchA-Vlan-interface11] ip policy-based-route aaa

[SwitchA-Vlan-interface11] quit

# 配置接口Vlan-interface10和Vlan-interface20的IP地址。

[SwitchA] interface vlan-interface 10

[SwitchA-Vlan-interface10] ip address 1.1.2.1 255.255.255.0

[SwitchA-Vlan-interface10] quit

[SwitchA] interface vlan-interface 20

[SwitchA-Vlan-interface20] ip address 1.1.3.1 255.255.255.0

(2)     配置Switch B

# 配置到網段10.110.0.0/24的靜態路由。

<SwitchB> system-view

[SwitchB] ip route-static 10.110.0.0 24 1.1.2.1

# 配置接口Vlan-interface10的IP地址。

[SwitchB] interface vlan-interface 10

[SwitchB-Vlan-interface10] ip address 1.1.2.2 255.255.255.0

[SwitchB-Vlan-interface10] quit

(3)     配置Switch C

# 配置到網段10.110.0.0/24的靜態路由。

<SwitchC> system-view

[SwitchC] ip route-static 10.110.0.0 24 1.1.3.1

# 配置接口Vlan-interface20的IP地址。

[SwitchC] interface vlan-interface 20

[SwitchC-Vlan-interface20] ip address 1.1.3.2 255.255.255.0

[SwitchC-Vlan-interface20] quit

(4)     驗證配置結果

Host AIP地址配置為10.110.0.20/24,網關地址配置為10.110.0.10

從Host A上Telnet與Switch A直連的Switch B(telnet 1.1.2.2),結果成功。

從Host A上Telnet與Switch A直連的Switch C(telnet 1.1.3.2),結果失敗。

從Host A上ping與Switch A直連的Switch C(ping 1.1.3.2),結果成功。

由於Telnet使用的是TCP協議,ping使用的是ICMP協議,所以由以上結果可證明:從Switch A的接口Vlan-interface11接收的TCP報文的下一跳為1.1.2.2,接口Vlan-interface20不轉發TCP報文,但可以轉發非TCP報文,策略路由設置成功。

 

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們