《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于OpenWrt的6LoWPAN邊界路由器的實現(xiàn)
基于OpenWrt的6LoWPAN邊界路由器的實現(xiàn)
2017年電子技術(shù)應用第6期
吉福生1,2,王亞琛1,2,華 磊1,2
1.重慶郵電大學 通信與信息工程學院,重慶400065;2.重慶高校市級光通信與網(wǎng)絡重點實驗室,重慶400065
摘要: OpenWrt作為一個高度模塊化、自動化的嵌入式Linux系統(tǒng),擁有強大的網(wǎng)絡組建和擴展性?;谠撓到y(tǒng),提出了一種6LoWPAN邊界路由器的設計方案。通過在邊界路由器上分別搭建兩種協(xié)議棧,實現(xiàn)對于IPv6和6LoWPAN網(wǎng)絡的接入;之后在協(xié)議棧之間建立SLIP通道,實現(xiàn)兩種異構(gòu)網(wǎng)絡之間的通信。借助OpenWrt系統(tǒng)強大的路由功能和包管理機制,該邊界路由器可以直接接入IPv6網(wǎng)絡,并具備極強的拓展性。
中圖分類號: TN923
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.017
中文引用格式: 吉福生,王亞琛,華磊. 基于OpenWrt的6LoWPAN邊界路由器的實現(xiàn)[J].電子技術(shù)應用,2017,43(6):68-70,74.
英文引用格式: Ji Fusheng,Wang Yachen,Hua Lei. The realize of border router in 6LoWPAN based on OpenWrt[J].Application of Electronic Technique,2017,43(6):68-70,74.
The realize of border router in 6LoWPAN based on OpenWrt
Ji Fusheng1,2,Wang Yachen1,2,Hua Lei1,2
1.School of Telecommunication and Information,Chongqing University of Posts and Telecommunications,Chongqing 400065,China; 2.Optical Communication and Network Key Laboratory of Chongqing,Chongqing 400065,China
Abstract: OpenWrt is a highly modular and automatic embedded Linux system. It includes effective network components for network forming and extensibility. Based on OpenWrt, a design scheme of the 6LoWPAN border router is presented. In order to gain access to both IPv6 and 6LoWPAN, two kinds of protocol are designed respectively on the border router. Through the establishment of a SLIP channel between two protocol stacks,communication between the heterogeneous networks is realized. Owing to the powerful routing function and strong packet management mechanism of OpenWrt system, this border router has direct access to IPv6 network and its scalability is good.
Key words : OpenWrt;6LoWPAN border router;6LoWPAN;IPv6

0 引言

    6LoWPAN作為WSN和IPv6技術(shù)結(jié)合的產(chǎn)物,既繼承了IPv6巨大地址空間的優(yōu)勢,又滿足了無線傳感網(wǎng)低功耗的要求,受到了越來越多無線傳感器網(wǎng)絡使用者的喜愛[1]。就6LoWPAN網(wǎng)絡自身特性而言,它應當和某些外部網(wǎng)絡互連,使外部網(wǎng)絡可以監(jiān)測和控制6LoWPAN網(wǎng)絡才具有更實際的意義。而IP網(wǎng)絡作為目前的主流網(wǎng)絡,如何實現(xiàn)該網(wǎng)絡與6LoWPAN網(wǎng)絡的連通,是目前亟待解決的問題。

    OpenWrt作為一個功能強大的開源路由器Linux系統(tǒng),用戶可以很方便地對其進行定制、優(yōu)化,從而實現(xiàn)自己的功能需求[2]。本文設計的基于OpenWrt的6LoWPAN邊界路由器,成功解決了6LoWPAN網(wǎng)絡與IP網(wǎng)絡之間異構(gòu)網(wǎng)絡互通的問題,對于無線傳感網(wǎng)的發(fā)展及促進異構(gòu)網(wǎng)絡之間的無縫融合具有深遠的意義。

1 系統(tǒng)架構(gòu)

    6LoWPAN邊界路由器作為連接IPv6網(wǎng)絡和6LoWPAN網(wǎng)絡的橋梁,需要同時提供兩種網(wǎng)絡的接入功能,以及數(shù)據(jù)包在兩種不同網(wǎng)絡之間的轉(zhuǎn)發(fā)和路由。本文設計的6LoWPAN邊界路由器的系統(tǒng)架構(gòu)如圖1所示,主要包括底層硬件、設備驅(qū)動、操作系統(tǒng)及上層應用等幾部分。

qrs3-t1.gif

    該邊界路由器通過自身的以太網(wǎng)接口與IPv6網(wǎng)絡進行通信,而與6LoWPAN網(wǎng)絡之間的通信,則通過基于IEEE802.15.4的射頻模塊來實現(xiàn)。系統(tǒng)拓撲如圖2所示。

qrs3-t2.gif

2 系統(tǒng)硬件設計

    6LoWPAN邊界路由器主要用來幫助一些能力受限的6LoWPAN節(jié)點接入IPv6網(wǎng)絡,基于以上目的,該邊界路由設備在硬件設計上需具備較好的協(xié)議執(zhí)行能力和一定的處理能力[3]。本文設計的6LoWPAN邊界路由器的硬件結(jié)構(gòu)設計如圖3所示,主要包括以太網(wǎng)接入部分和6LoWPAN網(wǎng)絡接入部分,兩部分之間通過串口連接。

qrs3-t3.gif

    以太網(wǎng)接入部分主控芯片選用的是臺灣雷凌(Ralink)科技公司推出的一款高集成低成本SOC芯片RT5350F。該芯片是一顆高性能的MIPS 24Kc CPU內(nèi)核,最高主頻為360 MHz,較高的主頻保證了一定的處理能力。除此之外,該部分采用16 MB Flash閃存作為程序存儲器,采用32 MB的16 bit SDRAM作為內(nèi)存,可以嵌入完整的TCP/IP網(wǎng)絡協(xié)議,實現(xiàn)強大的網(wǎng)絡通信功能,同時還能有足夠的空間用于安裝程序以及依賴庫,滿足用戶的功能擴展需求。

    由于RT5350只提供了IEEE802.11協(xié)議的射頻接口,而6LoWPAN協(xié)議目前是建立在IEEE802.15.4標準上,所以需要采用其他芯片來提供6LoWPAN網(wǎng)絡接入的功能支持。本文采用以CC2530F256芯片為主的射頻接入模塊及其外部功能拓展電路,提供向6LoWPAN網(wǎng)絡的接入。

3 系統(tǒng)軟件設計

    為實現(xiàn)兩種異構(gòu)網(wǎng)絡的互連,邊界路由器必須同時具有IPv6和6LoWPAN標準。雖然6LoWPAN協(xié)議是由IPv6協(xié)議轉(zhuǎn)變而來,但該協(xié)議具有自己的特殊性:它包含一個適配層來實現(xiàn)IP數(shù)據(jù)包在IEEE 802.15.4鏈路上的傳輸[4]

    由于IPv6數(shù)據(jù)包的最大傳輸單元為1 280 B,而IEEE802.15.4定義MAC層的每一幀的長度為127 B,這樣就會造成IPv6數(shù)據(jù)報和IEEE802.15.4幀在長度上的不匹配,許多IPv6數(shù)據(jù)包不能完整地放進一個IEEE802.15.4幀中進行傳輸[5]。為了解決這一問題,IPv6數(shù)據(jù)包需要在適配層進行分片和重組,同時還要對數(shù)據(jù)包的頭部進行壓縮,以適應IEEE802.15.4幀的大小[6]。

    根據(jù)以上情況,對6LoWPAN邊界路由器協(xié)議棧部分進行了如圖4所示的設計:先分別實現(xiàn)IPv6和6LoWPAN協(xié)議棧,然后通過SLIP(Serial Line Internet Protocol)協(xié)議在兩種協(xié)議棧間建立一個串行通信鏈路,讓兩種異構(gòu)網(wǎng)絡能夠通過該鏈路進行IP數(shù)據(jù)報的傳輸,從而實現(xiàn)兩種異構(gòu)網(wǎng)絡之間的通信。

qrs3-t4.gif

3.1 IPv6接入模塊

    該模塊的建立主要采用OpenWrt操作系統(tǒng)來完成。該系統(tǒng)使用uClibc、busybox和shell解釋器等,通過嵌入式Linux工具,提供硬件抽象層和軟件包管理,系統(tǒng)的內(nèi)部組成如圖5所示。用戶只需要重新編譯uClibc和軟件包以匹配目標架構(gòu),從而獲得在不同嵌入式設備上相同的應用程序。鑒于OpenWrt嵌入式系統(tǒng)的諸多優(yōu)點,它非常適合應用于IP網(wǎng)絡接入模塊。

qrs3-t5.gif

3.2 6LoWPAN接入模塊

    6LoWPAN接入模塊主要是基于Contiki操作系統(tǒng)實現(xiàn),該系統(tǒng)作為一個可以高度移植、支持多任務環(huán)境并且開源免費的嵌入式操作系統(tǒng),非常適合用于6LoWPAN接入模塊的設計。該系統(tǒng)的軟件結(jié)構(gòu)如圖6所示,主要由三部分組成:uIP協(xié)議棧、Rime協(xié)議棧和上層應用程序。

qrs3-t6.gif

    uIP是一個小型的符合RFC規(guī)范的TCP/IP協(xié)議棧,使得Contiki可以直接和Internet通信。uIP協(xié)議棧主要任務是處理由底層驅(qū)動收到的數(shù)據(jù)包,或者將需要轉(zhuǎn)發(fā)的數(shù)據(jù)包交由底層設備驅(qū)動來實現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)[7]。而其包含的網(wǎng)絡層RPL(IPv6 Routing Protocol for Low-Power and Lossy Network)協(xié)議,則提供了6LoWPAN的組網(wǎng)功能。

    MAC層的Rime是一個輕量級的、為低功耗無線傳感器網(wǎng)絡設計的協(xié)議棧,該協(xié)議棧提供了大量的通信原語,能夠?qū)崿F(xiàn)從簡單的一跳廣播通信到復雜的可靠多跳數(shù)據(jù)傳輸?shù)韧ㄐ殴δ?sup>[8]。

    上層應用程序主要包括橋接程序和邊界路由程序。前者用于通過SLIP串口實現(xiàn)數(shù)據(jù)包向RPL接口的轉(zhuǎn)發(fā),它是RPL數(shù)據(jù)收發(fā)轉(zhuǎn)換的中間層。后者負責向IP接入模塊請求本節(jié)點的子網(wǎng)前綴,初始化6LoWPAN接入模塊,并定時維護組建的6LoWPAN網(wǎng)絡。

3.3 兩種協(xié)議棧之間通道的建立

    兩個協(xié)議棧之間通道的建立主要借助tun虛擬網(wǎng)卡驅(qū)動和SLIP協(xié)議來實現(xiàn)。其中,tun虛擬網(wǎng)卡驅(qū)動主要用來接收來自TCP/IP協(xié)議棧的網(wǎng)絡數(shù)據(jù)包并發(fā)送,或者反過來將接收到的網(wǎng)絡數(shù)據(jù)包傳給協(xié)議棧處理;同時該部分還要承擔在點對點設備傳輸過程中,對數(shù)據(jù)包進行相應封裝的任務。至于封裝格式,主要由點對點設備傳輸方式?jīng)Q定,本文采用的是SLIP協(xié)議,是在鏈路層上傳輸?shù)拇芯€路網(wǎng)際協(xié)議,主要對要傳輸?shù)腎P數(shù)據(jù)包進行簡單的封裝,即加上相應的頭部和尾部,并對數(shù)據(jù)包進行適當?shù)男薷模乐诡^部和尾部的誤判。 

    以上通道的建立主要在OpenWrt系統(tǒng)上實現(xiàn),通過一個tunslip6程序來建立相應的虛擬網(wǎng)卡和SLIP封裝。具體的SLIP通道處理數(shù)據(jù)的流程可以用圖7來描述。

qrs3-t7.gif

3.4 整個邊界路由的運行過程

    當邊界路由器的射頻接口接收到了6LoWPAN子網(wǎng)發(fā)送來的比特流后, 先需要經(jīng)過適配層對數(shù)據(jù)包進行分片整合,整合成一個完整的IPv6數(shù)據(jù)包。之后傳遞到網(wǎng)絡層,經(jīng)由RPL路由協(xié)議判定數(shù)據(jù)包的目的地址是否是在6LoWPAN網(wǎng)絡中。如果是,則轉(zhuǎn)發(fā)數(shù)據(jù)包到6LoWPAN網(wǎng)絡中;如果不是,則繼續(xù)判斷數(shù)據(jù)包的目的地址前綴是否屬于6LoWPAN網(wǎng)絡。如果屬于,則因為沒有目的端的路由,丟棄;如果不屬于,則轉(zhuǎn)發(fā)到IPv6接入模塊。在IPv6接入模塊中,先判斷是否存在目的地址的路由,如果存在,則直接發(fā)送到相應的IPv6主機;如果不存在目的端的路由,則應進行鄰居發(fā)現(xiàn)操作,根據(jù)結(jié)果對數(shù)據(jù)包做出相應處理。整個過程如圖8所示。

qrs3-t8.gif

    該邊界路由器對以太網(wǎng)數(shù)據(jù)幀的處理流程與上述處理6LoWPAN數(shù)據(jù)包的過程相反,本文不再贅述。

4 測試

    為了驗證本文設計的6LoWPAN邊界路由器是否能夠連通IPv6網(wǎng)絡和6LoWPAN網(wǎng)絡,進行了連通性測試。測試過程中除了邊界路由器外,還包括兩個6LoWPAN傳感器節(jié)點和一臺IPv6主機。

    首先放置兩個傳感器節(jié)點在離邊界路由器10 m左右距離的位置,邊界路由器通過LAN口和IPv6主機連接。由于實驗室沒有提供IPv6網(wǎng)絡的接入,所以邊界路由器的WAN口暫不使用。之后在IPv6主機上分別對兩個傳感器節(jié)點進行ping命令測試。從測試結(jié)果可以看出,響應時間在30 ms內(nèi),并且數(shù)據(jù)包無丟失,能夠保證IPv6網(wǎng)絡和6LoWPAN網(wǎng)絡的數(shù)據(jù)的轉(zhuǎn)發(fā)和路由。

5 結(jié)論

    本文提出了一種基于OpenWrt操作系統(tǒng)的6LoWPAN邊界路由器的實現(xiàn)方法,通過在邊界路由器上分別實現(xiàn)兩種協(xié)議棧,并在協(xié)議棧之間建立SLIP通道來實現(xiàn)數(shù)據(jù)包在兩種異構(gòu)網(wǎng)絡之間的轉(zhuǎn)發(fā)和路由。通過對邊界路由器進行ping命令的測試,證明該方案是可行的,能夠?qū)崿F(xiàn)6LoWPAN網(wǎng)絡和IPv6網(wǎng)絡主機之間的通信。而在現(xiàn)實應用中,可以作為物聯(lián)網(wǎng)設備接入互聯(lián)網(wǎng)的中間網(wǎng)關設備隨著物聯(lián)網(wǎng)設備的大量使用,該設備具有廣闊的應用前景。

參考文獻

[1] 錢志鴻,王義君.面向物聯(lián)網(wǎng)的無線傳感器網(wǎng)絡綜述[J].電子與信息學報,2013,35(1):215-227.

[2] 曹為華,凌強,張雷,等.基于OpenWrt系統(tǒng)路由器的模式切換與網(wǎng)頁設計[J].微型機與應用,2015,34(23):91-94.

[3] 田廣東,葉鑫.基于Contiki的6LoWPAN邊界路由器的設計[J].電子技術(shù)應用,2016,42(3):61-63.

[4] 梁少剛,周小龍.6LoWPAN邊界路由器應用研究與實現(xiàn)[J].廣東通信技術(shù),2015,35(1):22-26.

[5] Zach Shelby,Samita Charabarti.Neighbor discovery optimization for IPv6 over low-power wireless personal area networs[S].IETF,RFC6775,2012.

[6] 張效奎.物聯(lián)網(wǎng)中輕量級IPv6協(xié)議的研究與應用[D].上海:東華大學,2013.

[7] 李鳳國.基于6LoWPAN的無線傳感器網(wǎng)絡研究與實現(xiàn)[D].南京:南京郵電大學,2013.

[8] SHELBY Z,CHAKRABARTI S,NORDMARK E,et al.Neighbor discovery optimization for IPv6 over low-power wireless personal area networks(6Lo WPANs)[S].IETF,RFC6775,2012.



作者信息:

吉福生1,2,王亞琛1,2,華  磊1,2

(1.重慶郵電大學 通信與信息工程學院,重慶400065;2.重慶高校市級光通信與網(wǎng)絡重點實驗室,重慶400065)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。