歐潔云
(中國(guó)移動(dòng)通信集團(tuán)廣東有限公司 中山分公司,中山 528400)
?
嵌入式設(shè)備中IPv6地址自動(dòng)配置的實(shí)現(xiàn)方法
歐潔云
(中國(guó)移動(dòng)通信集團(tuán)廣東有限公司 中山分公司,中山 528400)
在嵌入式技術(shù)領(lǐng)域中,支持IPv6的嵌入式設(shè)備將是一個(gè)嶄新的發(fā)展方向,地址自動(dòng)配置是嵌入式設(shè)備基于IPv6網(wǎng)絡(luò)互聯(lián)的關(guān)鍵方式之一。本文探討了無(wú)狀態(tài)和有狀態(tài)兩種自動(dòng)配置方式的運(yùn)作機(jī)理和過(guò)程,在嵌入式協(xié)議棧中設(shè)計(jì)并實(shí)現(xiàn)了兩種地址的自動(dòng)配置。
IPv6;無(wú)狀態(tài)地址自動(dòng)配置;有狀態(tài)地址自動(dòng)配置
隨著網(wǎng)絡(luò)的不斷發(fā)展,IPv4已經(jīng)不能滿足IP地址的大量需求,IPv6的128位地址空間解決了這一問(wèn)題,任何一個(gè)設(shè)備都可以獲得全球唯一IPv6地址,使所有的電子產(chǎn)品連接到Internet成為可能。同時(shí),隨著嵌入式技術(shù)的不斷發(fā)展,嵌入式設(shè)備的網(wǎng)絡(luò)互聯(lián)將成為IPv6新的研究和發(fā)展方向。其中,地址的自動(dòng)配置是嵌入式IPv6的關(guān)鍵技術(shù)之一,每個(gè)嵌入式設(shè)備網(wǎng)絡(luò)的通信都是基于IP地址的,配置方式有手工和自動(dòng)兩種。手工配置IP,地址配置后一般固定,因此當(dāng)網(wǎng)絡(luò)中增加設(shè)備或設(shè)備從一個(gè)子網(wǎng)移動(dòng)到另一個(gè)子網(wǎng)的時(shí)候,容易發(fā)生地址重復(fù)或地址不屬于該子網(wǎng)問(wèn)題。自動(dòng)配置IP則根據(jù)網(wǎng)絡(luò)實(shí)際情況為設(shè)備動(dòng)態(tài)分配地址,具有靈活的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和即插即用的特點(diǎn),是IPv6地址配置研究的重點(diǎn)。
IPv6的地址自動(dòng)配置有兩種方式:無(wú)狀態(tài)地址自動(dòng)配置和有狀態(tài)地址自動(dòng)配置。
1.1 無(wú)狀態(tài)地址自動(dòng)配置
在無(wú)狀態(tài)地址自動(dòng)配置的方式下,網(wǎng)絡(luò)接口接收路由器發(fā)出的路由前綴宣告報(bào)文,從報(bào)文中取出前綴,結(jié)合接口ID得到一個(gè)可聚集全局單播地址。接口ID長(zhǎng)度為64位,由48位的以太網(wǎng)MAC地址根據(jù)EUI-64轉(zhuǎn)換得到[1]。其算法如圖1所示。
圖1 EUI-64算法
1.2 有狀態(tài)地址自動(dòng)配置
有狀態(tài)地址自動(dòng)配置是通過(guò)DHCPv6(Dynamic Host Configuration Protocol for IPv6)[2],即動(dòng)態(tài)主機(jī)配置協(xié)議實(shí)現(xiàn)的。DHCPv6系統(tǒng)包括DHCP服務(wù)器、DHCP客戶端和DHCP中繼三部分組成??蛻舳?、服務(wù)器、中繼之間通過(guò)UDP協(xié)議來(lái)交換消息。地址獲取的消息交換過(guò)程如下:為了請(qǐng)求分配一個(gè)或多個(gè)IPv6地址,客戶端會(huì)向服務(wù)器多播地址發(fā)送一個(gè)Solicit消息來(lái)尋找可用的DHCP服務(wù)器,任何符合請(qǐng)求的服務(wù)器會(huì)返回一個(gè)Advertise消息應(yīng)答??蛻舳诉x擇其中一個(gè)并向其發(fā)送Request消息來(lái)請(qǐng)求分配IP地址和其他網(wǎng)絡(luò)配置信息,服務(wù)器以Reply消息應(yīng)答,消息中將包含分配給客戶端的確認(rèn)地址和網(wǎng)絡(luò)配置信息。當(dāng)客戶端與服務(wù)器不在同一鏈路上時(shí),他們之間的初始化信息轉(zhuǎn)發(fā)將由DHCP中繼完成。每一個(gè)分配給客戶端的地址都有服務(wù)器指定的更新和有效時(shí)間,完成上述的初始化工作后,為了延長(zhǎng)地址的租用時(shí)間,到了更新時(shí)間,客戶端需向服務(wù)器發(fā)送一個(gè)Renew消息來(lái)延長(zhǎng)地址租期。服務(wù)器將返回一個(gè)Reply消息應(yīng)答,消息包含地址的更新時(shí)間,以允許客戶端不中斷地使用此地址。若過(guò)了有效時(shí)間而客戶端沒(méi)有更新地址時(shí)間,客戶端需向服務(wù)器重新申請(qǐng)地址分配。
1.3 兩種自動(dòng)配置方式的比較
兩種地址自動(dòng)配置都能實(shí)現(xiàn)節(jié)點(diǎn)的即插即用功能,對(duì)IP的移動(dòng)性提供了支持。他們的主要區(qū)別是:通過(guò)無(wú)狀態(tài)自動(dòng)配置,設(shè)備可以直接從路由器宣告前綴和接口ID直接構(gòu)造地址,無(wú)需配置界面,實(shí)現(xiàn)簡(jiǎn)單,但不能獲取其他的網(wǎng)絡(luò)配置信息(如DNS),而有狀態(tài)地址自動(dòng)配置必須有相應(yīng)的DHCPv6服務(wù)器提供支持,除了申請(qǐng)到全局的IPv6地址外,還可以得到DNS、SIP等配置。對(duì)于網(wǎng)絡(luò)的安全性問(wèn)題,在無(wú)狀態(tài)配置中,任意節(jié)點(diǎn)都可以通過(guò)本地鏈路連接路由器獲取網(wǎng)絡(luò)和子網(wǎng)信息,并構(gòu)造IP地址達(dá)到偽地址攻擊的目的,因此安全性比較低。而通過(guò)有狀態(tài)配置,網(wǎng)絡(luò)管理員可通過(guò)對(duì)DHCPv6進(jìn)行配置,只有合法的節(jié)點(diǎn)才能通過(guò)配置,同時(shí)可以對(duì)節(jié)點(diǎn)進(jìn)行更好的管理。
嵌入式設(shè)備嵌入了裁剪的IPv6協(xié)議棧,在此基礎(chǔ)上分別實(shí)現(xiàn)了無(wú)狀態(tài)和有狀態(tài)地址自動(dòng)配置的功能。
2.1 無(wú)狀態(tài)地址自動(dòng)配置的實(shí)現(xiàn)
在無(wú)狀態(tài)地址自動(dòng)配置中,協(xié)議棧主要進(jìn)行兩種報(bào)文的處理: Router Solicitation(路由請(qǐng)求)和Router Advertisement(路由宣告)[3]。RS報(bào)文用于促使和節(jié)點(diǎn)同一鏈路的路由器發(fā)送RA報(bào)文,RA報(bào)文包含有宣告的前綴信息和可用時(shí)間。兩種報(bào)文的包格式如圖2和圖3所示。
圖2 Router Solicitation報(bào)文結(jié)構(gòu)
圖3 Router Advertisement報(bào)文結(jié)構(gòu)
協(xié)議棧接收RA報(bào)文后取出前綴和可用時(shí)間,判斷前綴合法性,合法則使用前綴和接口ID構(gòu)造IP地址,若該全球IP地址在地址鏈中沒(méi)有,把該地址和可用時(shí)間保存在接口地址鏈中,同時(shí)構(gòu)造該地址的組播地址,方法為:前綴ff02:01::,后24位為接口ID的后24位,然后發(fā)送Multicast Listener Discovery(MLD,多播監(jiān)聽(tīng)發(fā)現(xiàn))報(bào)文,該報(bào)文作用是向路由器通告加入組,以接收發(fā)送該組的報(bào)文。報(bào)文中的組播地址為上述所構(gòu)造的組播地址,若地址已存在,則更新地址時(shí)間。工作流程如圖4所示。
圖4 工作流程圖
2.2 有狀態(tài)地址自動(dòng)配置的實(shí)現(xiàn)
嵌入式設(shè)備實(shí)現(xiàn)有狀態(tài)地址自動(dòng)配置時(shí),協(xié)議棧需要實(shí)現(xiàn)DHCPv6客戶端協(xié)議[4]。DHCPv6客戶端系統(tǒng)組成如圖5所示。其中:
圖5 系統(tǒng)結(jié)構(gòu)圖
① 配置信息文件,主要提供配置客戶端工作模式選項(xiàng)。配置文件形式為:
iface number{
interface options
IA option
address options
}
其中,number為需配置的接口號(hào)(即說(shuō)明配置哪個(gè)接口),里面的內(nèi)容分別配置不同范圍的選項(xiàng)信息;interface options主要說(shuō)明接口需要服務(wù)器提供哪些網(wǎng)絡(luò)信息,如DNS等;IA 為邏輯接口地址域,主要說(shuō)明每個(gè)邏輯接口地址信息配置要求;address options主要向服務(wù)器說(shuō)明分配地址的要求,例如需要IP地址210.29.98.104,則在address options選項(xiàng)中說(shuō)明。
② 網(wǎng)絡(luò)接收發(fā)送處理模塊,負(fù)責(zé)發(fā)送和接收來(lái)自網(wǎng)絡(luò)上層的DHCP消息包,并存放在消息隊(duì)列中。
③ 消息隊(duì)列,存放接收和將要發(fā)送的消息,等待處理。
④ 控制模塊,負(fù)責(zé)DHCP消息的交換和協(xié)調(diào)上下模塊,其中DHCP消息接收模塊由2個(gè)子模塊組成,DHCP消息發(fā)送模塊由6個(gè)子模塊組成,負(fù)責(zé)處理不同的消息。
⑤ 定時(shí)器模塊,客戶端從DHCP服務(wù)器獲得分配地址的同時(shí)將得到該地址的更新期和有效期,定時(shí)器根據(jù)這些時(shí)間對(duì)地址作相應(yīng)處理,主要操作有:分配地址后開(kāi)啟定時(shí)器;更新期到向DHCP服務(wù)器發(fā)送Renew消息續(xù)租地址;若有效期到而地址沒(méi)有續(xù)租,則發(fā)送Release消息釋放地址,并向新DHCP服務(wù)器發(fā)送地址請(qǐng)求消息。
實(shí)現(xiàn)過(guò)程為:系統(tǒng)啟動(dòng)后,根據(jù)dhcpflag標(biāo)志量決定是否執(zhí)行有狀態(tài)地址自動(dòng)配置,若dhcpflay為1,則進(jìn)入配置模塊,根據(jù)配置信息產(chǎn)生消息。系統(tǒng)先由隨機(jī)數(shù)產(chǎn)生消息ID,填寫(xiě)到Solicit包頭的transaction-id,發(fā)送消息同時(shí)開(kāi)啟定時(shí)器。在RT(retransmit timeout)時(shí)間內(nèi),若收到服務(wù)器相應(yīng)回復(fù)的Advertise消息,則關(guān)閉RT計(jì)時(shí)并產(chǎn)生Request消息,否則重新發(fā)送Solicit消息并重啟RT定時(shí)器。在嵌入式系統(tǒng)中為了簡(jiǎn)化實(shí)現(xiàn),系統(tǒng)不采取選擇最優(yōu)服務(wù)器策略,而轉(zhuǎn)為選擇最先回復(fù)的服務(wù)器,然后向該服務(wù)器發(fā)送Request消息,消息包含一個(gè)或多個(gè)IA的配置要求信息。服務(wù)器根據(jù)接收到的Request消息里的配置需求信息回復(fù)Reply消息,消息包含分配的地址和網(wǎng)絡(luò)信息。
[1] 華為3Com技術(shù)有限公司.IPv6技術(shù)[M].北京:清華大學(xué)出版社,2004.
[2] RFC3315,DHCPv6,2003.
[3] RFC2463,IPv6,1998.
[4] 王平,黃惟一.在智能儀器網(wǎng)絡(luò)中實(shí)現(xiàn)DHCP動(dòng)態(tài)IP地址分配[J].工業(yè)儀表與自動(dòng)化裝置,2004(1):39-41.
歐潔云(高級(jí)技師),主要研究方向?yàn)楸镜貍鬏斁W(wǎng)、寬帶接入網(wǎng)、IP城域網(wǎng)。
Method of Address Auto-configuration of IPv6 in Embedded Device
Ou Jieyun
(Zhongshan Branch,Guangdong Mobile Communication Co.,Ltd.,Zhongshan 528400,China)
The embedded device supporting IPv6 will be a new direction of development,and the address auto-configuration is one key problem in the network connection of embedded devices based on IPv6.After researching the operating mechanism and processing of the stateless and state address auto-configuration,the design and implementation of them are presented in this paper.
IPv6;stateless address auto-configuration;state address auto-configuration
TP315
A
?士然
2016-07-18)