?

多協議復雜場景網絡中潛在問題分析與仿真研究

2024-01-19 08:47周躍
關鍵詞:路由表網段環路

周躍

(1.安徽工業職業技術學院 信息工程系,安徽 銅陵 244000; 2.菲律賓萊康大學,馬洛洛斯 3000)

0 引言

集中管理的網絡通常會在規劃設計階段選擇一種性能較佳、易于擴展和運維便捷的路由協議,然而由于網絡合并、局部網絡升級改造等原因導致網絡擴展不可避免地出現一網多協議現象。由于不同的路由協議使用不同的路由算法,其協議報文格式、報文傳遞方式、最優路由計算算法等方面均采用不同的機制,此時就需要在不同路由協議間相互交換路由信息,實現路由協議間的相互學習,這個過程就是路由引入,也稱為路由重發布[1]。

多協議復雜場景的網絡中,同時運行多種路由協議或同一路由協議運行多進程的路由器稱為多協議邊界路由器[2](簡稱邊界路由器)。路由引入是在邊界路由器上、在一種路由協議中手動配置導入另一種路由協議產生的路由信息,實現路由協議間的相互學習。運行同一種路由協議工作的網絡區域可以稱為自治系統,為提高自治系統間的路由引入的可靠性,可以在自治系統間的多個邊界路由器上進行路由引入,避免單個路由器的故障導致自治系統間無法通信[3]。然而,多邊界路由器的引入必然是在冗余路徑組網的前提下,由于不同路由協議默認優先級的差異,可能會產生路由反饋、次優路由、路由環路的問題。通過在eNSP網絡仿真平臺[4]中構建雙邊界雙向路由引入的網絡場景,分析產生次優路由和路由環路現象的原因和造成的網絡通信影響,然后通過路由過濾、調整協議優先級和添加路由標記等方法實現路由控制,并驗證和對比各解決方案的可行性與優缺點。

1 網絡設計

1.1 雙邊界雙向路由引入網絡仿真環境

在X公司并購Y公司的背景下,X公司網絡運行的是IS-IS路由協議,Y公司運行的是OSPF路由協議,為確保并購后的信息資源共享,需要將兩個網絡進行合并。在網絡邏輯設計階段通過eNSP網絡仿真平臺構建合并后的網絡拓撲設計圖,如圖1所示,通過模擬仿真配置驗證合并網絡的技術可行性。

圖1 網絡拓撲圖

1)X公司網絡仿真配置。配置各設備IP地址、啟用中間系統到中間系統(Intermediate System-to-Intermediate System,IS-IS)路由協議,通過路由協議的學習達到X公司內部網絡全網互通。

2)Y公司網絡仿真配置。配置各設備IP地址、啟用開放的最短路徑優先(Open Shortest Path First,OSPF)路由協議,通過路由協議的學習達到X公司內部網絡全網互通。在AR4路由器上使用環回接口連接直連網段4.4.4.0/24,其模擬OSPF的外部網絡,未加入到OSPF協議的進程中。

3)AR1和AR3路由器作為連接X和Y公司網絡的邊界路由器,分別加入到OPSF和IS-IS路由協議中。

1.2 雙邊界雙向路由引入配置

兩個不同協議網絡之間的相互路由學習,在拓撲連接上必須在邊界路由器上分別連接到兩個網絡,為增強邊界路由器連接的可靠性,多邊界路由的部署可以避免發生單點故障帶來的通信中斷隱患。由圖1所示,AR1和AR3兩個邊界路由器分別執行兩個路由協議的相互引入,以AR1路由器的配置為例,配置命令:

[AR1]isis 1

[AR1-isis-1]import-route ospf 1

[AR1]ospf 1

[AR1-ospf-1]import-route isis 1

然后分別在AR1和AR3上使用dis ip routing-table 查看雙邊界雙向引入后的路由表,見表1~2。通過路由表的信息可以觀察到,AR2學習到了OSPF協議中的路由134.0.0.0/24,AR4學習到了IS-IS協議中的路由2.2.2.0/24與22.22.22.0/24,雙邊界路由器雙向路由引入成功。

表1 AR2路由器路由引入后的路由

表2 AR4路由器路由引入后的路由

1.3 最優路由判斷規則

路由表的每行稱為一個表項,記錄對應的目的網段及轉發路徑,表項包含目的網絡地址/掩碼、協議、優先級、開銷、下一跳地址等屬性[5]。當收到關于某個相同目的網絡的多個不同路由更新信息時,路由器會選擇最優的路徑,最優路徑的選擇通過依次比較目的網段是否存在、優先級和路徑開銷(cost)來確定,如圖2所示,選優的流程:

圖2 最優路由選擇流程

1)比較目的網段在路由表中是否存在,若不存在則直接添加到路由表中,若已存在則進入流程2)。

2)比較接收到的路由更新與路由表中已有的路由表項的協議優先級,若更高則更新路由表項,若更低則放棄更新,否則進入流程3)。

3)比較接收到的路由更新與路由表中已有的路由表項的路徑開銷(cost),若小于等于已有路由表項的,則更新路由表,否則放棄更新。

協議優先級是路由協議用于區分協議可信度的屬性,其為0~255的數值,數值越小代表可信度越高,優先級越高[5]。每種路由協議都有其缺省的優先級,在華為的網絡設備中,默認優先級見表3。

表3 缺省的路由協議優先級

2 雙邊界雙向路由引入網絡潛在問題分析

2.1 次優路由問題

路由表中存儲的是根據最優路由選擇規則優選后的最優路徑,由于不同的路由協議的優選參數不一致,所以路由協議自我選擇的最優路徑在復雜的網絡環境中有可能并非實際網絡結構中的最優,這種路由稱為次優路由[6]。

在圖1中,AR4路由器上環回接口所直連的網段用于模擬Y公司的外部路由,由于其并未加入到OSPF協議進程中,為保證其他的路由器都能學習到4.4.4.0/24的路由信息,需要在AR4路由器的OSPF協議中通過命令import-route direct進行路由引入,引入后的路由是OSPF ASE路由,其優先級為150,并通過OSPF協議報文分別通告到AR1和AR3。由于AR3路由器的IS-IS協議引入了OSPF的路由信息,則在AR3→AR2→AR1的路由更新方向中,AR1亦會收到IS-IS協議關于4.4.4.0/24的優先級為15的路由更新,此時AR1路由器對目的網段4.4.4.0/24的路由項進行最優路由選擇,根據優先級的比較規則,IS-IS路由優先級高于OSPF ASE優先級,所以優選下一跳為R2的IS-IS路由,此時整個路由轉發路徑是AR1→AR2→AR3→AR4→4.4.4.0/24,外部路由4.4.4.0/24的更新流程如圖3所示。在AR1中通過查看4.4.4.0/24的路由表可以發現,其下一跳地址為12.0.0.2,即AR2路由器,如圖4所示。由于AR1是可以直接通過AR4轉發到目的網段的,很明顯地產生了次優路由問題。

圖3 外部路由4.4.4.0/24更新流程

圖4 AR1關于4.4.4.0/24的路由表

通過分析路由更新的過程,可以發現次優路由產生的原因是AR3路由器中IS-IS協議從OSPF協議引入路由信息,又通過AR2→AR1路徑從IS-IS協議發布回到OSPF協議中,這種現象是雙向路由引入網絡中的路由反饋問題[7]。

2.2 路由環路問題

路由環路是指由于路由表項的錯誤導致信息在轉發過程中,數據包會沿著一個環形的轉發路徑在多個路由器間循環轉發的現象,產生路由環路的原因包括靜態路由配置錯誤、路由協議自身缺陷、路由引入錯誤和路由協議收斂錯誤等[8]。在圖1中,當4.4.4.0/24網絡產生故障或被移除時,由于雙邊界路由引入就會產生路由環路,產生環路的過程如圖5所示。

圖5 路由環路產生的過程

整個網絡的路由收斂過程:

1)AR4路由器通過直連接口發現網絡故障,OSPF協議的鏈路狀態數據庫(Link State DataBase,LSDB)刪除關于此網絡信息的鏈路狀態通告(Link-State Advertisement,LSA),在路由表中移除4.4.4.0/24表項。

2)通過OSPF更新路由信息,AR1和AR3在路由表中移除4.4.4.0/24表項。

3)由于AR1的IS-IS協議的LSDB中依然存在關于4.4.4.0/24的外部路由信息,AR1的OSPF協議通過路由引入IS-IS的4.4.4.0/24路由信息,并更新到OSPF的路由表中,其下一跳地址為AR2。

4)OSPF再次更新路由信息時,AR4學習到達的4.4.4.0/24的下一跳為AR1,AR3學習到達的4.4.4.0/24的下一跳為AR1。

通過分析前面的路由更新過程,并分別在AR1~AR4 4個路由器中查看路由表,可以發現最終關于4.4.4.0/24的路由轉發路徑是AR1→AR2→AR3→AR1,形成路由環路。產生路由環路問題的原因是雙向引入帶來的路由反饋導致IS-IS將從OSPF引入的關于4.4.4.0/24的路由又重新發布到OSPF協議中,從而造成無效路由的錯誤學習。再通過在AR1上使用tracert 4.4.4.4跟蹤路由[8],如圖6所示,可以發現對于目的網絡4.4.4.0/24的轉發路徑分別是12.0.0.2、23.0.0.03、134.0.0.1、12.0.0.2、……,驗證了路由環路的實際產生過程。

圖6 tracert驗證路由環路

3 解決方案分析與仿真驗證

3.1 方案1 路由過濾

路由過濾是控制路由更新的一種方法,通過與訪問控制列表(Access Control List,ACL)、IP前綴列表結合使用對路由的發布和接收進行控制,也可以在路由引入時通過過濾策略來防止路由反饋和次優路由等[9]。在AR1和AR3路由器上分別配置ACL識別OSPF協議中的網絡4.4.4.0/24,在IS-IS協議中使用filter-policy工具[10]的入方向策略將此網絡的路由進行過濾,避免了通過IS-IS協議從AR2路由器的IS-IS協議中學習此路由,以AR1為例配置命令:

[AR1]acl 2000

[AR1-acl-basic-2000]rule deny source 4.4.4.0 0.0.0.255

[AR1-acl-basic-2000]rule permit

[AR1-isis-1]filter-policy 2000 import

應用過濾策略后,查看AR1和AR3的路由表可以發現關于4.4.4.0/24網絡的路由表項均是通過OSPF協議學習到優先級為150、下一跳為AR2路由器,消除了次優路由現象。在AR4路由器上刪除loopback 4接口,模擬4.4.4.0/24網絡失效后,分別查看各個路由器的路由表可以發現所有路由器均正確地移除了此目的網段的路由條目,沒有產生路由環路現象。但是,由于是在邊界路由器的IS-IS協議中直接過濾掉4.4.4.0/24路由,當AR3連接AR4的鏈路出現故障時,AR3的IS-IS協議中由于過濾策略不能產生4.4.4.0/24的IS-IS協議路由表項,從而導致AR3路由器缺少冗余路徑,失去了多路徑轉發的可靠性保障。

3.2 方案2 直接調整路由協議優先級

路由優先級也稱為管理距離,用于區分不同路由協議可信度的屬性,其范圍為0~255的整數數值,數值越小代表其優先級越高,可信度越高,不同的路由協議都有其初始的默認優先級,在實際的網絡配置中也可以根據需要手工修改路由器中的協議優先級。在圖1中,由于目的網段4.4.4.0/24的優先級在路由引入時,協議采用其默認優先級,從AR4的直連路由優先級0,到引入OSPF協議中的優先級150,再到引入IS-IS協議中的優先級15,從而導致了AR1路由器優選優先級15的路由更新出現次優路由問題。避免這種問題產生的直接方法是可以在AR1和AR3的邊界路由器上將IS-IS協議的優先級手工修改為數值>150的值,低于OSPF ASE的優先級,這樣就避免了邊界路由器再通過IS-IS學習原本OSPF的路由信息,以AR1路由器為例,配置命令:

[AR1]isis 1

[AR1-isis-1]preference 160

修改IS-IS協議優先級為160后,路由器通過優先級對比會優選OSPF的路由信息加入路由表,通過查看AR1和AR3路由器的路由表可以發現其效果和方案1相同,消除了次優路由問題。此時,在AR4路由器上模擬4.4.4.0/24網段失效,通過查看AR1~AR3的路由表可以發現,均出現了優先級為160的IS-IS路由條目,形成了AR1→AR2→AR3→AR1的路由環路。在邊界路由器的OSPF協議中由于網段失效后會在LSDB中刪除此網段的LSA信息,但是IS-IS協議的LSDB中依然存在4.4.4.0/24的網段信息,并通過路由引入發布到OSPF協議中,再通過IS-IS相互更新,最終形成了路由環路。

直接調整IS-IS協議的優先級雖然解決了OSPF的外部路由在雙向路由引入中帶來的次優路由問題,但是其影響了全局上所有路由的優先級,包括IS-IS內部網絡的路由。在AR1上查看路由表發現到達IS-IS協議域中的路由是OSPF ASE類型、下一跳為AR3、優先級為150,2.2.2.0/24網段的路由,轉發路徑為AR1→AR3→AR2→2.2.2.0/24,相比于AR1→AR2→2.2.2.0/24路徑并非實際網絡的最優路徑,如圖7所示。通過仿真試驗可以發現方案2在解決部分路由環路的同時,也使IS-IS協議網絡中的路由出現了新的次優路由問題。

圖7 直接修改IS-IS優先級后AR1的路由表

3.3 方案3 路由策略精準調整優先級結合路由標記

3.3.1 路由策略調整路由引入協議優先級

通過前文對雙邊界雙向路由引入的次優路由和路由環路問題產生原因的分析,為了不使協議對其他目的網段路由產生影響,在AR1和AR3路由器的IS-IS協議中,通過路由策略來匹配前綴為4.4.4.0/24的特定外部路由,將匹配后的路由優先級設置為低于OSPF ASE的優先級,在最優路徑選擇時則會優選OSPF協議[11]。以AR1路由器的配置為例,具體的配置命令:

[AR1]ip ip-prefix 4 permit 4.4.4.0 24

[AR1]route-policy P4 permit node 10

[AR1-route-policy]if-match ip-prefix 4

[AR1-route-policy]apply preference 151

[AR1-isis-1]preference route-policy P4

前述配置通過定義策略路由P4,匹配IP前綴4從而識別網段4.4.4.0/24,僅將精準匹配的網段的路由優先級設置為151,然后在IS-IS協議中應用策略路由,由于OSPF協議中關于4.4.4.0/24的路由優先級為150,按最優路由選擇原則,150的優先級大于151的,優選OSPF協議路由[12]。如圖8所示,AR1路由器的路由表中優選OSPF協議的路由,路由轉發路徑為AR1→AR4→4.4.4.0/24,解決了次優路由的問題。

圖8 應用策略路由后的AR1路由表

在AR4路由器中通過undo interface loopback 4命令模擬刪除4.4.4.0/24網段[12],分別在AR1~AR3路由器上查看路由表,可以發現關于4.4.4.0/24網段的路由環路問題依舊存在。

3.3.2 路由引入添加路由標記

路由策略調整路由引入協議優先級雖然解決了次優路由問題,但當4.4.4.0/24網段失效后,IS-IS協議關于此路由的信息在LSDB中依然存在,并會引入到OSPF協議中從而導致路由環路問題。在雙邊界雙向路由引入的網絡中,消除路由環路的關鍵是如何避免路由反饋,后面提出一種在路由引入時添加路由標記(Tag)的解決方法,基本的思路是在邊界路由器的OSPF和IS-IS協議相互路由引入中,在AR1→AR2→AR3方向的路由更新上將4.4.4.0/24網段在AR1路由器的OSPF引入到IS-IS時添加Tag,再在AR3路由器的IS-IS引入到OSPF時過濾此Tag的路由進入,同理,在AR3→AR2→AR1方向也做類似的標記和過濾,采用手工的路由標記來避免邊界路由器從OSPF協議引入的路由通過另一個邊界路由器發布回OSPF協議。

具體的方案設計如圖9所示,在AR1路由器上創建路由策略ItoO,用于在OSPF協議引入IS-IS路由時添加Tag300、過濾Tag400的路由[13];創建路由策略OtoI,用于在IS-IS協議引入OSPF路由時添加Tag100、過濾Tag200的路由。在AR3路由器上創建路由策略ItoO,用于在OSPF協議引入IS-IS路由時添加Tag200、過濾Tag100的路由;創建路由策略OtoI,用于在IS-IS協議引入OSPF路由時添加Tag400、過濾Tag300的路由。

圖9 路由標記方案設計

通過路由標記方案的設計,在仿真網絡環境4.4.4.0/24網段的AR1→AR2→AR3方向路由更新中,AR1的IS-IS協議從OSPF引入會根據路由策略OtoI添加Tag100,AR3的OSPF協議從IS-IS引入根據路由策略ItoO被過濾,由此徹底避免了雙邊界雙向路由引入中的路由反饋問題。

以AR1路由器為例,實現方案的主要配置命令:

#創建路由策略OtoI,添加Tag 100、過濾Tag 200。

[AR1]route-policy OtoI deny node 10

[AR1-route-policy]if-match tag 200

[AR1]route-policy OtoI permit node 20

[AR1-route-policy]apply tag 100

#創建路由策略OtoI,添加Tag 300、過濾Tag 400。

[AR1]route-policy ItoO deny node 10

[AR1-route-policy]if-match tag 400

[AR1]route-policy ItoO permit node 20

[AR1-route-policy]apply tag 300

#OSPF協議路由引入IS-IS時應用路由策略ItoO。

[AR1-ospf-1]import-route isis 1 route-policy ItoO

#IS-IS協議路由引入OSPF時應用路由策略OtoI。

[AR1-isis-1]import-route ospf 1 route-policy OtoI

通過前述配置后,模擬刪除4.4.4.0/24網段,此時OSPF協議在LSDB中刪除關于此網段的LSA[14],且邊界路由器分別在路由策略中過濾了對方從OSPF引入后的路由再重新引入到自身的OSPF協議中。分別在AR1~AR3路由器上查看路由表,可以發現關于4.4.4.0/24網段的路由條目均被移除,解決了路由環路問題。

3.4 方案對比分析

如表4所示,方案1在IS-IS協議中通過路由過濾直接對4.4.4.0/24網段進行屏蔽,有效地解決了次優路由和路由環路問題,其缺點是當邊界路由器連接OSPF協議網絡鏈路出現中斷時無法通過IS-IS協議學習到4.4.4.0/24的路由轉發路徑,造成了路由路徑冗余的缺失。方案2通過直接修改IS-IS的優先級,使全局性的優先級改變,導致了新的次優路由問題的出現,且不能徹底解決路由環路。方案3通過路由策略局部性精準地對外部路由網段修改優先級,在消除次優路由的同時不影響其他網段的最優路由選擇,再通過路由標記的設計徹底避免了路由反饋現象,從而解決了路由環路問題。當邊界路由器連接某個路由協議網絡鏈出現中斷時,也不影響另一個邊界路由器的路由轉發,提供了路由冗余的可靠性保障。

表4 方案對比

4 結語

在進行大規模的網絡建設和整合時,網絡復雜度越來越高,在多協議的復雜場景網絡中尤其要注意次優路由和路由環路的問題。通過對雙邊界雙向路由引入場景中的潛在問題進行原因分析,提出了3種解決方案;通過原理分析和仿真對比各自優缺點,論證了方案3的優勢,為此場景提供了一種較佳的解決方法。在現實的網絡構建中,會出現更多復雜網絡的場景,需要有針對性地分析潛在問題與設計解決方案。另外,隨著軟件定義網絡(Software Defined Network,SDN)的逐步成熟和規?;瘧?其控制平面與轉發平面分層管理的思想,可通過開放可編程化的控制平臺及標準化的接口協議更為靈活地管理復雜網絡場景[15],SDN技術在多協議復雜網絡場景中的具體應用將是下一步的研究方向。

猜你喜歡
路由表網段環路
基于OSPF特殊區域和LSA的教學設計與實踐
單位遭遇蠕蟲類病毒攻擊
網上鄰居跨網段訪問故障
上海市中環路標線調整研究
Onvif雙網段開發在視頻監控系統中的應用
基于新路由表的雙向搜索chord路由算法
Buck-Boost變換器的環路補償及仿真
單脈沖雷達導引頭角度跟蹤環路半實物仿真
莫斯科地鐵計劃于2019—2020年推出第三換乘環路
BGP創始人之一Tony Li:找到更好的途徑分配互聯網地址
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合