作者:李鵬,姜鯤鵬,蘭巨龍,曲晶,趙崢嶸
1 引 言
以太網(wǎng)以其簡(jiǎn)單靈活、成熟穩(wěn)定的特性成為許多分布式系統(tǒng)[-]內(nèi)部通信的首選方式。在這些系統(tǒng)內(nèi)部采用的以太網(wǎng)結(jié)構(gòu)中,如何合理利用與配置地址信息(包括MAC地址和IP地址)成為提高系統(tǒng)可用性與靈活性的關(guān)鍵。
在OSI七層網(wǎng)絡(luò)協(xié)議參考模型中,第2層為數(shù)據(jù)鏈路層。MAC地址位于此層,它由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時(shí)寫在硬件內(nèi)部。MAC地址一般采用6字節(jié)48位,前24位是生產(chǎn)網(wǎng)絡(luò)設(shè)備的廠商向IEEE申請(qǐng)的廠商地址,后24位由廠商自行分配。這樣的分配使得世界上任意一個(gè)擁有48位MAC地址的網(wǎng)絡(luò)設(shè)備都有唯一的標(biāo)識(shí)。
在TCP/IP網(wǎng)絡(luò)中,每個(gè)主機(jī)都有唯一的地址。IP協(xié)議要求在每次與TCP/IP網(wǎng)絡(luò)建立連接時(shí),每臺(tái)主機(jī)都必須為這個(gè)連接分配一個(gè)唯一地址(IPV4為32位,IPV6為128位)。這個(gè)分配給各主機(jī)的地址就稱為IP地址。它分為互連網(wǎng)上的公共IP地址和局域網(wǎng)上的內(nèi)部IP地址兩種。
分布式系統(tǒng)的內(nèi)部結(jié)構(gòu)對(duì)用戶是完全透明的,其內(nèi)部一般采用嵌入式結(jié)構(gòu)。嵌入式結(jié)構(gòu)中的地址信息一般都固化在只讀存儲(chǔ)器ROM中,當(dāng)系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載這些信息。這種地址配置模式比較通用,適合于一般的分布式系統(tǒng);但對(duì)于某些復(fù)雜的分布式系統(tǒng),這種模式可能帶來(lái)一些問(wèn)題,如增加生產(chǎn)成本、生產(chǎn)周期較長(zhǎng)、調(diào)試過(guò)程復(fù)雜、工作效率低以及地址資源利用率低等。本文結(jié)合實(shí)際項(xiàng)目,提出分布式系統(tǒng)內(nèi)部以太網(wǎng)中MAC地址和IP地址的動(dòng)態(tài)配置方法,從根本上解決了傳統(tǒng)配置方法所帶來(lái)的問(wèn)題。下面介紹MAC地址和IP地址的動(dòng)態(tài)配置方法。
2 項(xiàng)目背景
國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心(NDSC)承擔(dān)了國(guó)家863項(xiàng)目高性能IPv6核心路由器的研發(fā)工作。該核心路由器采用分布式系統(tǒng)結(jié)構(gòu),由線卡、轉(zhuǎn)發(fā)、交換、主控等模塊組成。其中線卡、轉(zhuǎn)發(fā)、交換模塊統(tǒng)稱為單板模塊。這些單板模塊利用自己的嵌入式處理機(jī)板的以太網(wǎng)網(wǎng)口單元,通過(guò)以太網(wǎng)和主控模塊相連。各處理機(jī)板用VxWorks嵌入式實(shí)時(shí)操作系統(tǒng),可單獨(dú)處理各單板模塊的實(shí)時(shí)任務(wù)。主控模塊用Linux操作系統(tǒng),有良好的人機(jī)對(duì)話窗口,可通過(guò)以太網(wǎng)和各單板模塊取得聯(lián)系,其結(jié)構(gòu)如圖l所示。
由于分布式系統(tǒng)中的各單板模塊需要通過(guò)內(nèi)部以太網(wǎng)和主控模塊進(jìn)行通信,因此必須給各單板模塊上的嵌入式處理機(jī)板的網(wǎng)口單元分配相應(yīng)的MAC地址和IP地址。這些地址信息一般固化在ROM當(dāng)中,系統(tǒng)啟動(dòng)時(shí)自動(dòng)讀取。
這里需要指出的是,下面討論的MAC地址和IP地址配置與傳統(tǒng)意義上的地址分配出發(fā)點(diǎn)是不同的。傳統(tǒng)意義上的IP地址分配是指通過(guò)DHCP協(xié)議(動(dòng)態(tài)主機(jī)配置協(xié)議)將與互聯(lián)網(wǎng)相連的計(jì)算機(jī)(可以是通過(guò)服務(wù)器與互聯(lián)網(wǎng)相連的局域網(wǎng)中的計(jì)算機(jī))分配一個(gè)互聯(lián)網(wǎng)上的公共IP地址,使之在互連網(wǎng)上能唯一地標(biāo)識(shí)自己。這里討論的分布式系統(tǒng)結(jié)構(gòu)中的內(nèi)部以太網(wǎng)和外部網(wǎng)絡(luò)是相隔離的,不需要將互聯(lián)網(wǎng)上的公共IP地址分配給各單板模塊上的嵌入式處理機(jī)板的網(wǎng)口單元。各網(wǎng)口單元只需要在局域網(wǎng)內(nèi)部唯一地標(biāo)識(shí)自己,只對(duì)應(yīng)一個(gè)局域網(wǎng)內(nèi)部IP地址;而MAC地址對(duì)于每個(gè)網(wǎng)絡(luò)設(shè)備都是唯一的。下面討論的配置方式是指如何將局域網(wǎng)內(nèi)部的IP地址和MAC地址配置給每個(gè)網(wǎng)口單元。
3 傳統(tǒng)靜態(tài)配置方法
根據(jù)項(xiàng)目的設(shè)計(jì)要求,首先要申請(qǐng)若干MAC地址,同時(shí)選定一些局域網(wǎng)內(nèi)部IP地址(由于是內(nèi)部以太網(wǎng),和外界是隔離的,IP地址也可任意選定)。然后將這些MAC地址和IP地址的信息固化在ROM中,由生產(chǎn)廠家生產(chǎn)這些ROM。ROM出廠后,將它們焊接在各嵌入式處理機(jī)板上進(jìn)行調(diào)試。這種方法有以下缺點(diǎn):
①根據(jù)MAC地址和IP地址的定義,每個(gè)處理機(jī)板上的以太網(wǎng)網(wǎng)口單元的MAC地址和IP地址是不一樣的。不能把相同的地址信息固化在不同的ROM當(dāng)中,因此每個(gè)ROM的信息不同,只能單獨(dú)制作,不能進(jìn)行批量生產(chǎn)。這樣一來(lái)就增加了成本,而且生產(chǎn)周期較長(zhǎng)。
②由于制作好的各嵌入式處理機(jī)板的網(wǎng)口單元的MAC地址和IP地址不同,調(diào)試各嵌入式處理機(jī)板時(shí)要區(qū)別對(duì)待。因此要根據(jù)不同的地址分別設(shè)置不同的配置信
息,這樣的調(diào)試過(guò)程復(fù)雜、工作效率低。
③在具體應(yīng)用中,為防止設(shè)備的損壞,備用設(shè)備是必不可少的,因此生產(chǎn)的嵌入式處理機(jī)板個(gè)數(shù)要多于實(shí)際需要的數(shù)量。因?yàn)樘幚頇C(jī)板上的網(wǎng)口單元個(gè)數(shù)要和處理機(jī)板個(gè)數(shù)相一致,所以需要申請(qǐng)的MAc地址數(shù)量也要和處理機(jī)板的生產(chǎn)數(shù)量相一致,要多于正常工作所需要的數(shù)量。如果工作中的處理機(jī)板都能工作正常,不需要使用備用處理機(jī)板,那樣分配給備用處理機(jī)板上的MAC地址資源就得不到應(yīng)用。當(dāng)工作中的處理機(jī)板出現(xiàn)問(wèn)題時(shí)需要使用備用板時(shí),有問(wèn)題的處理機(jī)板的MAC地址一樣不能得到應(yīng)用。因此多于工作所需數(shù)量的MAC地址必定得不到應(yīng)用而被浪費(fèi)。
針對(duì)以上問(wèn)題,對(duì)核心路由器項(xiàng)目分布式系統(tǒng)中的嵌入式處理機(jī)板的網(wǎng)口地址信息采用了動(dòng)態(tài)配置方法。
4 動(dòng)態(tài)配置方法
Flash的可擦寫性和非易失性在當(dāng)今的嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。由于ROM出廠時(shí)內(nèi)容已寫定,不能更改,因此復(fù)雜的嵌入式系統(tǒng)一般利用Flash的可擦寫性進(jìn)行系統(tǒng)的配置。由于單板模塊的復(fù)雜性,需要調(diào)整嵌入式處理機(jī)板的配置信息來(lái)保證其正常工作,因此,可以充分利用Flash的作用,將其和ROM的配置有效地結(jié)合起來(lái)。在分布式路由器中采取以下.MAC地址和IP地址的動(dòng)態(tài)配置方法:
①按照正常工作所需量申請(qǐng)MAC地址(與靜態(tài)配置相比,沒(méi)有備用的MAC地址),這樣資源可以得到有效利用。
②設(shè)置嵌入式處理機(jī)板嵌入式系統(tǒng)訪問(wèn)MAC地址和IP地址信息的順序。系統(tǒng)啟動(dòng)讀取ROM信息,當(dāng)讀到網(wǎng)口地址信息時(shí)轉(zhuǎn)到Flash中相關(guān)地址訪問(wèn),如果存在相關(guān)信息則讀??;如果Flash中沒(méi)有相關(guān)信息則讀取ROM中的地址信息,過(guò)程如圖2所示。
③從申請(qǐng)到的MAC地址中任選一個(gè),同時(shí)選一個(gè)局域網(wǎng)IP地址。將這些硬件信息和嵌入式系統(tǒng)訪問(wèn)MAC地址和IP地址順序的信息統(tǒng)一編程固化到各個(gè)ROM當(dāng)中,并成批量生產(chǎn)這些ROM。這樣可以有效降低成本,減少生產(chǎn)周期。
④將這些ROM分別焊接到各嵌入式處理機(jī)板上,并把處理機(jī)板上Flash中的相關(guān)MAC地址和IP地址信息置O,這樣處理機(jī)板就讀取ROM中的地址信息進(jìn)行配置。因?yàn)楦鱾€(gè)ROM中的MAC地址和IP地址信息相同,因此各處理機(jī)板的調(diào)試過(guò)程相同。這樣步驟一致,簡(jiǎn)單易行。
⑤處理機(jī)板調(diào)試完畢后,把申請(qǐng)到的MAC地址分配給各個(gè)單板模塊不同的處理機(jī)板的網(wǎng)口;同時(shí)選一些局域網(wǎng)IP地址,保證它們?cè)谝蕴W(wǎng)內(nèi)部是唯一的。然后可以通過(guò)調(diào)試工具(Linux下用Minicom,Windows下用遠(yuǎn)程終端)將已分配好的MAC地址和IP地址等硬件信息分別寫到工作中的各處理機(jī)板上的Flash中。通過(guò)以上分配方式,所有工作的處理機(jī)板都將自己Flash中的地址作為唯一的MAC地址和IP地址了。嵌入式系統(tǒng)啟動(dòng)時(shí)就讀到了分配給各自的地址信息。接下來(lái)就可以進(jìn)行處理機(jī)板和各單板模塊的綜合調(diào)試了。
⑥當(dāng)工作中的處理機(jī)板出現(xiàn)問(wèn)題需要使用備用處理機(jī)板時(shí),可以將出現(xiàn)問(wèn)題的處理機(jī)板上Flash中MAC地址和IP地址重新分配給備用的處理機(jī)板。這樣就有效地利用了所申請(qǐng)的MAC地址資源。
通過(guò)以上MAC地址和IP地址的動(dòng)態(tài)配置方法,可以有效地克服靜態(tài)配置方法中存在的各種問(wèn)題。相對(duì)于靜態(tài)配置方法,動(dòng)態(tài)配置方法結(jié)合了F1ash和ROM的靈活應(yīng)用,有以下優(yōu)點(diǎn):
①能成批量生產(chǎn)內(nèi)容一致的ROM,降低系統(tǒng)成本,減少生產(chǎn)周期。
②各個(gè)處理機(jī)板的調(diào)試步驟一致,簡(jiǎn)單易行。
③所申請(qǐng)的MAC地址得到有效的利用,節(jié)省地址資源。
5 結(jié) 語(yǔ)
分布式系統(tǒng)中MAC地址和IP地址動(dòng)態(tài)配置與靜態(tài)配置的根本區(qū)別在于F1ash的靈活應(yīng)用。隨著分布式系統(tǒng)的應(yīng)用日益廣泛和設(shè)計(jì)的日益復(fù)雜,動(dòng)態(tài)配置方法所提供的低生產(chǎn)成本、短生產(chǎn)周期和高地址資源利用率以及簡(jiǎn)公司提供的QHartus II和SOPC Builder開發(fā)工具可以在完成接口功能設(shè)計(jì)后,快速進(jìn)行系統(tǒng)的集成設(shè)計(jì)和系統(tǒng)仿真,最終可以在Altera提供的Cyclone系列芯片上實(shí)現(xiàn)整個(gè)系統(tǒng)設(shè)計(jì)。對(duì)Nios處理器重新編程可以在不改變系統(tǒng)硬件框架的基礎(chǔ)上,方便地增加系統(tǒng)的功能和處理效率,對(duì)系統(tǒng)的升級(jí)和再開發(fā)有很大的便利。
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5059文章
18973瀏覽量
302033 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170801 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7430瀏覽量
163515
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論