與單純依照IP報文的目的地址查找路由表進(jìn)行轉發(fā)不同,策略路由是一種依據用戶(hù)制定的策略進(jìn)行路由轉發(fā)的機制。策略路由可以對于滿(mǎn)足一定條件(ACL規則等)的報文,執行指定的操作(設置報文的下一跳等)。
報文到達后,系統首先根據策略路由轉發(fā),若沒(méi)有配置策略路由或配置了策略路由但找不到匹配的表項時(shí),再根據路由表來(lái)轉發(fā)報文。
目前,設備只支持轉發(fā)策略路由。轉發(fā)策略路由只對接口接收的報文起作用,指導其轉發(fā),對本地產(chǎn)生的報文不起作用。
策略用來(lái)定義報文的匹配規則,以及對報文執行的操作。策略由節點(diǎn)組成。
一個(gè)策略可以包含一個(gè)或者多個(gè)節點(diǎn)。節點(diǎn)的構成如下:
每個(gè)節點(diǎn)由節點(diǎn)編號來(lái)標識。節點(diǎn)編號越小節點(diǎn)的優(yōu)先級越高,優(yōu)先級高的節點(diǎn)優(yōu)先被執行。
每個(gè)節點(diǎn)的具體內容由if-match子句和apply子句來(lái)指定。if-match子句定義該節點(diǎn)的匹配規則,apply子句定義該節點(diǎn)的動(dòng)作。
每個(gè)節點(diǎn)對報文的處理方式由匹配模式?jīng)Q定。匹配模式分為permit(允許)和deny(拒絕)兩種。
應用策略后,系統將根據策略中定義的匹配規則和操作,對報文進(jìn)行處理:系統按照優(yōu)先級從高到低的順序依次匹配各節點(diǎn),如果報文滿(mǎn)足這個(gè)節點(diǎn)的匹配規則,就執行該節點(diǎn)的動(dòng)作;如果報文不滿(mǎn)足這個(gè)節點(diǎn)的匹配規則,就繼續匹配下一個(gè)節點(diǎn);如果報文不能滿(mǎn)足策略中任何一個(gè)節點(diǎn)的匹配規則,則根據路由表來(lái)轉發(fā)報文。
1. if-match子句
目前,策略路由僅提供了一種if-match子句,即if-match acl,用來(lái)設置ACL匹配規則。
在一個(gè)節點(diǎn)中,同一類(lèi)型的if-match子句最多只能有一條。
2. apply子句
目前,策略路由僅提供了一種apply子句,即apply next-hop,用來(lái)設置報文轉發(fā)的下一跳。
3. 節點(diǎn)的匹配模式與節點(diǎn)的if-match子句、apply子句的關(guān)系
一個(gè)節點(diǎn)的匹配模式與這個(gè)節點(diǎn)的if-match子句、apply子句的關(guān)系如表1-1所示。
表1-1 節點(diǎn)的匹配模式、if-match子句、apply子句三者之間的關(guān)系
2.1 創(chuàng )建策略節點(diǎn)
表1-2 創(chuàng )建策略節點(diǎn)
2.2 配置策略節點(diǎn)的匹配規則
表1-3 配置策略節點(diǎn)的匹配規則
2.3 配置策略節點(diǎn)的動(dòng)作
表1-4 配置策略節點(diǎn)的動(dòng)作
2.4 接口應用策略
表1-5 應用策略
2.5 策略路由顯示與維護
表1-6 策略路由顯示和維護
3.1 基于報文協(xié)議類(lèi)型的轉發(fā)策略路由配置舉例
1. 組網(wǎng)需求
通過(guò)策略路由控制從SWA的接口Vlan-interface1接收的報文:
指定所有TCP報文的下一跳為1.1.2.2;
其它報文仍然按照查找路由表的方式進(jìn)行轉發(fā)。
2. 組網(wǎng)圖
圖1-1 基于報文協(xié)議類(lèi)型的轉發(fā)策略路由的配置舉例組網(wǎng)圖
3. 配置步驟
(1) 配置Switch A
# 定義訪(fǎng)問(wèn)控制列表ACL 3101,用來(lái)匹配TCP報文。
<SwitchA> system-view
[SwitchA] acl advanced 3101
[SwitchA-acl-adv-3101] rule permit tcp
[SwitchA-acl-adv-3101] quit
# 定義5號節點(diǎn),指定所有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上應用轉發(fā)策略路由,處理此接口接收的報文。
[SwitchA] interface vlan-interface 1
[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
# 配置到網(wǎng)段10.110.0.0/24的靜態(tài)路由。
<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
(3) 配置Switch C
<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
4. 證配置結果
將Host A的IP地址配置為10.110.0.20/24,網(wǎng)關(guān)地址配置為10.110.0.10。
從Host A上Telnet Switch B,結果成功。
從Host A上Telnet Switch C,結果失敗。
從Host A上ping Switch C,結果成功。
由于Telnet使用的是TCP協(xié)議,ping使用的是ICMP協(xié)議,所以由以上結果可證明:從Switch A的接口Vlan-interface11接收的TCP報文的下一跳為1.1.2.2,接口Vlan-interface20不轉發(fā)TCP報文,但可以轉發(fā)非TCP報文,策略路由設置成功。