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

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

目錄

07-策略路由配置

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

07-策略路由配置


1 策略路由

1.1  策略路由簡介

與單純依照IP報文的目的地址查找路由表進行轉發不同,策略路由是一種依據用戶製定的策略進行路由轉發的機製。策略路由可以對於滿足一定條件(ACL規則等)的報文,執行指定的操作(設置報文的下一跳和缺省下一跳等)。

1.1.1  報文的轉發流程

設備上,報文的基本轉發流程為:

(1)     首先根據配置的策略路由,查找滿足匹配條件的節點。

(2)     若找到了匹配的節點,並且該節點是permit(允許)模式:

a.     根據策略路由中配置的下一跳指導報文轉發。

b.     若節點未配置下一跳,或根據下一跳指導報文轉發失敗,則根據路由表中除缺省路由之外的路由來轉發報文。

c.     若未找到除缺省路由之外的路由,或路由轉發失敗,則根據策略路由中配置的缺省下一跳指導報文轉發。

d.     若節點未配置缺省下一跳,或根據缺省下一跳指導報文轉發失敗,則根據缺省路由來轉發報文。

(3)     若找不到匹配的節點,或找到了匹配的節點,但該節點是deny(拒絕)模式,則根據路由表指導報文轉發。

1.1.2  策略路由類型

根據作用對象的不同,策略路由可分為以下兩種類型:

·     本地策略路由:對設備本身產生的報文(比如本地發出的ping報文)起作用,指導其發送。

·     轉發策略路由:對接口接收的報文起作用,指導其轉發。

1.1.3  策略簡介

策略用來定義報文的匹配規則,以及對報文執行的操作。策略由節點組成。

一個策略可以包含一個或者多個節點。節點的構成如下:

·     每個節點由節點編號來標識。編號較小的節點優先被執行。

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

·     每個節點對報文的處理方式由匹配模式決定。匹配模式分為permit(允許)和deny(拒絕)兩種。

應用策略後,係統將根據策略中定義的匹配規則和操作,對報文進行處理:係統按照優先級從高到低的順序依次匹配各節點,如果報文滿足這個節點的匹配規則,就執行該節點的動作;如果報文不滿足這個節點的匹配規則,就繼續匹配下一個節點;如果報文不能滿足策略中任何一個節點的匹配規則,則根據路由表來轉發報文。

1. if-match子句關係

目前,策略路由支持通過if-match acl子句設置ACL匹配規則,在一個節點中隻能配置一條if-match acl子句。

同一個節點中的不同類型if-match子句之間是“與”的關係,即報文必須滿足該節點的所有if-match子句才算滿足這個節點的匹配規則。

2. apply子句關係

同一個節點中可以配置多條apply子句,但不一定都會執行。多條apply子句之間的關係請參見“1.4.3  配置策略節點的動作”。

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

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

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

是否滿足所有if-match子句

節點匹配模式

permit(允許模式)

deny(拒絕模式)

·     如果節點配置了apply子句,則執行此節點apply子句

¡     如果節點指導報文轉發成功,則不再匹配下一節點

¡     如果節點指導報文轉發失敗,則不再匹配下一節點

·     如果節點未配置apply子句,則不會執行任何動作,且不再匹配下一節點,報文將根據路由表來進行轉發

不執行此節點apply子句,不再匹配下一節點,報文將根據路由表來進行轉發

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

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

 

說明

如果一個節點中未配置任何if-match子句,則認為所有報文都滿足該節點的匹配規則,按照“報文滿足所有if-match子句”的情況進行後續處理。

 

1.1.4  策略路由與Track聯動

策略路由通過與Track聯動,增強了應用的靈活性和對網絡環境變化的動態感知能力。

策略路由可以在配置報文的下一跳和缺省下一跳時與Track項關聯,根據Track項的狀態來動態地決定策略的可用性。策略路由配置僅在關聯的Track項狀態為Positive或NotReady時生效。關於策略路由與Track聯動的詳細介紹和相關配置,請參見“可靠性配置指導”中的“Track”。

1.2  策略路由配置限製和指導

設備收到某些目的為本設備的IP報文後,如果策略路由匹配該報文,會在報文上送CPU處理前先按策略節點動作處理。

1.3  策略路由配置任務簡介

策略路由配置任務如下:

(1)     配置策略

a.     創建策略節點

b.     配置策略節點的匹配規則

c.     配置策略節點的動作

(2)     應用策略

請選擇以下至少一項任務進行配置:

¡     對本地報文應用策略

¡     對接口轉發的報文應用策略

-     在指定接口應用轉發策略

-     全局應用轉發策略

1.4  配置策略

1.4.1  創建策略節點

(1)     進入係統視圖。

system-view

(2)     創建策略節點,並進入策略節點視圖。

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

(3)     (可選)設置當前策略節點的描述信息。

description text

缺省情況下,未設置當前策略節點的描述信息。

1.4.2  配置策略節點的匹配規則

1. 配置步驟

(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匹配規則。

if-match子句中使用ACL時,將忽略 ACL規則的permit/deny動作以及time-range指定的規則生效時間段等的處理機製,隻使用ACL中的匹配規則來匹配報文。

¡     設置IP報文QoS本地ID值匹配規則。

if-match qos-local-id local-id-value

缺省情況下,未設置IP報文QoS本地ID值匹配規則。

本命令僅對SF係列接口板生效。

同一策略路由節點內,if-match qos-local-id命令和if-match acl命令不支持引用同一QoS本地ID值。

¡     設置服務鏈匹配規則。

if-match service-chain path-id service-path-id [ path-index service-patch-index ]

缺省情況下,未設置服務鏈匹配規則。

本命令僅對SF係列接口板生效。

僅當係統工作模式配置為專家模式時,本命令才生效。關於係統工作模式的詳細介紹,請參見“基礎配置”中的“設備管理”。

1.4.3  配置策略節點的動作

1. 功能簡介

用戶通過配置apply子句指導策略節點的動作。

影響報文轉發路徑的apply子句有三條,優先級從高到低依次為:

(1)     apply next-hop

(2)     apply output-interface

(3)     apply default-next-hop

apply子句的含義、執行優先情況和詳細說明如表1-2所示。

表1-2 apply子句的含義以及執行優先情況等說明

子句

含義

執行優先情況/詳細說明

apply precedence

設置IP報文的IP優先級

隻要配置了該子句,該子句就一定會執行

apply loadshare { next-hop | default-next-hop }

設置指導報文轉發的下一跳和缺省下一跳的工作模式為負載分擔模式

下一跳和缺省下一跳的工作模式有兩種:主備模式、負載分擔模式

·     主備模式:按照配置順序,以第一個配置(下一跳和缺省下一跳)作為主用,指導報文轉發。當主用失效時,按配置順序選擇後續的第一個有效配置指導報文轉發

·     負載分擔模式:下一跳的負載分擔方式,如果不匹配快速轉發表,則按照配置順序逐包輪流選擇有效的下一跳指導報文轉發;如果匹配快速轉發表,則按照配置順序逐流輪流選擇有效的下一跳指導報文轉發。

缺省情況下,工作模式為主備模式

負載分擔模式隻對策略路由配置的多個下一跳和缺省下一跳生效

apply next-hopapply output-interface

設置報文的下一跳、出接口

當兩條子句同時配置並且都有效時,係統隻會執行apply next-hop子句

apply service-chain

設置報文的服務鏈規則

本子句必須在應用可達的VXLAN隧道的下一跳才生效

apply default-next-hop

設置報文的缺省下一跳

執行缺省下一跳的前提是:在策略中未配置下一跳,或者配置的下一跳無效,並且在路由表中未找到與報文目的IP地址匹配的路由表項

apply statistics

設置策略節點統計匹配成功的次數和字節數

開啟本功能後,管理員可以通過display命令查看當前匹配成功的總次數和字節總數

策略節點中隻要配置了此動作,就一定會執行

2. 配置限製和指導

使用SF係列接口板並且係統工作模式配置在專家模式時,apply service-chain不支持與apply statistics同時配置。關於係統工作模式的詳細介紹,請參見“基礎配置”中的“設備管理”。

策略路由通過查詢FIB表中是否存在下一跳地址對應的條目,判斷設置的報文轉發下一跳地址是否可用。策略路由周期性檢查FIB表,設備到下一跳的路徑發生變化時,策略路由無法及時感知,可能會導致通信發生短暫中斷。

使用SF係列接口板並且係統工作模式配置在專家模式時,apply service-chain不支持與apply statistics同時配置。關於係統工作模式的詳細介紹,請參見“基礎配置”中的“設備管理”。

配置服務鏈動作有如下限製:

·     當同時配置了apply service-chainapply loadshare { default-next-hop | next-hop }時,apply loadshare { default-next-hop | next-hop }命令不生效。

·     當配置apply next-hop或者apply default-next-hop命令指定service-chain參數時,同時配置的apply loadshare { default-next-hop | next-hop }命令不生效。

3. 配置修改報文字段類動作

(1)     進入係統視圖。

system-view

(2)     進入策略節點視圖。

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

(3)     設置IP報文的IP優先級。

apply precedence { type | value }

缺省情況下,未設置IP報文的優先級。

4. 配置指導報文轉發類動作

(1)     進入係統視圖。

system-view

(2)     進入策略節點視圖。

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

(3)     配置動作。

¡     設置報文轉發的下一跳。

apply next-hop [ vpn-instance vpn-instance-name] { ip-address [ direct ] [ track track-entry-number ] [ service-chain path-id service-path-id [ path-index service-path-index ] ] }&<1-8>

缺省情況下,未設置報文轉發的下一跳。

用戶通過一次或多次配置本命令可以同時配置多個下一跳,每個節點最多可以配置8個下一跳,這些下一跳起到主備或負載分擔的作用。

當配置了多個下一跳做主備,且多個下一跳地址屬於同一個網段時,當主下一跳匹配失敗後,設備會先匹配主下一跳對應的網段路由轉發報文,當網段路由匹配失敗後,再匹配配置的備下一跳。

僅在安裝SF係列接口板且在expert工作模式下支持service-chain path-idpath-index參數。

¡     設置指導報文轉發的多個下一跳工作在負載分擔模式。

apply loadshare next-hop

缺省情況下,多個下一跳工作在主備模式。

¡     設置指導報文轉發的出接口。

apply output-interface null 0

缺省情況下,未設置指導報文轉發的出接口。

¡     設置指導報文轉發的缺省下一跳。

apply default-next-hop [ vpn-instance vpn-instance-name ] { ip-address [ direct ] [ track track-entry-number ] [ service-chain path-id service-path-id [ path-index service-path-index ] ] }&<1-4>

缺省情況下,未設置指導報文轉發的缺省下一跳。

用戶通過一次或多次配置本命令可以同時配置多個缺省下一跳,每個節點最多可以配置8個缺省下一跳,這些缺省下一跳起到主備或負載分擔的作用。

本命令僅對SF係列接口板生效。

僅當係統工作模式配置為專家模式時,service-chain path-idpath-index參數才生效。關於係統工作模式的詳細介紹,請參見“基礎配置”中的“設備管理”。

¡     設置指導報文轉發的多個缺省下一跳工作在負載分擔模式。

apply loadshare default-next-hop

缺省情況下,多個缺省下一跳工作在主備模式。

¡     設置報文的服務鏈規則。

apply service-chain path-id service-path-id [ path-index service-path-index ]

缺省情況下,未設置報文的服務鏈規則。

本命令僅對SF係列接口板生效。

僅當係統工作模式配置為專家模式時,本命令才生效。關於係統工作模式的詳細介紹,請參見“基礎配置”中的“設備管理”。

5. 設置統計類動作

(1)     進入係統視圖。

system-view

(2)     進入策略節點視圖。

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

(3)     設置策略節點統計匹配成功的次數和字節數。

apply statistics

缺省情況下,未配置策略節點統計匹配成功的次數和字節數。

1.5  應用策略

1.5.1  對本地報文應用策略

1. 功能簡介

通過本配置,可以將已經配置的策略應用到本地,指導設備本身產生報文的發送。應用策略時,該策略必須已經存在,否則配置將失敗。

2. 配置限製和指導

·     對本地報文隻能應用一個策略。應用新的策略前必須刪除本地原來已經應用的策略。

·     若無特殊需求,建議用戶不要對本地報文應用策略。否則,有可能會對本地報文的發送造成不必要的影響(如ping、telnet服務的失效)。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     對本地報文應用策略。

ip local policy-based-route policy-name

缺省情況下,未對本地報文應用策略。

1.5.2  在指定接口應用轉發策略

1. 功能簡介

通過本配置,可以將已經配置的策略應用到接口,指導接口接收的所有報文的轉發。應用策略時,該策略必須已經存在,否則配置將失敗。

2. 配置限製和指導

·     對接口轉發的報文應用策略時,一個接口隻能應用一個策略。應用新的策略前必須刪除接口上原來已經應用的策略。

·     一個策略可以同時被多個接口應用。

·     在三層以太網子接口和三層聚合子接口上,share-mode參數無法生效。

·     對接口轉發的報文應用策略時,share-mode參數僅在SF係列接口板上生效。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入接口視圖。

interface interface-type interface-number

(3)     對接口轉發的報文應用策略。

ip policy-based-route policy-name [ share-mode ]

缺省情況下,未對接口轉發的報文應用策略。

1.5.3  全局應用轉發策略

1. 功能簡介

通過本配置,可以將已經配置的策略應用到設備的所有接口,指導這些接口接收的所有報文的轉發。

2. 配置限製和指導

應用策略時,該策略必須已經存在,否則配置將失敗。

一台設備隻能應用一條全局策略,應用新的全局策略前必須通過執行undo ip global policy-based-route命令取消應用的全局策略。

如果同時應用了全局策略和轉發策略,則接口優先使用接口的轉發策略處理報文;如果接口上的報文不匹配轉發策略,則使用全局策略處理報文。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     對接口轉發的報文應用全局策略。

ip global policy-based-route policy-name

缺省情況下,未對接口轉發的報文應用全局策略。

1.6  策略路由顯示和維護

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

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

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

操作

命令

顯示已經配置的策略

display ip policy-based-route [ policy policy-name ]

顯示全局策略路由的配置信息和統計信息

(獨立運行模式)

display ip policy-based-route global [ slot slot-number ]

(IRF模式)

display ip policy-based-route global [ chassis chassis-number slot slot-number ]

顯示接口下轉發策略路由的配置信息和統計信息

(獨立運行模式)

display ip policy-based-route interface interface-type interface-number [ slot slot-number ]

(IRF模式)

display ip policy-based-route interface interface-type interface-number [ chassis chassis-number slot slot-number ]

顯示本地策略路由的配置信息和統計信息

(獨立運行模式)

display ip policy-based-route local [ slot slot-number ]

(IRF模式)

display ip policy-based-route local [ chassis chassis-number slot slot-number ]

顯示已經應用的策略路由信息

display ip policy-based-route setup

清除策略路由的統計信息

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

 

1.7  策略路由典型配置舉例

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

1. 組網需求

Switch A分別與Switch B和Switch C直連(保證Switch B和Switch C之間路由完全不可達)。通過策略路由控製Switch A產生的報文:

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

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

2. 組網圖

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

 

3. 配置步驟

(1)     配置Switch A

# 創建VLAN 10和VLAN 20。

<SwitchA> system-view

[SwitchA] vlan 10

[SwitchA-vlan10] quit

[SwitchA] vlan 20

[SwitchA-vlan20] quit

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

[SwitchA] interface vlan-interface 10

[SwitchA-Vlan-interface10] ip address 1.1.2.1 24

[SwitchA-Vlan-interface10] quit

[SwitchA] interface vlan-interface 20

[SwitchA-Vlan-interface20] ip address 1.1.3.1 24

[SwitchA-Vlan-interface20] quit

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

[SwitchA] acl advanced 3101

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

[SwitchA-acl-ipv4-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 next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

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

[SwitchA] ip local policy-based-route aaa

(2)     配置Switch B

# 創建VLAN 10

<SwitchB> system-view

[SwitchB] vlan 10

[SwitchB-vlan10] quit

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

[SwitchB] interface vlan-interface 10

[SwitchB-Vlan-interface10] ip address 1.1.2.2 24

(3)     配置Switch C

#創建VLAN 20

<SwitchC> system-view

[SwitchC] vlan 20

[SwitchC-vlan20] quit

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

[SwitchC] interface vlan-interface 20

[SwitchC-Vlan-interface20] ip address 1.1.3.2 24

4. 驗證配置

從Switch A上通過Telnet方式登錄Switch B(1.1.2.2/24),結果成功。

從Switch A上通過Telnet方式登錄Switch C(1.1.3.2/24),結果失敗。

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

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

1.7.2  基於報文協議類型的轉發策略路由配置舉例

1. 組網需求

Switch A分別與Switch B和Switch C直連(保證Switch B和Switch C之間路由完全不可達)。

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

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

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

2. 組網圖

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

 

3. 配置步驟

(1)     配置IP地址和單播路由協議,確保Switch B和Host A,Switch C和Host A之間路由可達,具體配置過程略。

(2)     配置Switch A

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

[SwitchA] acl advanced 3101

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

[SwitchA-acl-ipv4-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 next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

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

[SwitchA] interface vlan-interface 11

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

[SwitchA-Vlan-interface11] quit

4. 驗證配置

從Host A上通過Telnet方式登錄Switch B,結果成功。

從Host A上通過Telnet方式登錄Switch C,結果失敗。

從Host A上ping Switch C,結果成功。

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

1.7.3  基於報文協議類型的全局策略路由配置舉例

1. 組網需求

Switch D分別與Switch A、Switch B、Switch C、Switch E和Switch F直連(保證Switch E到Switch F之間路由不可達)。通過全局策略路由控製從Switch D的所有接口接收的報文:

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

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

2. 組網圖

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

3. 配置步驟

(1)     如圖1-3所示,配置各設備接口的IP地址,配置步驟略。

(2)     配置單播路由協議,確保Switch A和Switch E,Switch A和Switch F,Switch B和Switch E,Switch B和Switch F,Switch C和Switch E,Switch C和Switch F之間路由可達。

(3)     配置Switch D

# 定義訪問控製列表ACL 3101,用來匹配從1.1.1.0/24,1.1.2.0/24和1.1.3.0/24網段中的源設備發來的TCP報文。

<SwitchD> system-view

[SwitchD] acl advanced 3101

[SwitchD-acl-ipv4-adv-3101] rule permit tcp source 1.1.1.0 0.0.0.0.255

[SwitchD-acl-ipv4-adv-3101] rule permit tcp source 1.1.2.0 0.0.0.0.255

[SwitchD-acl-ipv4-adv-3101] rule permit tcp source 1.1.3.0 0.0.0.0.255

[SwitchD-acl-ipv4-adv-3101] quit

# 配置策略路由aaa,定義5號節點,指定所有TCP報文的下一跳為1.1.4.2。

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

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

[SwitchD-pbr-aaa-5] apply next-hop 1.1.4.2

[SwitchD-pbr-aaa-5] quit

# 在Switch D上應用全局策略路由aaa,處理Switch D上所有接口接收的報文。

[SwitchD] ip global policy-based-route aaa

4. 驗證配置

從Switch A上通過Telnet方式登錄Switch E,結果成功,登錄Switch F,結果失敗。

從Switch B上通過Telnet方式登錄Switch E,結果成功,登錄Switch F,結果失敗。

從Switch C上通過Telnet方式登錄Switch E,結果成功,登錄Switch F,結果失敗。

從Switch A上ping Switch F,結果成功。

從Switch B上ping Switch F,結果成功。

從Switch C上ping Switch F,結果成功。

由於Telnet使用的是TCP協議,ping使用的是ICMP協議,所以由以上結果可證明:從Switch D的VLAN接口1、VLAN接口2和VLAN接口3接收的TCP報文的下一跳為1.1.4.2,全局策略路由設置成功。

 

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

BOB登陆
官網
聯係我們