一、路由策略
1.1 路由策略的概念
路由策略是通過修改路由表的路由條目來控制數據流量的可達性。即對接受和發布的路由進過濾。這種方式稱為路由策略
路由策略功能 | 相關作用 |
控制路由的發布 | 可通過路由策略對所要發布的路由信息進行過濾,只允許發布滿足條件的路由信息。 |
控制路由的接收 | 可通過路由策略對所要接收的路由信息進行過濾,只允許接收滿足條件的路由信息。這樣可以控制路由條目的數量,提高網絡的路由效率。 |
控制路由的引入 | 可通過路由策略只引入滿足條件的路由信息,并控制所引入的路由信息的某些屬性,使其滿足本路由協議的路由屬性要求。 |
設罟路由的屬性 | 修改通過路由策略過濾的路由的屬性,滿足自身需要 |
對于路由策略的實現中,首先要進行路由信息特征的提取,可以使用過濾去進行數據的過濾,當然過濾的屬性可以是各種屬性,例如源目地址等等,然后根據這些屬性進行數據的分流后,應用于路由的發布、接受、引入。
1.2 路由信息特征提取工具
1.2.1 訪問控制列表
訪問控制列表(ACL)由permit或deny語句組成的一系列有順序規則的集合,它通過匹配報文的信息實現對報文的分類。
ACL的分類
ACL類別 | 規則定義描述 | 編號范圍 |
基本ACL | 僅使用報文的源IP地址、分片標記和時間段信息來定義規則。 | 2000~2999 |
高級ACL | 既可使用報文的源IP地址,也可使用目的地址、IP優先級、ToS、DSCP、IP協議類型、ICMP類型、TCP源端口/目的端口、UDP源端口/目的端口號等來定義規則 | 3000~3999 |
二層ACL | 可根據報文的以太網幀頭信息來定義規則,如根據源MAC地址、目的MAC地址、以太幀協議類型等。 | 4000~4999 |
用戶自定義ACL | 可根據報文偏移位置和偏移量來定義規則。 | 5000~5999 |
用戶ACL | 既可使用IPv4報文的源IP地址或源UCL(User Control List)組,也可使用目的地址或目的UCL組、IP協議類型、ICMP類型、TCP源端口/目的端口、UDP源端口/目的端口號等來定義規則。 | 6000~9999 |
一個ACL可以由多條“deny | permit”語句組成,每一條語句描述了一條規則。設備收到數據流量后,會逐條匹配ACL規則,看其是否匹配。如果不匹配,則繼續匹配下一條。
一旦找到一條匹配的規則,就會執行規則中定義的動作,且不再繼續與后續規則進行匹配;如果找不到匹配的規則,則設備會對報文直接進行轉發。
ACL的匹配機制
需要注意的是,ACL中定義的這些規則可能存在重復或矛盾的地方。規則的匹配順序決定了規則的優先級,ACL通過設置規則的優先級來處理規則之間重復或矛盾的情形
1.2.2 地址前綴列表
IP前綴列表(IP-Prefix List)是將路由條目的網絡地址、掩碼長度作為匹配條件的過濾器,可在各路由協議發布和接收路由時使用。
不同于ACL,IP-Prefix List能夠同時匹配IP地址前綴長度以及掩碼長度,增強了匹配的精確度。
1、ip-prefix-name:地址前綴列表名稱
2、序號:本匹配項在地址前綴列表中的序號,匹配時根據序號從小到大進行順序匹配
3、動作:permit/deny,地址前綴列表的匹配模式為允許/拒絕,表示匹配/不匹配
4、IP網段與掩碼:匹配路由的網絡地址,以及限定網絡地址的前多少位需嚴格匹配
5、掩碼范圍:匹配路由前綴長度,掩碼長度的匹配范圍 mask-length<=greater-equal-value<=less-equal-value<=32
前綴列表的組成及匹配規則:
前綴過濾列表由IP地址和掩碼組成,IP地址可以是網段地址或者主機地址,掩碼長度的配置范圍為0~32。
IP-Prefix List中的每一條IP-Prefix都有一個序列號index,匹配的時候將根據序列號從小到大進行匹配。
如果不配置IP-Prefix的index,那么對應的index在上次配置的同名IP-Prefix的index的基礎上,以步長為10進行增長。如果配置的IP-Prefix的名字與index都和已經配置了的一項IP-Prefix List的相同,僅僅只是匹配的內容不同,則該IP-Prefix List將覆蓋原有的IP-Prefix List。
當所有前綴過濾列表均未匹配時,缺省情況下,存在最后一條默認匹配模式為deny。當引用的前綴過濾列表不存在時,則默認匹配模式為permit。
前綴掩碼長度范圍:
前綴過濾列表可以進行精確匹配或者在一定掩碼長度范圍內匹配,并通過配置關鍵字greater-equal和less-equal來指定待匹配的前綴掩碼長度范圍。如果沒有配置關鍵字greater-equal或less-equal,前綴過濾列表會進行精確匹配,即只匹配掩碼長度為與前綴過濾列表掩碼長度相同的IP地址路由;
如果只配置了關鍵字greater-equal,則待匹配的掩碼長度范圍為從greater-equal指定值到32位的長度;如果只匹配了關鍵字less-equal,則待匹配的掩碼長度范圍為從指定的掩碼到關鍵字less-equal的指定值。
IP-Prefix的匹配機制
1.2.2.1??IP-Prefix的基礎配置命令
1.創建IPv4地址前綴列表
[Huawei] ip ip-prefix?ip-prefix-name?[?index?index-number?] {?permit?|?deny?}?
ipv4-address?mask-length?[?match-network?]?[?greater-equal?greater-equal-value?]
[?less-equal?less-equal-value?]
ip-prefix-name:指定地址前綴列表的名稱。(指定地址前綴列表的名稱。字符串形式,長度范圍是1~169,不支持空格,區分大小寫。)
index index-number:指定本匹配項在地址前綴列表中的序號。(指定本匹配項在地址前綴列表中的序號。整數形式,取值范圍是1~4294967295。缺省情況下,該序號值按照配置先后順序依次遞增,每次加10,第一個序號值為10。)
permit:指定地址前綴列表的匹配模式為允許。
deny:指定地址前綴列表的匹配模式為拒絕。
ipv4-address mask-length:指定IP地址和指定掩碼長度。
greater-equal greater-equal-value:指定掩碼長度匹配范圍的下限。
less-equal less-equal-value:指定掩碼長度匹配范圍的上限。
1.3 路由策略工具
1.3.1??Route-Policy
Route-Policy是一種功能非常強大的路由策略工具,它可以靈活地與ACL、IP-Prefix List、As-Path-Filter等其它工具配合使用,Route-Policy的每個node都有相應的permit模式或deny模式。
一個Route-Policy由一個或多個節點(Node)構成,每個節點都可以是一系列條件語句(匹配條件)以及執行語句(執行動作)的集合,這些集合按照編號從小到大的順序排列。
1.3.1.1 Route-Policy的組成
一個Route-Policy由一個或多個節點構成,每個節點包括多個if-match和apply子句。
permit或deny:指定Route-Policy節點的匹配模式為允許或拒絕。
node:指定Route-Policy的節點號。整數形式,取值范圍是0~65535。
if-match子句:定義該節點的匹配條件。
apply子句:定義針對被匹配路由執行的操作。
注:如果是permit模式,則當路由項滿足該node的所有if-match子句時,就被允許通過該node的過濾并執行該node的apply子句,且不再進入下一個node;如果路由項沒有滿足該node的所有if-match子句,則會進入下一個node繼續進行過濾。如果是deny模式,則當路由項滿足該node的所有if-match子句時,就被拒絕通過該node的過濾,這時apply子句不會被執行,并且不進入下一個node;否則就進入下一個node繼續進行過濾。
1.3.1.2?Route-Policy的匹配順序
路由策略使用不同的匹配條件和匹配模式選擇路由和改變路由屬性。
1.3.1.3?Route-Policy的基礎配置
1.創建Route-Policy
[Huawei] route-policy?route-policy-name?{?permit?|?deny?}?node?node
創建路由策略并進入Route-Policy視圖。
2.(可選)配置if-match子句
[Huawei-route-policy] if-match ?acl 匹配基本ACLcost 匹配路由信息的costinterface 匹配路由信息的出接口ip-prefix 匹配前綴列表……
3.(可選)配置apply子句
[Huawei-route-policy] apply ?cost 設置路由的costcost-type {type-1 | type-2} 設置OSPF的開銷類型ip-address next-hop 設置IPv4路由信息的下一跳地址preference 設置路由協議的優先級tag 設置路由信息的標記域……
1.3.2?Filter-Policy
Filter-Policy能夠對接收或發布的路由進行過濾,可應用于ISIS、OSPF、BGP等協議。應用各協議中的Filter-Policy工具可通過引用ACL或地址前綴列表,對接收、發布和引入的路由進行過濾。
如圖所示,R1、R2、R3之間運行BGP路由協議,路由在各個設備之間傳遞,當需要根據實際需求過濾某些路由信息的時候可以使用Filter-Policy實現。
?1.3.2.1 Filter-Policy在距離矢量路由協議中的應用
對于距離矢量協議和鏈路狀態協議,Filter-Policy工具的操作過程是不同的:
距離矢量協議是基于路由表生成路由的,因此過濾器會影響從鄰居接收的路由和向鄰居發布的路由。
在距離矢量路由協議中,設備之間傳遞的是路由信息,如果需要對這種路由信息進行某種過濾,可以使用Filter-Policy實現,出方向和入方向的生效位置如圖所示。
1.3.2.2 Filter-Policy在鏈路狀態路由協議中的應用
鏈路狀態路由協議是基于鏈路狀態數據庫來生成路由的,且路由信息隱藏在鏈路狀態LSA中,但Filter-Policy不能對發布和接收的LSA進行過濾,故Filter-Policy不影響鏈路狀態通告或鏈路狀態數據庫的完整性以及協議路由表,而只會影響本地路由表,且只有通過過濾的路由才被添加到路由表中,沒有通過過濾的路由不會被添加進路由表。
?在鏈路狀態路由協議中,各路由設備之間傳遞的是LSA信息,然后設備根據LSA匯總成的LSDB信息計算出路由表。但是Filter-Policy只能過濾路由信息,無法過濾LSA。
不同協議應用filter-policy export命令對待發布路由的影響范圍不同:
對于距離矢量協議,會對引入的路由信息、本協議發現的路由信息進行過濾。
對于鏈路狀態協議,只對引入的路由信息進行過濾。
1.3.2.3?Filter-Policy的基礎配置
1.在OSPF中的應用
[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name [ secondary ] } import
按照過濾策略,設置OSPF對接收的路由進行過濾。
[Huawei-ospf-100] filter-policy?{?acl-number?|?acl-name?acl-name?|?ip-prefix?ip-prefix-name?|?route-policy?route-policy-name?}?export?[?protocol?[?process-id?] ]
按照過濾策略,設置對引入的路由在向外發布時進行過濾。
2.在IS-IS中的應用
[Huawei-isis-1] filter-policy?{?acl-number?|?acl-name?acl-name?|?ip-prefix?ip-prefix-name?|?route-policy?route-policy-name?}?import
配置IS-IS路由加入IP路由表時的過濾策略。
[Huawei-isis-1] filter-policy?{?acl-number?|?acl-name?acl-name?|?ip-prefix?ip-prefix-name?|?route-policy?route-policy-name?}?export?[?protocol?[?process-id?] ]
配置IS-IS對已引入的路由在向外發布時進行過濾的過濾策略。
3.在BGP中的應用
[Huawei-bgp-af-ipv4] filter-policy?{?acl-number?|?acl-name?acl-name?|?ip-prefix?ip-prefix-name?}?import
配置對接收的路由信息進行過濾。
[Huawei-bgp-af-ipv4] filter-policy?{?acl-number?|?acl-name?acl-name?|?ip-prefix?ip-prefix-name?}?export?[?protocol?[?process-id?] ]
配置對發布的路由進行過濾,只有通過過濾的路由才被BGP發布。
[Huawei-bgp-af-ipv4] peer?{?group-name?|?ipv4-address?}?filter-policy?{?acl-number?|?acl-name?acl-name?} {?import?|?export?}
配置向對等體(組)發布或從對等體(組)接收路由時的過濾策略。
二、策略路由
2.1 策略路由的概念
策略路由是一種基于策略的路由選擇方法,通過根據特定的策略或條件來決定數據包的轉發路徑。與傳統的基于目的地地址的路由選擇不同,策略路由可以根據源IP地址、目的IP地址、服務類型等多個因素進行靈活的決策。其目標是根據網絡管理員定義的策略,實現網絡流量的優化和管理。
2.2 策略路由的工作原理
-
策略定義:管理員定義一組策略,這些策略可以基于多個因素,如源IP地址、目的IP地址、服務類型等。
-
條件匹配:當數據包到達路由器時,它會被與策略中定義的條件進行匹配。如果數據包符合某個策略的條件,那么該策略將被觸發。
-
路徑選擇:策略觸發后,根據策略中定義的規則和動作,路由器會選擇最佳的路徑來轉發數據包。這可以是固定的下一跳路徑,也可以是負載均衡的多個路徑之一。
-
轉發處理:根據選擇的路徑,路由器將數據包轉發到目標地址。
策略路由的選路參數:源目IP址、協議字段,甚至于TCP、UDP的源目的端口等多種組合進行選路,較為靈活。
策略路由進行數據包的轉發時,不是簡單根據目的IP地址而定,而是綜合考慮多種因素,例如源目端口號、IP地址等參數進行流量工程制定,能夠滿足不同業務走不同鏈路的需求,基于流量進行分配。
2.3 策略路由優勢
①不同的用戶可以分配不同的鏈路(例如存在多個ISP)
②設置IPP或者TOS字段來實現QoS
③實現負載均衡
2.4 策略路由的處理流程
①流模式
第一個包查路由轉發表,如果存在路由,將該路由項以source、dest、tos、入接口等索引放置到cache中,以后同樣的流就可以直接查cache
對于低端路由器,所有操作由CPU+內存處理
對于中高端設備,一般由NP 和Asic芯片完成處理
②逐包模式
每個包都進行查表后才進行轉發
2.5 策略路由PBR
本地策略路由:對本設備發送的報文實現策略路由,比如本機下發的ICMP、BGP等協議報文。
當用戶需要實現不同源地址的報文或者不同長度的報文通過不同的方式進行發送時,可以配置本地策略路由。
常用Policy-Based-Route工具來實現。
接口策略路由:對本設備轉發的報文生效,對本機下發的報文不生效。
當用戶需要將收到的某些報文通過特定的下一跳地址進行轉發時,需要配置接口策略路由。使匹配重定向規則的報文通過特定的下一跳出口進行轉發,不匹配重定向規則的報文則根據路由表直接轉發。接口策略路由多應用于負載分擔和安全監控。
常用Traffic-Policy工具來實現。
智能策略路由:基于鏈路質量信息為業務數據流選擇最佳鏈路。
當用戶需要為不同業務選擇不同質量的鏈路時,可以配置智能策略路由。
2.6?路由策略以及策略路由區別
路由策略 | 策略路由 |
基于控制平面,會影響路由表表項。 | 基于轉發平面,不會影響路由表表項且設備收到報文后,會先查找策略路由進行匹配轉發,若匹配失敗,則再查找路由表進行轉發。 |
只能基于目的地址進行策略制定。 | 可基于源地址、目的地址、協議類型報文大小等進行策略制定。 |
與路由協議結合使用。 | 需手工逐跳配置,以保證報文按策略進行轉發。 |
常用工具:Route-PolicyFilter-Policy等。 | 常用工具:Traffic-Filter、Traffic-Policy, Policy-Based-Route |