文/黃向農 趙瓊
利用網絡拓撲圖規劃IPv6地址
文/黃向農 趙瓊
網絡拓撲圖作為IPv6設備地址規劃的一種嘗試,其目的是尋找出設備地址中有規律的特性,從而能夠按照網絡拓撲圖構造各種類型的設備地址,用于IPv6網絡建設與管理,試圖提高工作效率。
就設備地址規劃而言,通常可以指定某個IPv6前綴,按網絡層次和區域預先分配地址,編制成設備地址表。使用時,按照設備所處的位置,從表中依次選取空閑的地址。
對于這種規劃方案,由于簡單方便,只要及時更新維護好設備地址表,也能較好地實現IPv6地址的規范化管理。
但是,由于分配地址的隨機性,離開了地址表,僅憑設備地址并不能確定與設備之間的關系,沒有規律可循,不利于網絡維護。如果設備之間的互聯關系復雜,要想維護好這種設備地址表,也并非易事。
這些問題都緣于這種表格是線性結構的,不能很好地表示具有圖形結構性質的網絡拓撲。為此,我們設計出基于網絡拓撲圖進行IPv6設備地址規劃。
中山大學IPv4園區網拓撲結構由核心層、匯聚層(包括校區骨干層、區域匯聚層、樓棟匯聚層)和接入層構成,其中核心層由兩臺高性能路由器組成,負責校園網數據的快速轉發;匯聚層由分布在各校區的路由交換機構成,負責各網段之間的路由和接入層設備之間的數據交換;接入層負責用戶終端的安全接入。通過10Gbps鏈路上聯至CERNET華南理工大學核心節點,核心層采用10Gbps鏈路互聯,匯聚層設備與接入層設備之間采用1Gbps鏈路互聯,接入層到用戶桌面之間采用100Mbps鏈路連接。
中山大學CNGI駐地網通過光纖并以純IPv6方式接入到CNGI-CERNET2華南理工大學核心節點,接入速率為1Gbps。園區網采用IPv4/IPv6雙棧技術實現。在CNGI駐地網邊界配置專用IPv6路由器,直連到校園網核心層路由器,與IPv4網絡共用核心層和匯聚層,實現接入層的雙棧連接。網絡連接拓撲如圖1所示。
網絡按層次結構設計,實施IPv6設備地址規劃時也應該結合網絡層次結構來考慮。核心層到樓棟匯聚層的網絡設備都是三層設備,設備之間所建立的互聯鏈路需要互聯網絡地址來實現。由于回環接口地址不會出現鏈路失效的情況,因此應為每臺三層設備都配置回環接口地址,同時該地址還能作為三層設備的管理地址。在純IPv6網絡中,二層接入交換機需要配置網管地址。也就是說,IPv6設備地址包括互聯接口地址、回環接口地址和二層設備網管地址(以下分別簡稱為互聯地址、回環地址和網管地址),具體的IPv6設備地址規劃過程如下。
1. 定義圖形結構節點號

圖1 中山大學校園網拓撲

圖2 東校區圖形結構
圖形結構可以表示復雜的非線性結構。在圖形結構中,任意兩個節點之間都可能相關,即節點之間的鄰接關系可以是任意的。我們用抽象的圖形結構來表示圖1所示的校園網拓撲圖,并將兩個節點之間的鄰接關系看作是有方向性的,即該圖是一個有向圖,如圖2所示。為便于描述,圖2只給出與東校區有關的圖形結構部分。節點Vi和Vj之間的連線是有方向的,這條連線稱為弧。弧用節點的有序偶對
因為只有樓棟匯聚層以上的設備才涉及到互聯地址,我們先考慮圖2中與核心層、校區骨干層、區域匯聚層和樓棟匯聚層等4層相對應的節點之間的鄰接關系。節點所在的層用層號i表示,依次取值為0,1,2,3,分別對應核心層、校區骨干層、區域匯聚層和樓棟匯聚層;按圖2 所示的圖形結構圖上的節點位置,從左到右地對同層的所有節點按順序編號,并用j表示,對該有向圖的所有節點Vij取值為ij。假定節點Vpi到節點Vqj的弧用
用這種方法分層對節點編號,從網絡層次結構來看,用1位十六進制數i表示,可滿足層次標識的需求。而j為1位十六進制數時,每層最多可表示到16個節點,對于我們校園網的核心層、校區骨干層和區域匯聚層來說應該足夠。然而,樓棟匯聚層節點很可能超出16個,故需要使用2位十六進制數表示,這樣表示該層節點可達256個,應該能滿足實際需求。這樣一來,弧
對應二層設備的節點,基于其匯聚節點從1開始逐一編號即可。
每臺設備與圖形結構圖上的節點有一一對應的關系,給設備命名時,應該帶上該節點的屬性值。例如,安置在東校區圖書館的對應圖形結構圖節點V11的華為路由交換機Quiway S8512,可以命名為E_TS_QW_8512V11。
2. 定義校區編號
上述的圖形結構節點號是針對一個校區進行的,我們校園網有4個校區以及一些專用網絡,采用相同的方法來定義每個校區(網絡)內的節點號,那么還得用校區號來區分這些節點。就目前的網絡結構而言,校區號用1位十六進制數表示即可。定義校區號為n,取值如表1所示。
3. 定義互聯地址
互聯地址可以采用RFC 4193定義的惟一本地IPv6地址FC00::/ 7,因為第7位為0已保留將來使用,實際可用/8前綴是FC00和FD00,這里采用FD00::/8。該網絡前綴只允許在校園網范圍內可路由,不會被邊界路由器轉發到外部網絡。我們將圖2上的節點號、校區號和FD00::/8這三部分有機地結合在一起來構成互聯地址,構成原則如下:

表1
(1) 使用FD00::/8網絡前綴;
(2) 按校區號n劃分子網,使每個校區的設備地址能夠聚合到網絡前綴FDn0::/12;
(3) 弧
(4) 用h表示接口ID低16位,那么對應起點Vpi和終點Vqj的h分別取值為1和2;
(5) 互聯地址采用/64前綴。
根據以上原則,節點Vpi到Vqj的互聯地址可以定義為:

除了FD表示特定前綴外,共有6個域,各域的含義如圖3所示。

圖3 互聯地址格式含義
其中,大寫字母為常量,小寫字母為變量,所標的位數為二進制位數。例如,圖2中,東校區的校區號是4,基于弧
4. 定義回環地址
因為校園網的層次結構不可能達到16層,層號必然小于十六進制數0xF,針對這種三層設備的接口地址,可以假設Vpi起點號恒定為十六進制數0xF3,本節點Vqj當作終點,回環地址采用/128前綴,作為接口ID的h取值為1,借用互聯地址的格式(i),得到基于節點Vqj的回環地址格式為:

例如,圖2中節點V302對應的回環地址是FD4F:3302::1/128。注意,兩個節點V00和V01屬于核心網,校區號n為0,對應的回環地址分別是FD0F:3000::1/128和FD0F:3010::1/128。
5. 定義網管地址
這里的網管地址為二層地址,為了區別于三層地址,參照回環地址的格式(ii),將式中表示三層設備的3改為2,網管地址采用/64前綴,得到基于節點Vqj的網管地址格式為:

這里h的值為設備編號。若有k臺下聯二層接入設備,則對應每臺設備的h依次為1、2、…k。假定下聯設備不會超過255臺,作為網關的h則可以定義為十六進制數0xFF。例如,圖2中節點V319對應的設備作為網關,下聯k臺二層交換機,那么這個二層設備網管網絡的網關是FD4F:2319::FF/64,下連第2臺的設備網管地址是FD4F:2319::2/64。
利用本方案規劃的設備地址(i)、(ii)、(iii),只與相關節點有關,不會牽扯到相鄰的節點,很好地適應增加節點、刪除節點、或更改節點之間的鄰接關系等情況。由于圖2是從圖1抽象出來的,它們之間的節點具有一一對應關系。基于圖2規劃的設備地址,實際上就是基于網絡拓撲圖來規劃的設備地址。
綜上所述,這些設備地址構造法簡單明了、便于記憶、容易維護、方便實施,能夠滿足IPv6校園網實際需求。

上面談到的這些本地設備地址不會讓外網訪問,這對提高網絡安全是有意義的。但是,有些情況下,外網需要訪問其中一些設備,例如,需要從外網到內網的跟蹤路由。我們可以考慮將IPv6校園網的網絡前綴與本地設備地址網絡前綴串接起來構成全球可路由的設備地址,除了回環地址的前綴長度固定為128外,新的前綴長度為這兩個前綴長度之和。中山大學CNGI駐地網的網絡前綴是2001:250:3002::/48,對應設備地址(i)、(ii)、(iii),分別得到全球可路由設備地址如下:

因為設備地址采用靜態配置,所以這樣規劃得到的全球可路由設備地址是可行的。在實際應用中,可以根據具體情況來選用本地的還是全球的IPv6設備地址。
OSPFv3進程的路由器ID仍然使用IPv4地址,默認選用最大的IPv4回環接口地址。在純IPv6設備上,不存在IPv4接口地址,這就需要指定一個IPv4地址格式的值作為路由器ID。一般來說,校園網的每臺三層設備只需開啟一個OSPFv3進程。就這種情況,為了便于控制管理,可以根據(ii)設置OSPFv3進程的路由器ID為:

例如,圖2中節點V302上的回環接口地址是FD4F:3302::1/128,那么路由器ID是10.4.3.2。
建設與管理有一定規模的網絡,一定離不開網絡拓撲圖,這為本方案的設計奠定了基礎。作為IPv6設備地址規劃的一種嘗試,其目的是尋找出設備地址中有規律的特性,從而能夠按照網絡拓撲圖構造各種類型的設備地址,用于IPv6網絡建設與管理,試圖提高工作效率。
(作者單位為中山大學網絡與信息技術中心)