• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
    CAIAC 2025
    2025工業(yè)安全大會(huì)
    OICT公益講堂
    當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

    案例頻道

    在嵌入式設(shè)備上實(shí)現(xiàn)IPv6網(wǎng)絡(luò)的接入
    • 企業(yè):控制網(wǎng)     領(lǐng)域:機(jī)器視覺(jué)    
    • 點(diǎn)擊數(shù):1367     發(fā)布時(shí)間:2005-09-12 10:33:06
    • 分享到:



      引 言

      向下一代互聯(lián)網(wǎng)過(guò)渡的進(jìn)程已經(jīng)開(kāi)始。IPv6作為下一代互聯(lián)網(wǎng)的核心協(xié)議,能夠提供幾乎無(wú)限的地址空間,從根本上克服了IPv4中地址空間不足的問(wèn)題,也為在不遠(yuǎn)的將來(lái)把數(shù)量眾多的嵌入式設(shè)備接入網(wǎng)絡(luò)創(chuàng)造了條件。Linux的內(nèi)核從2.4版就已經(jīng)開(kāi)始支持IPv6,同時(shí),Linux作為開(kāi)源的操作系統(tǒng),也便于向不同的硬件平臺(tái)移植。由于現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施運(yùn)行的大都是IPv4協(xié)議棧,選擇隧道方式接入IPv6網(wǎng)絡(luò),是一種充分利用現(xiàn)有設(shè)備的過(guò)渡手段。基于以上原因,本文選用支持IPv6的Linux內(nèi)核,通過(guò)隧道方式把基于ARM的嵌入式設(shè)備接入IPv6網(wǎng)絡(luò)。

      1 編譯支持IPv6的Linux內(nèi)核

      本文所用的硬件環(huán)境是Xscale的Sitsang開(kāi)發(fā)板。要向ARM核的CPU移植Linux,首先要準(zhǔn)備交叉編譯環(huán)境,包括armlinuxgcc、armlinuxld、armlinuxas,以便在PC機(jī)上編譯可運(yùn)行于ARM核CPU的目標(biāo)代碼。實(shí)驗(yàn)選用的Linux內(nèi)核源碼包是linux2.4.19.tar.bz2,另外還有一個(gè)針對(duì)Sitsang 板的內(nèi)核補(bǔ)丁(包括驅(qū)動(dòng)程序)patch2.4.19sitsang2.gz。以下是編譯支持IPv6的Linux內(nèi)核的過(guò)程。

      (1) 解開(kāi)源碼包并打?qū)S醚a(bǔ)丁

      #tar jvxf linux-2.4.19.tar.bz2
      #ln -s linux-2.4.19 linux
      #gzip -dc patch-2.4.19-sitsang2.gz | patch -p0
     
      上述第2行命令建立符號(hào)鏈接,是為了第3行命令對(duì)Linux的標(biāo)準(zhǔn)內(nèi)核進(jìn)行打補(bǔ)丁的操作。

      (2) 配置編譯選項(xiàng)

      現(xiàn)在得到的Linux內(nèi)核版本是支持IPv6的,但是支持IPv6的模塊默認(rèn)并不是編譯入內(nèi)核的。在make menuconfig的時(shí)候,注意把Network Options下有關(guān)IPv6和隧道(tunnel)的模塊選為內(nèi)核模式,以便得到所需要的內(nèi)核文件。其他選項(xiàng)不需要更改。

      (3) 編譯內(nèi)核

      #make dep

      #make zImage
      #make modules

      以上命令分別表示建立內(nèi)核中各模塊的依賴關(guān)系,編譯內(nèi)核,編譯驅(qū)動(dòng)模塊。編譯無(wú)誤,就在../linux/arch/arm/boot/目錄下得到了所需的Linux內(nèi)核文件zImage。

      已經(jīng)有了支持IPv6的內(nèi)核,接下來(lái)的工作是把啟動(dòng)程序和內(nèi)核文件外加一個(gè)精簡(jiǎn)的文件系統(tǒng)燒錄到開(kāi)發(fā)板上去,開(kāi)發(fā)板就可以啟動(dòng)了。關(guān)于如何燒錄啟動(dòng)程序、內(nèi)核和文件系統(tǒng)并不是本文的主要內(nèi)容,可參看其他嵌入式系統(tǒng)開(kāi)發(fā)的資料。

      2 重新編譯工具程序

      配置和測(cè)試網(wǎng)絡(luò)環(huán)境需要ifconfig、ping、traceroute等工具程序。上面的精簡(jiǎn)文件系統(tǒng)并沒(méi)有包括以上工具程序支持IPv6的版本,如ping6、traceroute6等,因此需要重新編譯包含這些工具程序的源碼包nettools和netutils。注意選用版本較新的源碼包,以確保其支持IPv6。將源碼包解開(kāi)后,修改其Makefile文件,使之使用交叉編譯工具鏈編譯和鏈接,生成所需的目標(biāo)代碼。將編譯生成的在ARM核的CPU上可執(zhí)行的文件ifconfig、ping6和traceroute6拷貝到嵌入式設(shè)備文件系統(tǒng)的相應(yīng)位置,以備下面的配置和測(cè)試時(shí)使用。

      3 配置隧道將嵌入式設(shè)備接入IPv6網(wǎng)絡(luò)

      首先到以下地址申請(qǐng)一段IPv6的地址:http://knight.6test.edu.cn/tb/html/。在頁(yè)面中點(diǎn)擊“Register”,填寫(xiě)用戶名、Email和所需的Subnet Prefix Length(64/128),提交之后就得到了一段IPv6地址。要開(kāi)始使用這段申請(qǐng)到的地址,還得點(diǎn)擊頁(yè)面中的“Activate the tunnel”鏈接加以激活。假設(shè)申請(qǐng)到的地址是3ffe:321f:0:775::/64,Tunnel Broker Server的地址是202.38.99.9,下面就開(kāi)始配置隧道。

      由于上面申請(qǐng)到的地址需要激活才能使用,而對(duì)于一些沒(méi)有圖形界面的嵌入式設(shè)備通過(guò)Web方式激活不方便;另外,由于與Tunnel Broker Server直接隧道連接需要一個(gè)獨(dú)立的IPv4地址,而申請(qǐng)到的地址總量巨大(64位地址總量達(dá)2的64次方),為避免浪費(fèi),本文采取了用一臺(tái)PC機(jī)與Tunnel Broker Server連接充當(dāng)IPv6網(wǎng)關(guān),而包括Sitsang開(kāi)發(fā)板在內(nèi)的其他設(shè)備通過(guò)網(wǎng)關(guān)接入的辦法。

      實(shí)驗(yàn)中,作為網(wǎng)關(guān)的PC機(jī)運(yùn)行的是RedHat Linux 9,有兩塊網(wǎng)卡,IPv4地址分別是166.111.249.184(eth0)和192.168.1.184(eth1),Sitsang開(kāi)發(fā)板有一個(gè)以太網(wǎng)口,IPv4地址是192.168.2.231(eth0),默認(rèn)網(wǎng)關(guān)是192.168.2.184。IPv4的路由已設(shè)置好,即Sitsang開(kāi)發(fā)板已經(jīng)能ping通外部的IPv4網(wǎng)絡(luò)。

      (1) 建立網(wǎng)關(guān)與Tunnel Broker Server的隧道

      在網(wǎng)關(guān)PC機(jī)上執(zhí)行以下命令:

      #insmod ipv6

      #iptunnel add sit1 mode sit remote 202.38.99.9 local 166.111.249.184

      #ifconfig sit1 up

      #ifconfig sit1 inet6 add 3ffe:321f:0:775::1/128

      #route

    熱點(diǎn)新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: