?

基于多自治系統的路由過濾仿真設計*

2022-04-22 10:41孫光懿
關鍵詞:路由表回環列表

孫光懿,繳 健

(1.天津音樂學院網絡安全和信息化辦公室,天津 300171;2.天津市教育委員會教育綜合服務中心,天津 300191)

0 引 言

現實中的網絡通常是由多自治系統構建而成,而在自治系統內部往往運行著多種動態路由協議.眾所周知,動態路由協議,如:RIP、IGRP、OSPF和ISIS等,在運行時均會以各自的方式產生路由更新.例如:RIP的路由更新是以周期性的方式產生的,而OSPF的路由更新不僅可以以周期性的方式產生,而且還可以以觸發的方式產生.需要讀者明確的是,路由更新對路由器能否做出合理的路由決策起決定作用,且其傳遞只在成功建立鄰接關系的路由器之間進行.雖然路由更新對路由決策至關重要,但管理者如不對其進行合理控制和調整,勢必會對網絡的整體性能造成影響.原因如下:其一,大量的路由更新會搶占路由器CPU資源和用戶數據帶寬;其二,在雙向路由重分發的網絡中,路由更新有可能造成路由反饋或路由環路現象的出現;其三,出于安全性的考慮需要禁止對特定的路由更新進行通告.因此,網絡管理者在構建網絡的過程中,有必要使用相關技術對動態路由協議產生的路由更新進行過濾.

1 路由更新控制關鍵技術

1.1 被動接口

被動接口技術的設計初衷,就是為了有效防止網絡中的其他路由器動態學習到本路由器的路由更新[1].無論路由器運行的是哪類動態路由協議,一旦某個接口被設置為被動接口,那么該接口將不會對外發送任何路由更新.特殊情況下,如果有個別路由器需要從該接口接收路由更新,那么可通過手動指定鄰居路由器來實現.設置后,該接口只會將路由更新發送給所指定的鄰居路由器.需要注意的是:不同種類的動態路由協議,被動接口技術的工作方式也不近相同,例如在RIP路由協議中設置被動接口后,雖然該接口不能以廣播或組播的方式對外發送任何路由更新,但該接口還可從鄰接路由器接收路由更新,而在OSPF路由協議中設置被動接口后,該接口將不會發送和接收任何路由更新;與上述2類路由協議不同的是,在EIGRP路由協議中設置被動接口后,該接口不僅不會發送和接收任何路由更新,而且還不會發送用于建立EIGRP鄰接關系的Hello數據包.

1.2 分發列表

分發列表是一種通過引用訪問控制列表(ACL),來對路由更新進行控制的技術[2].之所以要引用ACL,主要是因為ACL擁有既可對用戶數據流進行精準控制,又不會對出站的路由通告產生任何影響的特性.該技術的誕生使管理者對路由更新的控制有了極大的靈活性.不僅可過濾相同路由域中的鄰接路由器發出的路由更新,而且還可過濾重分發自其他動態路由協議的路由更新.通常情況下,分發列表技術基于3種方式在路由協議進程中進行部署:(1)在入站接口進行部署,主要用于過濾從路由器某指定接口進入的路由更新;(2)在出站接口進行部署,主要用于過濾從路由器某指定接口發出的路由更新或指定路由協議的路由更新;(3)在路由重分發中進行配置,主要用于過濾重分發自其他動態路由協議的路由更新.此外,由于分發列表不能過濾鏈路狀態廣播(LSA),因此該技術更適合部署在距離矢量路由協議中,無論部署在入接口方向還是在出接口方向均能正常過濾路由更新.如果將其部署在OSPF鏈路狀態路由協議中,那么就會存在以下問題:其一,部署在入接口方向,只可過濾執行分發列表的OSPF路由器本地路由表.其二,部署在出接口方向,只可過濾重分發到OSPF路由域內的外部路由,而無法過濾OSPF區域內路由和區域間路由.

1.3 路由映射表

路由映射表功能強大,不僅可用于過濾重分發而來的外部路由更新,而且還可應用于策略路由、網絡地址轉換以及控制BGP協議路徑屬性.路由映射表由一組名稱相同的route-map語句所構成,每條語句均存在一個編號(編號默認為10,且不會自動遞增),因此管理者可對其進行編輯[3-5].與訪問控制列表相類似,路由映射表也是按照從小到大的編號順序來處理每條語句.通常建立路由映射表需要如下步驟:首先,在全局配置模式下使用routemap命令定義路由映射表.其次,使用match命令定義要檢查的條件(可根據標準訪問控制列表、擴展訪問控制列表、前綴列表、數據包的長度、路由類型、路由度量值和路由標記等來設定檢查條件).如果出現route-map語句不包含match命令的情況,那么路由器就會認為該route-map語句與所有數據包相匹配.在這里需要明確的是:單條match語句可以同時設置多個檢查條件,但只要匹配其中一個檢查條件,路由器就會認為與該match語句相匹配.再次,使用set命令定義當與措施為permit的條件相匹配時,路由器應采取的動作(可使用set命令控制路由度量值、設置數據包出接口及下一跳、設置目標路由協議的度量類型等).最后,應用路由映射表.

1.4 前綴列表

與訪問控制列表相比,前綴列表通常具有以下不可替代的優勢:首先,可使網絡管理者更為靈活的過濾路由更新.前綴列表不僅可以明確指定子網掩碼的大小,而且還可以對子網掩碼的范圍做出限定.其次,可有效提升路由器過濾路由更新的處理速度.這是因為路由器在處理前綴列表時,會將其轉換為樹形結構并進行測試,從而使路由器IOS能夠快速決定是允許還是拒絕.再次,網絡管理者可對前綴列表的條目進行添加或刪除操作.最后,可將前綴列表部署在BGP協議中.

2 仿真實驗

在思科GNS3虛擬仿真環境下,構建了一個擁有8臺思科3725路由器(IOS鏡像文件為c3725-ad‐venterprisek9-mz.123-4.t4.bin)的大型網絡,該網絡由AS 64530及AS 64532共2個自治系統所組成.網絡設備間連接及相關接口情況如圖1所示.AS 64532自治系統不僅包含有OSPF路由域(由路由器R1、R4、R5所組成,路由器R1為該路由域的邊界路由器),而且包含有RIP路由域(由路由器R1、R2、R3、R8所組成,路由器R1為該路由域的邊界路由器).而AS 64530自治系統只包含一個EIGRP路由域(由路由器R6、R7通過雙鏈路互聯所組成.在這里把R6 E1/2接口至R7 E1/2接口之間的鏈路,簡稱為M1鏈路;把R6 S2/0接口至R7 S2/1接口之間的鏈路,簡稱為M2鏈路).本次仿真實驗首先研究被動接口、分發列表、路由映射表、前綴列表等技術在RIP路由域中、OSPF路由域中、EIGRP路由域中以及路由重分發過程中進行路由過濾的實現機制和過程.研究使用BGP協議實現自治系統間互聯的實現機制和過程.擬計劃實現如下目標:

圖1 網絡拓撲結構

(1)在OSPF路由域內,允許路由器R1學習到去往目標地址“路由器R5回環接口1(175.13.1.1/24)及回環接口 2(175.13.2.1/24)”的路由條目,禁止路由器R4學習到去往目標地址“路由器R5回環接口 2(175.13.2.1/24)”的路由條目.

(2)在RIP路由域內,不僅需要禁止路由器R1、R2、R3學習到去往目標地址“路由器R8回環接口1(192.168.80.10/24)”的路由條目,而且還需要禁止路由器R1、R2學習到去往目標地址“路由器R3回環接口3(192.168.70.9/24)”的路由條目.只允許路由器R8學習到該路由域內的全部路由條目.

(3)在AS 64532自治系統內,不僅允許OSPF路由域中的全部路由條目在RIP路由域中進行傳播,而且還允許RIP路由域中的4條路由條目(196.10.10.0/24、 196.10.11.0/24、 196.10.12.0/24、192.168.50.0/24)在OSPF路由域中進行傳播.

(4)在EIGRP路由域內,實現路由器R6、R7之間鏈路分流.當路由器R7訪問路由器R6回環接口1時,或當路由器R6訪問路由器R7回環接口1時,數據包走M1鏈路.當路由器R7訪問路由器R6回環接口2時,或當路由器R6訪問路由器R7回環接口2時,數據包走M2鏈路.

(5)實現AS 64530自治系統內的終端計算機C3,能夠正常訪問AS 64532自治系統內路由器R5回環接口1.

2.1 在OSPF路由域內部署分發列表過濾路由

為保證OSPF域內路由器R4無法學習到去往目標地址“路由器R5回環接口2”的路由條目,同時也為了保證路由器R1能夠學習到去往目標地址“路由器R5回環接口1與回環接口2”的路由條目.因此,有必要在路由器R4入站接口部署分發列表.之所以這樣做是因為:在入站接口部署分發列表,只會對路由器R4的本地路由表起過濾作用,而被過濾網段的相關LSA會繼續泛洪給路由器R1(OSPF路由器之間傳遞的消息為LSA,分發列表無法對其進行過濾)[6].因此,路由器R1仍可學習到被路由器R4過濾掉的路由條目.路由器R4的相關配置命令為

路由器R4配置完成后,分別查看路由器R1、R4的路由表,如圖2和3所示.在路由器R4入站接口部署分發列表后,路由器R4的路由表中并不存在去往目標地址“路由器R5回環接口2”的路由條目.而路由器R1的路由表中不僅存在去往目標地址“路由器R5回環接口1”的路由條目,而且還存在去往目標地址“路由器R5回環接口2”的路由條目(上述2條路由條目的路由標識符、度量值以及下一跳地址均相同).這足以充分說明:在OSPF路由域內部署的分發列表,實現了既定目標(1).

圖2 路由器R1路由表

圖3 路由器R4路由表

2.2 在RIP路由域內過濾路由

2.2.1 在路由器R8中部署被動接口過濾路由

為保證RIP域內路由器R1、R2、R3無法學習到去往目標地址“路由器R8回環接口1(192.168.80.10/24)”的路由條目,同時也為保證路由器R8能夠學習到該路由域內的全部路由條目.因此,有必要將路由器R8的e1/2接口設置為被動接口.這樣以來不僅可以確保路由器R8不會以組播或廣播的方式(組播方式最節省網絡流量)向鄰居路由器R3發送任何RIP路由更新,而且還可以確保其繼續接收鄰居路由器R3發來的RIP路由更新.需要注意的是:即使為RIP路由器設置了被動接口,網絡管理者還可通過單播的方式向其鄰居路由器發送RIP路由更新.路由器R8的相關配置命令為

為使讀者能更清楚地了解被動接口技術在RIP協議中的工作機制與工作過程.首先,使用命令查看路由器R8的路由表,如圖4所示.其次,使用Wireshark網絡分析軟件并以路由器R3的e1/2接口為源,對其進行抓包分析(圖5).其一,路由器R8已成功學習到了RIP路由域內的全部路由條目;其二,在路由器R3的e1/2接口捕獲的RIP數據包中,只有路由器R3用來傳送路由更新的RIP響應數據包(Response為“1”代表該數據包為RIP請求數據包,為“2”代表該數據包為RIP響應數據包),而從未收到來自路由器R8的任何RIP數據包;其三,路由器R3通過 e1/2接口,不斷的將以下5條RIP路由 更 新(192.168.50.0、192.168.55.0、192.168.70.0、196.10.10.0、196.10.11.0)發 送 給 RIPv2組播地址224.0.0.9(由于路由器R8的e1/2接口與路由器R3的e1/2接口互聯并已開啟RIP,因此會自動監聽并處理來自RIPv2組播地址224.0.0.9的報文).這足以充分說明:在將路由器R8的e1/2接口設置為被動接口后,不僅成功禁止了路由器R1、R2、R3學習到去往目標地址“路由器R8回環接口1(192.168.80.10/24)”的路由條目,而且還保證了路由器R8能夠學習到RIP路由域內的全部路由條目.

圖4 路由器R8的路由表

圖5 路由器R3的e1/2接口RIP數據包

2.2.2 在路由器R3中部署分發列表過濾路由

為保證RIP路由域內路由器R1、R2無法學習到去往目標地址“路由器R3回環接口3(192.168.70.9/24)”的路由條目,因此有必要在路由器R3出站接口或路由器R2的入站接口部署分發列表.原因如下:RIP協議為距離矢量協議,RIP路由器之傳遞的是路由更新信息,而分發列表對路由更新具有絕對的控制權[7].如將其部署在入站接口,可對特定的路由更新進行過濾,從而使執行分發列表的本地路由器的路由表發生改變.如將其部署在出站接口,實際上本地路由器給下游路由器傳遞的內容是執行分發列表后的路由更新條目.在這里選擇在路由器R3的出站接口部署分發列表,相關配置命令為

上述配置完成后,以路由器R1為例查看其路由表(圖6).路由器R1共學習到4條RIP路由條目(196.10.11.0/24、196.10.12.0、24、192.168.50.0/24、192.168.55.0/24),其路由表中并不存在去往目標地址“路由器R3回環接口3”的路由條目.這足以充分說明:在路由器R3、R8中采取的路由過濾措施,實現了既定目標(2).

圖6 路由器R1的路由表

2.3 在單點雙向路由重分發過程中過濾路由

在AS 64532自治系統內,為使OSPF及RIP路由域中的相關路由能夠在對方路由域中進行傳播,有必要在路由器R1(同為上述2個路由域的邊界路由器)中實施雙向路由重分發[8-9].這樣不僅可將OSPF路由通告到RIP路由域,而且還可將RIP路由通告到OSPF路由域.

由于RIP路由域中只有以下4條路由條目(196.10.10.0/24、 196.10.11.0/24、196.10.12.0/24、192.168.50.0/24)被允許在OSPF路由域中進行傳播.因此,還需在路由器R1中部署路由映射表,并將其分別應用于RIP路由到OSPF路由域、以及OSPF路由到RIP路由域的重分發過程中.路由器R1的相關配置命令為

上述配置完成后,以OSPF路由器R5及RIP路由器R8為例,分別查看其路由表,如圖7和8所示.路由器R5共學習到4條路由標識符為“O E2”的外部路由(重分發到OSPF時,默認度量值類型為2),以上4條路由既為重分發到OSPF路由域的RIP路由條目(196.10.10.0/24、196.10.11.0/24、196.10.12.0/24、192.168.50.0/24);路由器 R8共學習到 2條路由標識符為“R”,且度量值為“12”(重分發到RIP路由域時度量值為10,而后又經兩跳傳遞到路由器R8)的外部匯總路由(175.12.0.0/16、175.13.0.0/16),以上2條路由包含了重分布到RIP路由域中的全部OSPF路由條目.這足以充分說明在路由器R1中實施的雙向路由重分發及采取的路由過濾措施,實現了既定目標(3).

圖7 路由重分發后路由器R5的路由表

圖8 路由重分發后路由器R8的路由表

2.4 在EIGRP路由域內過濾路由

在EIGRP路由域內,通過在路由器R6、R7中部署前綴列表來實現二者之間鏈路分流.與使用訪問控制列表相類似,使用前綴列表進行過濾路由時,需先判斷路由前綴與前綴列表中的前綴是否匹配[10-12].如果前綴列表為空,那么將允許所有路由前綴通過.路由器R6的相關配置與路由器R7的配置類似.

路由器R6的相關配置為

從中不難發現:當路由器R7訪問路由器R6回環接口1時,數據包的下一跳地址為“193.168.11.1”,此時數據包走M1鏈路;而當路由器R7訪問路由器R6回環接口2時,數據包的下一跳地址則變為“193.168.10.1”,此時數據包走M2鏈路.這足以充分說明,通過在路由器R6、R7中部署前綴列表,實現了既定目標(4).

2.5 在路由器R5、R6、R7中部署BGP協議

路由器R5、R6分別為AS 64532和AS 64530的邊界路由器.因此,二者之間運行的BGP協議為EBGP[13].而對于路由器R7來說,由于與路由器R6同在AS 64530內,因此其運行的BGP協議為IBGP.需要讀者注意的是:其一,2臺EBGP鄰居路由器在交換BGP路由更新前,必須要先成功建立TCP會話.其二,EBGP鄰居路由器的IP地址必須是直連或通過靜態路由可達的[14-15].路由器R5、R7的配置與R6類似.

路由器R6的相關配置為

路由器R5、R6、R7配置完成后,首先,以路由器R6為例,使用命令sh ip bgp summary查看其BGP連接狀態情況(圖9)[16].路由器 R6分別與路由器 R5、R7成功建立了EBGP和IBGP鄰接關系.其次,以路由器R7為例,使用命令sh ip bgp summary查看其BGP拓撲數據庫.在路由器R7的BGP拓撲數據庫中,存在一條去往路由器R5回環接口1所在網絡“175.13.1.0/24”的路由(該路由已被BGP選為最佳路由,并提交給路由表).再次,使用Ping命令測試,終端計算機C3訪問路由器R回環接口1的連通性(圖10).AS 64530自治系統內的終端計算機C3,能夠正常訪問AS 64532自治系統內路由器R5回環接口1.這足以說明,通過在路由器R5、R6、R7中部署BGP協議,實現了既定目標(5).

圖9 查看路由器R6的BGP連接狀態

圖10 測試終端計算機C3訪問路由器R5回環接口1的連通性

3 結束語

現實中網絡管理者在構建網絡過程中,不僅要考慮網絡的可擴展性,而且還要充分考慮網絡的整體性能.多數情況下并不需要在網絡中通告所有的路由更新,只需通告特定的路由更新即可.因此,有必要部署相關路由過濾技術,在充分考慮網絡應用場景的情況下做好網絡優化工作.

猜你喜歡
路由表回環列表
《黃帝內經》回環英譯的選擇與順應
學習運用列表法
嘟嘟闖關記
擴列吧
基于OSPF特殊區域和LSA的教學設計與實踐
研究路由表的查找過程
透 月
列表畫樹狀圖各有所長
學習“騎撐前回環”動作的常見心理問題分析及對策
2011年《小說月刊》轉載列表
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合