?
隨著網絡扁平化概念的提出,具有“大容量、少局所、高交換”性能的匯聚型OLT經過一個MSTP網絡就可以接入骨干網[1]。根據運營局方的需求,當MSTP傳輸網內部故障時,不需要維護人員的直接干預,OLT能參與鏈路倒換并幫助實現網絡自愈。理論上接入網OLT、MSTP傳輸網以及骨干網可以采用分段保護方案,例如OLT上聯雙歸屬保護OLT-MSTP的鏈路,MSTP內部鏈路的保護由MSTP本身負責,MSTP到上游骨干路由器的鏈路保護可以通過路由協議實現(收斂時間較長)。但是這種方法增加了網絡維護的復雜度,而且現網業務已經部分開通,修改設備的配置存在一定風險。如果采用VRRP方案,由于只是MSTP網內部的鏈路狀態發生改變,當VRRP發生主備切換時,原有主用接口狀態并沒有發生變化,接口還是處于UP狀態,該路由還會繼續宣告,從而導致下行流不通。基于OSPF協議的路由方案由于具有配置簡單,風險可控,維護管理方便的特點,因而被本設計采用。
1 OLT上的三層接口設計
1.1 VLAN技術在OLT上的應用
作為交換式以太網設備的一種,EPON系統OLT對數據鏈路層技術有著強大的支持能力,例如二層VLAN技術的廣泛應用。VLAN的劃分方法有3種:802.1Q VLAN、基于端口的VLAN和基于MAC地址的VLAN[2]。OLT上的二層業務VLAN運用802.1Q實現VLAN標記(tag)從而將VLAN延伸到整個網絡,而802.1Q VLAN的去標記(untagged)則使得OLT可以和所有合法的、無法識別VLAN標記的交換機一起工作;OLT還有一些內部保留VLAN是基于端口劃分,加入同一個VLAN的端口形成一個廣播域,可以實現二層互通,不在同一個VLAN內的端口之間在二層則不能直接通信。傳統OLT上比較特殊的一個(或多個)VLAN是管理VLAN,這種VLAN可以配置IP地址來和網管服務器進行通信,方便網絡管理員對OLT進行配置管理。
在傳統意義的三層設備中,VLAN是指三層虛接口,它們可以配置IP地址形成路由接口。因此,在OLT上實現三層路由首先必須創建三層接口。本設計采用SUPER-VLAN技術來解決二層VLAN和三層接口的矛盾。SUPER-VLAN也叫VLAN聚合,由SUB-VLAN和SUPER-VLAN組成,它的SUB-VLAN是二層實VLAN,不同VLAN之間在二層不能互通;SUPER-VLAN是三層虛VLAN,多個SUB-VLAN可以添加到同一個SUPER-VLAN,然后在SUPER-VLAN上配置IP地址形成三層接口。路由接口是OSPF方案設計進行的基礎。
1.2基于SUPER-VLAN技術的三層接口設計
?
OLT上的三層接口由SUPER-VLAN來提供,SU-PER-VLAN三層轉發的基本原理如下[3]:如圖1所示,PC1和PC3屬于不同的SUPER-VLAN,即不同的網段。垮網段設備的通信需要通過三層接口交互。PC1與PC3通信的過程如下:
① 通過比較IP地址和掩碼PC1知道PC3與自己不在同一個網段,PC1向網關發送一個ARP報文請求網關的MAC;
② 網關SUPER-VLAN 100回應自己的MAC 00-00-00-00-00-01給PC1;
③ PC1收到應答后發送目的MAC為00-00-00-00-00-01、目的IP為3.3.3.1的報文;
④ SUPER-VLAN 100收到報文后發現目的MAC是自己的MAC,就知道是三層轉發,從而去查三層轉發表;
⑤ 查找到下一跳的出口是SUPER-VLAN 200,就把報文發給SUPER-VLAN 200;
⑥ SUPER-VLAN 200收到報文,將報文轉發給PC3。
現在考慮PC1和PC2的通信流程。比較PC1和PC2的IP地址可以知道二者同屬于一個子網,PC1就會廣播ARP報文請求PC2的MAC。而由于PC1和PC2不在同一個SUB-VLAN中,ARP廣播報文不能到達PC2。此時,SUPER-VLAN就需要發揮它的另一個重要作用--ARP PROXY。SUPER-VLAN的ARPPROXY功能工作流程如下:
① PC1廣播一個ARP報文請求PC2的MAC;
② SUPER-VLAN 100發現PC2不在SUB-VLAN1內,就代理接受該ARP報文;
③ SUPER-VLAN100在SUB-VLAN 2內廣播ARP報文請求PC2的MAC地址;
④ PC2應答ARP請求,將自己的MAC 00-00-00-00-00-03發送給SUPER-VLAN 100;
⑤ SUPER-VLAN 100作為網關應答PC1的ARP請求,將自己的MAC 00-00-00-00-00-01當作PC2的MAC發送給PC1。后續PC1發送給PC2的報文就會將帶上目的MAC 00-00-00-00-00-01、目的IP 1.1.1.2的報文發送給SUPER-VLAN網關,網關收到該報文后將自己的MAC替換成PC2的MAC 00-00-00-00-00-03,并把報文按照學習到的路由發送給PC2。
2路由軟件設計
2.1路由管理模塊設計
路由可以分為靜態路由和動態路由兩大類。靜態路由由網絡管理者直接配置產生,動態路由由路由協議學習生成。為了實現軟件路由表和交換芯片路由表的同步和路由擇優等功能,需要進行路由信息收集、過濾、優選等操作,因此系統中需要路由管理模塊維護不同的路由表項。路由管理模塊(RTM)位于各軟硬件平臺驅動層之上,三層功能協議層及管理層之下,是三層功能實現的核心模塊。根據設計,它在系統中需要完成的工作如下:
① 管理員配置添加三層接口,包括添加SUPER-VLAN、SUB-VLAN以及IP;
② 接口管理模塊向路由管理模塊通告接口事件,如接口的UP/DOWN事件;
③ 協議模塊學習到動態路由,進行動態路由的添加/刪除;
④ 路由管理模塊處理接口變化事件,并通知各三層功能協議模塊;同時管理來自協議模塊的動態路由的寫入與刪除;
⑤ OS IP協議棧ARP功能提供主機路由表的維護,并向路由管理模塊提供路由條目中下一跳Gate-way相關的ARP功能;
⑥ 交換芯片驅動為路由管理模塊提供硬件FIB表的刪除與寫入功能。
⑦ OS IP協議棧向路由管理模塊提供硬件FIB表的刪除與寫入功能。
對應上述功能,設計將路由管理模塊劃分成更小的模塊來分別實現。如圖2所示,路由管理模塊(RTM)由路由表控制模塊(RTM_CTRL)、主機路由控制模塊、管理與配置模塊、動態路由消息處理模塊、接口消息處理模塊、操作系統適配層以及驅動適配層組成。
路由表(RIB table)由節點鏈表組成,每個節點表示到達一個目的網段的所有路由。如圖3所示,每一個node中都記錄3張RIB表,分別是RIB-active表、RIB-standby表和RIB-pend表,每一個表的子項都是到達該目的網段的路由信息,即RIB路由條目、RIB里面記錄路由類型(RIP/OSPF/靜態等)、下一跳網關、距離、metric和生成時間等。
?
RIB-active中的RIB路由表示當前激活的路由,該路由會被寫入到硬件FIB和OS FIB中去,實現業務流的三層轉發功能。通常一個目的網段只有一個active路由。
RIB-standby中的路由條目是可到達但不是最優路徑的路由,當active路由不可用時,路由管理模塊會在standby RIB找一個最優路由升級為active路由。
RIB-pend路由表中的路由是由于該路由的下一跳網關不可達(查ARP表)而暫時掛起的路由路徑,當下一跳網關可達后,該路由會升級為standby路由或者是active路由。
2.2 OSPF路由原理
OSPF是一種鏈路狀態路由協議,被設計用于單一的自制系統(AS)中。每個OSPF路由器都維持著同樣的數據庫以描述AS的拓撲結構,并以此數據庫來創建最短路徑樹和計算路由表。OSPF提供等值多路徑。在發現拓撲改變后,OSPF僅利用很少的路由流量就可以快速地重新計算出路徑。通過提供區域路徑,來提供額外的路徑保護并可以減少協議所需要的流量。有關路由表的計算是OSPF的核心內容,它是動態生成路由器內核路由表的基礎。這里將復雜的OSPF計算過程總結為以下四點:
① 當路由器初始化或當網絡結構發生變化(例如增減路由器,鏈路狀態發生變化等)時,路由器會產生鏈路狀態廣播數據包LSA(Link-State Advertisement),該數據包里包含路由器上所有相連鏈路,也即為所有端口的狀態信息。
② 所有路由器會通過一種被稱為刷新(Flooding)的方法來交換鏈路狀態數據。Flooding是指路由器將其LSA數據包傳送給所有與其相鄰的OSPF路由器,相鄰路由器根據其接收到的鏈路狀態信息更新自己的數據庫,并將該鏈路狀態信息轉送給與其相鄰的路由器,直至穩定的一個過程。
③ 當網絡重新穩定下來,即OSPF路由協議收斂下來時,所有的路由器會根據其各自的鏈路狀態信息數據庫計算出各自的路由表。該路由表中包含路由器到每一個可到達目的地的Cost以及到達該目的地所要轉發的下一個路由器(next-hop)。
④ 當網絡狀態比較穩定時,網絡中傳遞的鏈路狀態信息是比較少的。這也正是鏈路狀態路由協議區別于距離矢量路由協議的一大特點。
通過以上步驟,OSPF動態監視網絡狀態,一旦發生變化則迅速擴散,達到對網絡拓撲的快速聚合,從而確定出新的網絡路由表。這里的路由表不同于實現路由轉發功能時用到的內核路由表,它只是OSPF本身的內部路由表。因此,完成上述工作后,往往還要通過路由管理模塊與內核路由表交互,實現三層轉發。
3 OSPF在OLT上的應用
基于上述設計開發出OSPF路由軟件后,針對OLT的OSPF雙上聯功能設計如圖4所示組網,三層接口分別作用在圖示SV1、SV2以及SV3,配置過程如圖5所示。
?
?
在SV2、SV3上使能OSPF協議,配置SV3的OSPF Cost="10",SV2的OSPF Cost="1000",則路由管理模塊優選出Cost=10的路由條目,PC1與PC2和PC3之間的通信優先通過下一跳為SV3(IP為192.168.10.54)的路由來建立。結合圖1所示工程應用組網,OSPF倒換的觸發條件至少有兩種情況。第一種是協議超時。當MSTP網絡內部端口DOWN掉或者鏈路遭到破壞,OSPF協議通過LSA的超時機制探測到鄰居和路由變化,所有運行OSPF的設備重新刷新自己的數據庫直到網絡再次收斂。第二種情況是與OLT直接相連的端口down掉,此時OLT的三層接口通過SUB-VLAN感知到端口狀態變化并通知路由管理模塊。路由管理模塊為OSPF協議模塊提供服務,通知OSPF重新計算和刷新路由表,觸發倒換,倒換前后OSPF路由表變化如圖6所示。根據這兩種情況人為破壞端口狀態觸發倒換進行各種測試,測試結果均表明OLT設備能將路由倒換到下一跳為SV2(IP為192.168.2.54)的條目上。兩種條件下的倒換都無需人工干預,實現對MSTP內部通信鏈路的保護。
?
4結束語
本設計的特點在于將OSPF路由技術引入傳統意義上的二層設備OLT,使得OLT在網絡層不僅能提供對下游網絡上行鏈路保護,還能在不改變上游設備配置的前提下提供對其下行鏈路的保護。另外由于VLAN的二層概念在EPON系統中得以廣泛應用,三層接口的添加勢必給系統帶來較大改動;本設計巧妙利用SUPER-VLAN技術,將OLT上的VLAN虛實結合應用,既保留原有業務VLAN的二層特性,又增加了三層虛接口配置IP的功能,保證了OLT軟件的前向兼容性。目前,本設計的軟件實現已經通過實驗室場景測試,正在進行最后的優化和工程測試。
評論
查看更多