說到策略路由,就不得不提及它的兄弟路由策略。常常有人將它們混淆,因為路由策略和策略路由都是對數據控制轉發起一定作用,不同就在于路由策略作用對象是“路由”信息,主要通過改特定路由的相關屬性,進而對路由的學習,發布等進行控制。
而策略路由的作用對象是“數據包”,主要是對轉發報文的報文本身特征來進行轉發控制。
一、策略路由
策略路由,即 PBR(Policy-Based Routing),與傳統的基于 IP報文目的地址查找路由表進行轉發不同,它可以依據用戶自定義的策略進行報文轉發。
這個自定義的策略,可以根據報文的來源、應用、協議以及報文長度等特征來進行定義。報文可以優先根據設置的 PBR進行轉發,因此策略路由給組網提供了極大的靈活性。
1、策略路由分類
策略路由一般分為前策略路由和后策略路由,其中前策略路由又根據策略路由配置的下一跳不生效時對報文的不同處理方式分為強策略路由和弱策略路由。
1)前策略路由:報文首先按照策略路由的下一跳進行轉發。
• 強策略路由:當策略路由下一跳不可達時,報文直接被丟棄。
• 弱策略路由:當策略路由下一跳不可達時,報文不會直接被丟棄,而是重新查詢路由表,根據路由表轉發報文,沒有路由表匹配,按缺省下一跳轉發(Apply ip-address default next-hop)。
2)后策略路由:路由表中明細路由>后策略路由>路由表中的默認路由,所以后策略路由優先級是介于明細路由和默認路由之間。
二、路由策略
1、基本原理
路由策略使用不同的匹配條件和匹配模式選擇路由和改變路由屬性。在特定的場景中,路由策略的6 種過濾器也能單獨使用,實現路由過濾。若設備支持BGP to IGP 功能,還能在 IGP 引入 BGP 路由時,使用BGP 私有屬性作為匹配條件。
如圖,一個路由策略中包含 N(N>=1)個節點(Node)。路由進入路由策略后,按節點序號從小到大依次檢查各個節點是否匹配。
匹配條件由 If-match 子句定義,涉及路由信息的屬性和路由策略的 6 種過濾器。當路由與該節點的所有If-match 子句都匹配成功后,進入匹配模式選擇,不再匹配其他節點。
匹配模式分 permit 和 deny 兩種:
·permit:路由將被允許通過,并且執行該節點的Apply 子句對路由信息的一些屬性進行設置。
·deny:路由將被拒絕通過。
當路由與該節點的任意一個 If-match 子句匹配失敗后,進入下一節點。如果和所有節點都匹配失敗,路由信息將被拒絕通過。
2、過濾器
路由策略中 If-match 子句中匹配的 6 種過濾器包括訪問控制列表ACL(Access Control List)、地址前綴列表、 AS 路徑過濾器、團體屬性過濾器、擴展團體屬性過濾器和RD 屬性過濾器。
這 6 種過濾器具有各自的匹配條件和permit 和 deny 匹配模式,因此這6 種過濾器在以下的特定情況中可以單獨使用,實現路由過濾。
1)ACL
ACL 是將報文中的入接口、源或目的地址、協議類型、源或目的端口號作為匹配條件的過濾器,在各路由協議發布、接收路由時單獨使用。在Route-Policy 的 If-match 子句中只支持基本 ACL。
2)地址前綴列表(IP Prefix List)
地址前綴列表將源地址、目的地址和下一跳的地址前綴作為匹配條件的過濾器,可在各路由協議發布和接收路由時單獨使用。
每個地址前綴列表可以包含多個索引(index),每個索引對應一個節點。路由按索引號從小到大依次檢查各個節點是否匹配,任意一個節點匹配成功,將不再檢查其他節點。若所有節點都匹配失敗,路由信息將被過濾。
根據匹配的前綴不同,前綴過濾列表可以進行精確匹配,也可以進行在一定掩碼長度范圍內匹配。
說明:
當 IP地址為0.0.0.0時表示通配地址,表示掩碼長度范圍內的所有路由都被Permit或Deny。
3)AS路徑過濾器(AS_PathFilter)
AS 路徑過濾器是將 BGP 中的 AS_Path 屬性作為匹配條件的過濾器,在BGP 發布、接收路由時單獨使用。
AS_Path 屬性記錄了 BGP 路由所經過的所有 AS 編號。
4)團體屬性過濾器(Community Filter)
團體屬性過濾器是將 BGP 中的團體屬性作為匹配條件的過濾器,在 BGP 發布、接收路由時單獨使用。
BGP 的團體屬性是用來標識一組具有共同性質的路由。
5)擴展團體屬性過濾器(Extcommunity Filter)
擴展團體屬性過濾器是將 BGP 中的擴展團體屬性作為匹配條件的過濾器,可在 VPN 配置中利用VPN Target 區分路由時單獨使用。
目前,擴展團體屬性過濾器僅應用于對 VPN 中的 VPN Target 屬性的匹配。VPN Target 屬性在BGP/MPLS IP VPN 網絡中控制 VPN 路由信息在各 Site 之間的發布和接收。
6)RD 屬性過濾器(Route Distinguisher Filter)
RD 團體屬性過濾器是將 VPN 中的 RD 屬性作為匹配條件的過濾器,可在VPN 配置中利用 RD 屬性區分路由時單獨使用。
VPN 實例通過路由標識符 RD 實現地址空間獨立,區分使用相同地址空間的前綴。
3、BGP to IGP功能
BGP to IGP 功能使 IGP 能夠識別 BGP 路由的 Community、 Extcommunity、 AS-Path 等私有屬性。
在 IGP引入 BGP 路由時,可以應用路由策略。只有當設備支持BGP to IGP 功能時,路由策略中才可以使用BGP 私有屬性作為匹配條件。
如果設備不支持 BGPto IGP 功能,那么 IGP 就不能夠識別BGP路由的。