国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式Linux系統(tǒng)的無(wú)線路由器設(shè)計(jì)

2017-02-14 10:25:15劉耀義
科技與創(chuàng)新 2016年21期

劉耀義

摘 要:嵌入式系統(tǒng)技術(shù)具有專(zhuān)用性強(qiáng)、系統(tǒng)精簡(jiǎn)等優(yōu)點(diǎn),具有非常廣闊的應(yīng)用前景,其中,嵌入式Linux系統(tǒng)在許多領(lǐng)域得到了廣泛的應(yīng)用。對(duì)基于嵌入式Linux系統(tǒng)的無(wú)線路由器設(shè)計(jì)進(jìn)行了詳細(xì)的介紹,提出了一種基于嵌入式Linux系統(tǒng)的無(wú)線路由器設(shè)計(jì)方案。

關(guān)鍵詞:Linux;hostapd;DHCP服務(wù)器;無(wú)線路由器

中圖分類(lèi)號(hào):TP316.81 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.15913/j.cnki.kjycx.2016.21.112

近年來(lái),科學(xué)技術(shù)取得了巨大的進(jìn)步,計(jì)算機(jī)及互聯(lián)網(wǎng)產(chǎn)業(yè)也得到了迅猛的發(fā)展,且對(duì)我國(guó)國(guó)民經(jīng)濟(jì)的發(fā)展起到了推動(dòng)作用。其中,嵌入式Linux系統(tǒng)具有性能優(yōu)異、軟件移植容易以及實(shí)時(shí)性能、穩(wěn)定性能、安全性能良好等優(yōu)點(diǎn),在許多領(lǐng)域得到了廣泛的應(yīng)用?;诖耍疚膶?duì)基于嵌入式Linux系統(tǒng)的無(wú)線路由器設(shè)計(jì)進(jìn)行介紹。

1 總體設(shè)計(jì)

Linux是一套免費(fèi)使用和自由傳播的類(lèi)Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶(hù)、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶(hù)網(wǎng)絡(luò)操作系統(tǒng)。實(shí)現(xiàn)嵌入式操作系統(tǒng)有2種方法:①采用比較成熟的系統(tǒng)軟件,并適當(dāng)?shù)剡M(jìn)行修改;②根據(jù)具體的應(yīng)用需求,自己編寫(xiě)系統(tǒng)軟件。第一種方法固然有投入少、開(kāi)發(fā)周期短等優(yōu)點(diǎn),但是在一些特殊的應(yīng)用時(shí),往往要對(duì)系統(tǒng)進(jìn)行大規(guī)模的修改與裁減,其工作量十分巨大。而第二種方法可以很好地把握具體應(yīng)用,其工作量固然不少,但是最后的系統(tǒng)與具體應(yīng)用可以很好地吻合。寬帶路由器就是這種特殊的應(yīng)用。

2 Linux系統(tǒng)移植和編譯

Linux作為一個(gè)自由軟件,在廣大愛(ài)好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶(hù)想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身訂制一個(gè)更高效、更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。Linux分為用戶(hù)空間和內(nèi)核空間,用戶(hù)通常接觸到的是用戶(hù)空間,通過(guò)用戶(hù)空間和內(nèi)核空間的轉(zhuǎn)換機(jī)制訪問(wèn)內(nèi)核空間。用戶(hù)空間里包含開(kāi)源的GNUCLibrary庫(kù),不僅提供了操作系統(tǒng)的系統(tǒng)調(diào)用接口,還提供了用戶(hù)空間應(yīng)用和內(nèi)核空間切換的機(jī)制。由于內(nèi)核空間和用戶(hù)空間的應(yīng)用程序使用的地址空間不同,所以只能通過(guò)系統(tǒng)調(diào)用進(jìn)入內(nèi)核。每個(gè)用戶(hù)空間的進(jìn)程都使用自

己的虛擬地址空間,而內(nèi)核則占用單獨(dú)的地址空間。

Linux內(nèi)核可以進(jìn)一步劃分成3層。最外面是系統(tǒng)調(diào)用接口,由于Linux操作系統(tǒng)把所有設(shè)備都當(dāng)作文件看待,所以會(huì)有這些基本的功能,比如open、read、write、close等,這些功能都是在該層提供的;接著是內(nèi)核代碼,即獨(dú)立于處理器的內(nèi)核代碼,這些代碼是所支持的所有處理器體系結(jié)構(gòu)所通用的,包括進(jìn)程管理、進(jìn)程通信、文件管理、設(shè)備管理、內(nèi)存管理、網(wǎng)絡(luò)協(xié)議等;最底層是依賴(lài)于處理器的代碼,構(gòu)成了通常稱(chēng)為BSP(Board Sup?port Package)的部分,這些代碼僅適用于特定處理器平臺(tái),我們移植的主要工作就是該部分與處理器相關(guān)的代碼。

3 hostapd編譯和設(shè)置

hostapd能夠在用戶(hù)空間通過(guò)守護(hù)進(jìn)程的方式使得無(wú)線網(wǎng)卡切換為master模式,模擬軟件AP(通常可以認(rèn)為是路由器)功能。Hostapd的實(shí)現(xiàn)的AP具有認(rèn)證服務(wù)器的功能,負(fù)責(zé)控制管理stations(通??梢哉J(rèn)為帶無(wú)線網(wǎng)卡的PC)的接入和認(rèn)證。通過(guò)開(kāi)啟hostapd守護(hù)進(jìn)程可以將無(wú)線網(wǎng)卡切換為AP/Master模式,通過(guò)修改配置文件,可以建立一個(gè)不加密的、WEP加密、WPA或WPA2加密的無(wú)線網(wǎng)絡(luò),并且可以設(shè)置無(wú)線網(wǎng)卡的各種參數(shù),包括頻率、信號(hào)、beacon包時(shí)間間隔,是否發(fā)送beacon包,是否響應(yīng)探針請(qǐng)求等,還可以設(shè)置基于物理mac地址過(guò)濾條件等。hostapd在Linux操作系統(tǒng)上運(yùn)行時(shí)是一個(gè)后臺(tái)守護(hù)進(jìn)程,作為后臺(tái)組件來(lái)控制和管理認(rèn)證功能。hostapd支持多個(gè)前臺(tái)程序,比如hostapd_cli,就是一個(gè)與hostapd一起的命令行前臺(tái)程序。hostapd是一個(gè)訪問(wèn)點(diǎn)以及EAP服務(wù)器和RADIUS授權(quán)服務(wù)器的運(yùn)行于用戶(hù)空間的守護(hù)程序。它實(shí)現(xiàn)了IEEE802.11接入的管理功能,是IEEE802.1X/WPA/WPA2/EAP的認(rèn)證服務(wù)器,是RADIUS client、EAP server and RADIUS認(rèn)證服務(wù)器。

我們通過(guò)使用以前搭建好的交叉編譯環(huán)境arm-nonelinux -gnueabi-gcc來(lái)實(shí)現(xiàn)軟件包的移植和安裝。首先編譯ho?stapd依賴(lài)的軟件包libnl庫(kù),使用以下命令進(jìn)行配置./configure–prefix =$PWD/_install–host=arm-none-linux-gnueabi,然后再執(zhí)行make,makeinstall即可編譯安裝libnl庫(kù);然后進(jìn)入hostapd源代碼目錄,執(zhí)行exportCC=/opt/buildroot/sysroot/usr/bin/armnone -linux-gnueabi -gcc,然后再執(zhí)行make,makeinstall完成ho?stapd的編譯和安裝。

4 dhcpd編譯和配置

DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議)是一個(gè)TCP/IP網(wǎng)絡(luò)協(xié)議,傳輸層使用UDP協(xié)議工作,主要有2個(gè)用途:給內(nèi)部網(wǎng)絡(luò)自動(dòng)分配IP地址,使網(wǎng)絡(luò)環(huán)境中的主機(jī)動(dòng)態(tài)的獲得IP地址、網(wǎng)關(guān)地址、DNS服務(wù)器地址等信息,并能夠提升地址的使用率。DHCP協(xié)議采用客戶(hù)端/服務(wù)器模型,主機(jī)地址的動(dòng)態(tài)分配任務(wù)由網(wǎng)絡(luò)主機(jī)驅(qū)動(dòng)。當(dāng)DHCP服務(wù)器接收到來(lái)自網(wǎng)絡(luò)主機(jī)申請(qǐng)地址的信息時(shí),才會(huì)向網(wǎng)絡(luò)主機(jī)發(fā)送相關(guān)的地址配置等信息,以實(shí)現(xiàn)網(wǎng)絡(luò)主機(jī)地址信息的動(dòng)態(tài)配置。Dhcpd是在Linux操作系統(tǒng)上實(shí)現(xiàn)DHCP功能的一個(gè)開(kāi)源軟件包。該軟件包具有占用資源少、可靠性高、性能很好的特點(diǎn),因此特別適合嵌入式系統(tǒng)使用。

我們通過(guò)修改Makefile:添加:CROSS_COMPILE=armnone -linux-gnueabi,然后執(zhí)行make,把生成的dhcpd文件下載到板子上,再執(zhí)行cpsamples/udhcpd.conf/etc,將dhcpd的配置文件復(fù)制到系統(tǒng)根文件系統(tǒng)當(dāng)中,使用vi編輯器修改/etc/ud?hcpd.conf文件如下:

#The start and end of the IP lease block

start 192.168.1.20

end 192.168.1.25

#The interface that udhcpd will use

interface wlan0

#Examles

opt dns 222.201.130.30222.201.130.33

option subnet 255.255.255.0

opt router 192.168.1.10

option dns 192.168.1.10

option domain local

option lease 864000

然后就可以在Linux系統(tǒng)啟動(dòng)后使用./dhcpd&命令開(kāi)啟DHCP功能,我們使用PC測(cè)試可以獲取一個(gè)192.168.1.20的IP地址。

5 NAT配置

路由器可以分為核心路由器、匯聚路由器以及把個(gè)人用戶(hù)接入網(wǎng)絡(luò)的接入路由器。接入路由器能夠?qū)崿F(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的路由、過(guò)濾功能,并且采用NAT(Network Address Translation)轉(zhuǎn)換技術(shù),把局域網(wǎng)內(nèi)部私用有IP地址轉(zhuǎn)換成一個(gè)合法的公網(wǎng)IP地址,使私有網(wǎng)絡(luò)中多臺(tái)主機(jī)共享一個(gè)合法的IP地址訪問(wèn)因特網(wǎng)。這一項(xiàng)技術(shù)極大地解決了IPv4版本協(xié)議地址不足的問(wèn)題。本設(shè)計(jì)中的無(wú)線路由器使用Linux內(nèi)核的iptables技術(shù)實(shí)現(xiàn)NAT轉(zhuǎn)換功能,實(shí)現(xiàn)多臺(tái)主機(jī)接入并訪問(wèn)因特網(wǎng)。NAT工作原理是:客戶(hù)機(jī)將NAT主機(jī)設(shè)置為默認(rèn)網(wǎng)關(guān),當(dāng)NAT主機(jī)收到客戶(hù)機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包時(shí),對(duì)其進(jìn)行修改,將源地址替換為自己的地址,將源端口號(hào)換成一個(gè)新的端口號(hào),并且對(duì)該過(guò)程進(jìn)行記錄;當(dāng)接收到響應(yīng)數(shù)據(jù)包時(shí),通過(guò)查看以上過(guò)程記錄,再將網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行修改,將其目的IP地址及端口號(hào)替換為原來(lái)記錄的客戶(hù)機(jī)IP地址和端口號(hào),然后再發(fā)送給內(nèi)部網(wǎng)絡(luò)的客戶(hù)機(jī)。

在本無(wú)線路由器中,我們進(jìn)行以下設(shè)置:首先打開(kāi)內(nèi)核的IP轉(zhuǎn)發(fā)功能,輸入以下命令sudobash–c“echo1>/proc/sys/net/ ipv4/ip_forward”;然后設(shè)置實(shí)現(xiàn)設(shè)置NAT功能,即網(wǎng)絡(luò)地址轉(zhuǎn)換,輸入以下命令sudoiptables–tnat–APOSTROUTING–oeth0–jMASQUERADE。至此,我們就開(kāi)啟了Linux內(nèi)核的數(shù)據(jù)轉(zhuǎn)發(fā)和地址轉(zhuǎn)換功能,無(wú)線路由器的功能就實(shí)現(xiàn)了。

6 結(jié)束語(yǔ)

綜上所述,嵌入式Linux系統(tǒng)具有性能優(yōu)異、移植容易、代碼開(kāi)放、有許多應(yīng)用軟件支持等優(yōu)點(diǎn),在數(shù)據(jù)網(wǎng)絡(luò)、路由器、ATM機(jī)、遠(yuǎn)程通信、工業(yè)控制等領(lǐng)域得到廣泛的應(yīng)用。本文以嵌入式Linux系統(tǒng)為基礎(chǔ),設(shè)計(jì)了一種無(wú)線路由器。該無(wú)線路由器具有無(wú)線路由器的基本功能,且具有良好的穩(wěn)定性和安全性,對(duì)其他無(wú)線路由器設(shè)計(jì)具有重要的參考價(jià)值。

參考文獻(xiàn)

[1]張彥.基于嵌入式Linux的小型3G無(wú)線路由器設(shè)計(jì)[J].信息通信,2014(11).

[2]黃小敏,余翔,宋瑤.嵌入式Linux系統(tǒng)的3G/4G路由器設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(04).

〔編輯:劉曉芳〕

东港市| 禹州市| 天气| 五河县| 砀山县| 阿尔山市| 宜丰县| 青冈县| 延长县| 洱源县| 锡林郭勒盟| 平山县| 宿迁市| 长寿区| 铜山县| 贵州省| 渭南市| 屏东县| 商河县| 邵阳市| 团风县| 南川市| 博罗县| 宁波市| 青田县| 贵溪市| 双城市| 怀安县| 类乌齐县| 广河县| 巴东县| 吉首市| 泊头市| 蒙阴县| 肇东市| 武胜县| 望奎县| 固始县| 淮滨县| 灵台县| 乌拉特前旗|