路由策略概述
文章目錄
- 1.Route-Policy
- 2.Route-Policy的基本概念
- 3.基礎配置
- 3.1創建一個Route-Policy節點
- 3.2(可選)配置if-match語句
- 3.3(可選)配置apply語句
- 4.Filter-Policy
- 5.IP前綴列表
路由策略(Routing Policy)是一套用于對路由信息進行過濾、屬性設置等操作的方,法,通過對路由的控制,可以影響數據流量轉發操作。實際上路由策略并非單一的技術或者協議,而是一個技術專題或方法論,里面包含著多種工具及方法。
路由策略的應用是非常廣泛的,也是非常重要的,我們主要通過部署路由策略來實現如下幾種需求。
(1)網絡設備在發布路由更新,或者接收路由更新時執行路由過濾。
(2)網絡設備在執行路由重分發時,關聯路由策略,只將特定的路由引入目標路由協議。
(3)針對不同的路由設置不同的路由屬性(例如路由的度量值、路由的優先級或路由的標記等)。
1.Route-Policy
Route-Policy (路由-策略)是路由策略技術專題中的一個重要工具,它能在各種場合很好地完成路由策略的部署任務,而且功能非常強大,它既可以被用來執行路由過濾,又可以用于修改路由的屬性。
2.Route-Policy的基本概念
Route-Policy是一個非常重要的路由策略工具,如圖所示,您可以把它想象成擁有一個或多個節點(Node)的列表,每一個節點都可以是一系列條件語句及執行語句的集合,這些節點按照編號從小到大的順序排列。
在每個節點中,用戶可以定義條件語句及執行語句,這就有點像程序設計語言里的I-Then (如果-則)組合。
在Route-Policy被執行的時候,設備從編號最小的節點開始進行路由匹配,在本例中首先看節點1,設備對該節點中的條件語句進行匹配,如果被匹配的對象滿足所有條件,則執行該節點中的執行語句,并且不會再繼續往下一個節點進行匹配。
而如果節點1中,有任何一個條件不滿足,則前往下一個節點,也就是到節點2中去匹配條件語句,如果被匹配的對象滿足所有條件,則執行該節點中的執行語句,如果不滿足,則繼續往下一個節點進行匹配,以此類推。
3.基礎配置
3.1創建一個Route-Policy節點
route-policy route-policy-name { permit | deny } node node
Permit:指定該節點的匹配模式為允許。
如果路由匹配的結果是滿足該節點的所有if-match語句,則該路由被視為允許通過,該節點的apply語句將被執行,且不再進入下一個節點;如果該節點中有if-match語句不滿足,則進入下一個節點繼續匹配。
Deny:指定節點的匹配模式為拒絕。
如果節點的匹配模式為deny,則該節點的apply語句將不被執行。如果路由匹配的結果是滿足該節點的所有if-match語句,那么Route-Policy的匹配過程立即結束,不會再進入下一個節點,而且滿足該節點條件的路由被視為拒絕通過。如果該節點下有if-match語句不滿足,則進入下一個節點繼續匹配。
以命令route-policy hcnp permit node 10為例,如果設備上不存在Route-Policyhcnp,那么執行該命令后,設備將創建名稱為hcnp的Route-Policy,同時在該Route-Policy中創建一個節點,該節點的匹配模式為permit,且編號為10。
3.2(可選)配置if-match語句
在Route-Policy的節點視圖下,使用if-match命令可定義匹配條件,所匹配的對象是路由信息的一些屬性,例如路由的目的網絡地址或掩碼長度、度量值、標記或下一跳IP地址等。以下是一些常用的if-match命令。
匹配ACL:
if-match acl { acl-number | acl-name }
匹配IP前綴列表:
if-match ip-prefix ip-prefix-name
匹配路由的度量值:
if-match metric metric
匹配路由的出接口:
if-match interface interface-type interface-number
匹配路由的標記:
if-match tag tag
一個節點中可以包含多條if-match語句,這些if-match語句之間是“與”的關系,也就是說所有的if-match語句必須同時滿足,被匹配對象才被視為匹配該節點。
但是if-match route-type和if-match interface等除外,這些命令各自的if-match語句之間是“或”的關系。
3.3(可選)配置apply語句
在Route-Policy的節點視圖下,使用apply命令指定需執行的動作,這些動作主要,是對所匹配的路由的某些屬性進行修改,例如修改路由的度量值、優先級值、標記等。以下是一些常用的apply命令。
設置路由的度量值:
apply cost [+ | -] cost
設置路由的度量值類型:
設置IS-IS的度量值類型: apply cost-type { external | internal }
設置OSPF的度量值類型: apply cost-type { type-1 | type-2 }
設置路由的下一跳地址:
apply ip-address next-hop {ipv4-address | peer-address }
設置路由的優先級:
apply preference preference
設置路由的標記:
apply tag tag
一個節點中可以不包含任何apply語句,此時該節點只被用于執行路由過濾,而不"用于設置路由的屬性。
4.Filter-Policy
一款用于路由過濾的工具Filter-Policy (過濾-策略),可以將其視為一種路由過濾器。
需要強調的是, Filter-Policy只能夠對路由信息進行過濾,而無法對LSA進行過濾。Filter-Policy可以在RIP, OSPF,IS-IS以及BGP等常見的動態路由協議中應用。
5.IP前綴列表
從名字上看, IP前綴列表是一個列表形態的工具。它所匹配的對象是IP地址前綴,也就是路由條目。
一個路由條目由目的網絡地址(也被稱為IP前綴)及掩碼長度(也被稱為前綴長度)共同標識。
使用ACL從一批路由中篩選出感興趣的路由時,是無法指定被匹配對象的目的網絡掩碼長度的,但是IP前綴列表卻可以做到,它除了能夠指定被匹配對象的目的網絡地址,還能指定目的網絡掩碼長度,從而實現對路由的精確匹配。
圖展示了一個簡單的IP前綴列表的示例。IP前綴列表可以包含一條或多條語句,每條語句都使用一個十進制的序號(Index)進行標識。
在本例中,這個名稱為abcd的IP前綴列表中只有一條語句,這條語句的序號為10,正如前面所說,可以為一個IP前綴列表創建多條語句,每條語句使用不同的序號,所有的語句按照序號從小到大依序排列,這與ACL非常類似。
在本例中,這條IP前綴列表的語句中指定了IP地址(172.16.0.0)以及掩碼長度(16),如此一來,該語句就精確地匹配了路由172.16.0.0/16, IP前綴列表除了能夠精確匹配一條路由,還能夠匹配一組有規律的路由。
圖展示了IP前綴列表的另一個示例,該示例中增加了greater-equal (大于或等于)及less-equal (小于或等于)這兩個關鍵字及參數,從而指定了掩碼長度的范圍。
這條命令要求路由的目的網絡地址的前16個比特位與172.16.0.0的前16個比特位相同。另外路由的目的網絡掩碼長度需大于或等于24,同時小于或等于32,只有滿足上述條件的路由才會被該語句匹配。
如果一條語句中只是指定了greater-equal關鍵字(且沒有指定less-equal關鍵字),則掩碼長度的范圍是大于或等于greater-equal關鍵字所指定的值,同時小于或等于32.而如果只是指定了less-equal關鍵字(且沒有指定greater-equal關鍵字),則掩碼長度的范圍是大于或等于命令中指定的掩碼長度,同時小于或等于less-equal關鍵字指定的值。
總結
- 上一篇: 无穷小微积分与Moodle系统
- 下一篇: 用Python爬虫抓取免费代理IP