文/黃向農(nóng) 趙瓊
利用網(wǎng)絡(luò)拓?fù)鋱D規(guī)劃IPv6地址
文/黃向農(nóng) 趙瓊
網(wǎng)絡(luò)拓?fù)鋱D作為IPv6設(shè)備地址規(guī)劃的一種嘗試,其目的是尋找出設(shè)備地址中有規(guī)律的特性,從而能夠按照網(wǎng)絡(luò)拓?fù)鋱D構(gòu)造各種類型的設(shè)備地址,用于IPv6網(wǎng)絡(luò)建設(shè)與管理,試圖提高工作效率。
就設(shè)備地址規(guī)劃而言,通常可以指定某個(gè)IPv6前綴,按網(wǎng)絡(luò)層次和區(qū)域預(yù)先分配地址,編制成設(shè)備地址表。使用時(shí),按照設(shè)備所處的位置,從表中依次選取空閑的地址。
對于這種規(guī)劃方案,由于簡單方便,只要及時(shí)更新維護(hù)好設(shè)備地址表,也能較好地實(shí)現(xiàn)IPv6地址的規(guī)范化管理。
但是,由于分配地址的隨機(jī)性,離開了地址表,僅憑設(shè)備地址并不能確定與設(shè)備之間的關(guān)系,沒有規(guī)律可循,不利于網(wǎng)絡(luò)維護(hù)。如果設(shè)備之間的互聯(lián)關(guān)系復(fù)雜,要想維護(hù)好這種設(shè)備地址表,也并非易事。
這些問題都緣于這種表格是線性結(jié)構(gòu)的,不能很好地表示具有圖形結(jié)構(gòu)性質(zhì)的網(wǎng)絡(luò)拓?fù)洹榇?,我們設(shè)計(jì)出基于網(wǎng)絡(luò)拓?fù)鋱D進(jìn)行IPv6設(shè)備地址規(guī)劃。
中山大學(xué)IPv4園區(qū)網(wǎng)拓?fù)浣Y(jié)構(gòu)由核心層、匯聚層(包括校區(qū)骨干層、區(qū)域匯聚層、樓棟匯聚層)和接入層構(gòu)成,其中核心層由兩臺高性能路由器組成,負(fù)責(zé)校園網(wǎng)數(shù)據(jù)的快速轉(zhuǎn)發(fā);匯聚層由分布在各校區(qū)的路由交換機(jī)構(gòu)成,負(fù)責(zé)各網(wǎng)段之間的路由和接入層設(shè)備之間的數(shù)據(jù)交換;接入層負(fù)責(zé)用戶終端的安全接入。通過10Gbps鏈路上聯(lián)至CERNET華南理工大學(xué)核心節(jié)點(diǎn),核心層采用10Gbps鏈路互聯(lián),匯聚層設(shè)備與接入層設(shè)備之間采用1Gbps鏈路互聯(lián),接入層到用戶桌面之間采用100Mbps鏈路連接。
中山大學(xué)CNGI駐地網(wǎng)通過光纖并以純IPv6方式接入到CNGI-CERNET2華南理工大學(xué)核心節(jié)點(diǎn),接入速率為1Gbps。園區(qū)網(wǎng)采用IPv4/IPv6雙棧技術(shù)實(shí)現(xiàn)。在CNGI駐地網(wǎng)邊界配置專用IPv6路由器,直連到校園網(wǎng)核心層路由器,與IPv4網(wǎng)絡(luò)共用核心層和匯聚層,實(shí)現(xiàn)接入層的雙棧連接。網(wǎng)絡(luò)連接拓?fù)淙鐖D1所示。
網(wǎng)絡(luò)按層次結(jié)構(gòu)設(shè)計(jì),實(shí)施IPv6設(shè)備地址規(guī)劃時(shí)也應(yīng)該結(jié)合網(wǎng)絡(luò)層次結(jié)構(gòu)來考慮。核心層到樓棟匯聚層的網(wǎng)絡(luò)設(shè)備都是三層設(shè)備,設(shè)備之間所建立的互聯(lián)鏈路需要互聯(lián)網(wǎng)絡(luò)地址來實(shí)現(xiàn)。由于回環(huán)接口地址不會出現(xiàn)鏈路失效的情況,因此應(yīng)為每臺三層設(shè)備都配置回環(huán)接口地址,同時(shí)該地址還能作為三層設(shè)備的管理地址。在純IPv6網(wǎng)絡(luò)中,二層接入交換機(jī)需要配置網(wǎng)管地址。也就是說,IPv6設(shè)備地址包括互聯(lián)接口地址、回環(huán)接口地址和二層設(shè)備網(wǎng)管地址(以下分別簡稱為互聯(lián)地址、回環(huán)地址和網(wǎng)管地址),具體的IPv6設(shè)備地址規(guī)劃過程如下。
1. 定義圖形結(jié)構(gòu)節(jié)點(diǎn)號
圖1 中山大學(xué)校園網(wǎng)拓?fù)?/p>
圖2 東校區(qū)圖形結(jié)構(gòu)
圖形結(jié)構(gòu)可以表示復(fù)雜的非線性結(jié)構(gòu)。在圖形結(jié)構(gòu)中,任意兩個(gè)節(jié)點(diǎn)之間都可能相關(guān),即節(jié)點(diǎn)之間的鄰接關(guān)系可以是任意的。我們用抽象的圖形結(jié)構(gòu)來表示圖1所示的校園網(wǎng)拓?fù)鋱D,并將兩個(gè)節(jié)點(diǎn)之間的鄰接關(guān)系看作是有方向性的,即該圖是一個(gè)有向圖,如圖2所示。為便于描述,圖2只給出與東校區(qū)有關(guān)的圖形結(jié)構(gòu)部分。節(jié)點(diǎn)Vi和Vj之間的連線是有方向的,這條連線稱為弧?;∮霉?jié)點(diǎn)的有序偶對
因?yàn)橹挥袠菞潊R聚層以上的設(shè)備才涉及到互聯(lián)地址,我們先考慮圖2中與核心層、校區(qū)骨干層、區(qū)域匯聚層和樓棟匯聚層等4層相對應(yīng)的節(jié)點(diǎn)之間的鄰接關(guān)系。節(jié)點(diǎn)所在的層用層號i表示,依次取值為0,1,2,3,分別對應(yīng)核心層、校區(qū)骨干層、區(qū)域匯聚層和樓棟匯聚層;按圖2 所示的圖形結(jié)構(gòu)圖上的節(jié)點(diǎn)位置,從左到右地對同層的所有節(jié)點(diǎn)按順序編號,并用j表示,對該有向圖的所有節(jié)點(diǎn)Vij取值為ij。假定節(jié)點(diǎn)Vpi到節(jié)點(diǎn)Vqj的弧用
用這種方法分層對節(jié)點(diǎn)編號,從網(wǎng)絡(luò)層次結(jié)構(gòu)來看,用1位十六進(jìn)制數(shù)i表示,可滿足層次標(biāo)識的需求。而j為1位十六進(jìn)制數(shù)時(shí),每層最多可表示到16個(gè)節(jié)點(diǎn),對于我們校園網(wǎng)的核心層、校區(qū)骨干層和區(qū)域匯聚層來說應(yīng)該足夠。然而,樓棟匯聚層節(jié)點(diǎn)很可能超出16個(gè),故需要使用2位十六進(jìn)制數(shù)表示,這樣表示該層節(jié)點(diǎn)可達(dá)256個(gè),應(yīng)該能滿足實(shí)際需求。這樣一來,弧
對應(yīng)二層設(shè)備的節(jié)點(diǎn),基于其匯聚節(jié)點(diǎn)從1開始逐一編號即可。
每臺設(shè)備與圖形結(jié)構(gòu)圖上的節(jié)點(diǎn)有一一對應(yīng)的關(guān)系,給設(shè)備命名時(shí),應(yīng)該帶上該節(jié)點(diǎn)的屬性值。例如,安置在東校區(qū)圖書館的對應(yīng)圖形結(jié)構(gòu)圖節(jié)點(diǎn)V11的華為路由交換機(jī)Quiway S8512,可以命名為E_TS_QW_8512V11。
2. 定義校區(qū)編號
上述的圖形結(jié)構(gòu)節(jié)點(diǎn)號是針對一個(gè)校區(qū)進(jìn)行的,我們校園網(wǎng)有4個(gè)校區(qū)以及一些專用網(wǎng)絡(luò),采用相同的方法來定義每個(gè)校區(qū)(網(wǎng)絡(luò))內(nèi)的節(jié)點(diǎn)號,那么還得用校區(qū)號來區(qū)分這些節(jié)點(diǎn)。就目前的網(wǎng)絡(luò)結(jié)構(gòu)而言,校區(qū)號用1位十六進(jìn)制數(shù)表示即可。定義校區(qū)號為n,取值如表1所示。
3. 定義互聯(lián)地址
互聯(lián)地址可以采用RFC 4193定義的惟一本地IPv6地址FC00::/ 7,因?yàn)榈?位為0已保留將來使用,實(shí)際可用/8前綴是FC00和FD00,這里采用FD00::/8。該網(wǎng)絡(luò)前綴只允許在校園網(wǎng)范圍內(nèi)可路由,不會被邊界路由器轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)。我們將圖2上的節(jié)點(diǎn)號、校區(qū)號和FD00::/8這三部分有機(jī)地結(jié)合在一起來構(gòu)成互聯(lián)地址,構(gòu)成原則如下:
表1
(1) 使用FD00::/8網(wǎng)絡(luò)前綴;
(2) 按校區(qū)號n劃分子網(wǎng),使每個(gè)校區(qū)的設(shè)備地址能夠聚合到網(wǎng)絡(luò)前綴FDn0::/12;
(3) 弧
(4) 用h表示接口ID低16位,那么對應(yīng)起點(diǎn)Vpi和終點(diǎn)Vqj的h分別取值為1和2;
(5) 互聯(lián)地址采用/64前綴。
根據(jù)以上原則,節(jié)點(diǎn)Vpi到Vqj的互聯(lián)地址可以定義為:
除了FD表示特定前綴外,共有6個(gè)域,各域的含義如圖3所示。
圖3 互聯(lián)地址格式含義
其中,大寫字母為常量,小寫字母為變量,所標(biāo)的位數(shù)為二進(jìn)制位數(shù)。例如,圖2中,東校區(qū)的校區(qū)號是4,基于弧
4. 定義回環(huán)地址
因?yàn)樾@網(wǎng)的層次結(jié)構(gòu)不可能達(dá)到16層,層號必然小于十六進(jìn)制數(shù)0xF,針對這種三層設(shè)備的接口地址,可以假設(shè)Vpi起點(diǎn)號恒定為十六進(jìn)制數(shù)0xF3,本節(jié)點(diǎn)Vqj當(dāng)作終點(diǎn),回環(huán)地址采用/128前綴,作為接口ID的h取值為1,借用互聯(lián)地址的格式(i),得到基于節(jié)點(diǎn)Vqj的回環(huán)地址格式為:
例如,圖2中節(jié)點(diǎn)V302對應(yīng)的回環(huán)地址是FD4F:3302::1/128。注意,兩個(gè)節(jié)點(diǎn)V00和V01屬于核心網(wǎng),校區(qū)號n為0,對應(yīng)的回環(huán)地址分別是FD0F:3000::1/128和FD0F:3010::1/128。
5. 定義網(wǎng)管地址
這里的網(wǎng)管地址為二層地址,為了區(qū)別于三層地址,參照回環(huán)地址的格式(ii),將式中表示三層設(shè)備的3改為2,網(wǎng)管地址采用/64前綴,得到基于節(jié)點(diǎn)Vqj的網(wǎng)管地址格式為:
這里h的值為設(shè)備編號。若有k臺下聯(lián)二層接入設(shè)備,則對應(yīng)每臺設(shè)備的h依次為1、2、…k。假定下聯(lián)設(shè)備不會超過255臺,作為網(wǎng)關(guān)的h則可以定義為十六進(jìn)制數(shù)0xFF。例如,圖2中節(jié)點(diǎn)V319對應(yīng)的設(shè)備作為網(wǎng)關(guān),下聯(lián)k臺二層交換機(jī),那么這個(gè)二層設(shè)備網(wǎng)管網(wǎng)絡(luò)的網(wǎng)關(guān)是FD4F:2319::FF/64,下連第2臺的設(shè)備網(wǎng)管地址是FD4F:2319::2/64。
利用本方案規(guī)劃的設(shè)備地址(i)、(ii)、(iii),只與相關(guān)節(jié)點(diǎn)有關(guān),不會牽扯到相鄰的節(jié)點(diǎn),很好地適應(yīng)增加節(jié)點(diǎn)、刪除節(jié)點(diǎn)、或更改節(jié)點(diǎn)之間的鄰接關(guān)系等情況。由于圖2是從圖1抽象出來的,它們之間的節(jié)點(diǎn)具有一一對應(yīng)關(guān)系?;趫D2規(guī)劃的設(shè)備地址,實(shí)際上就是基于網(wǎng)絡(luò)拓?fù)鋱D來規(guī)劃的設(shè)備地址。
綜上所述,這些設(shè)備地址構(gòu)造法簡單明了、便于記憶、容易維護(hù)、方便實(shí)施,能夠滿足IPv6校園網(wǎng)實(shí)際需求。
上面談到的這些本地設(shè)備地址不會讓外網(wǎng)訪問,這對提高網(wǎng)絡(luò)安全是有意義的。但是,有些情況下,外網(wǎng)需要訪問其中一些設(shè)備,例如,需要從外網(wǎng)到內(nèi)網(wǎng)的跟蹤路由。我們可以考慮將IPv6校園網(wǎng)的網(wǎng)絡(luò)前綴與本地設(shè)備地址網(wǎng)絡(luò)前綴串接起來構(gòu)成全球可路由的設(shè)備地址,除了回環(huán)地址的前綴長度固定為128外,新的前綴長度為這兩個(gè)前綴長度之和。中山大學(xué)CNGI駐地網(wǎng)的網(wǎng)絡(luò)前綴是2001:250:3002::/48,對應(yīng)設(shè)備地址(i)、(ii)、(iii),分別得到全球可路由設(shè)備地址如下:
因?yàn)樵O(shè)備地址采用靜態(tài)配置,所以這樣規(guī)劃得到的全球可路由設(shè)備地址是可行的。在實(shí)際應(yīng)用中,可以根據(jù)具體情況來選用本地的還是全球的IPv6設(shè)備地址。
OSPFv3進(jìn)程的路由器ID仍然使用IPv4地址,默認(rèn)選用最大的IPv4回環(huán)接口地址。在純IPv6設(shè)備上,不存在IPv4接口地址,這就需要指定一個(gè)IPv4地址格式的值作為路由器ID。一般來說,校園網(wǎng)的每臺三層設(shè)備只需開啟一個(gè)OSPFv3進(jìn)程。就這種情況,為了便于控制管理,可以根據(jù)(ii)設(shè)置OSPFv3進(jìn)程的路由器ID為:
例如,圖2中節(jié)點(diǎn)V302上的回環(huán)接口地址是FD4F:3302::1/128,那么路由器ID是10.4.3.2。
建設(shè)與管理有一定規(guī)模的網(wǎng)絡(luò),一定離不開網(wǎng)絡(luò)拓?fù)鋱D,這為本方案的設(shè)計(jì)奠定了基礎(chǔ)。作為IPv6設(shè)備地址規(guī)劃的一種嘗試,其目的是尋找出設(shè)備地址中有規(guī)律的特性,從而能夠按照網(wǎng)絡(luò)拓?fù)鋱D構(gòu)造各種類型的設(shè)備地址,用于IPv6網(wǎng)絡(luò)建設(shè)與管理,試圖提高工作效率。
(作者單位為中山大學(xué)網(wǎng)絡(luò)與信息技術(shù)中心)