r4y53ee 发表于 2011-3-28 11:48:07

当Linux遇上802.11b——WLAN AP替换方案测试

----当802.11b 无线网应用越来越广泛,和传统以太网络的连接和融合就成了大家所关心的话题。而在与有线以太网络互联的过程中,扮演重要角色的就是Access Point(AP)。普通的AP工作在HostAP模式,作为一个以太网桥接器使用(见图1)。和传统的有线以太网桥接器不同的是,AP会将有线端和无线真个报文进行相互转发,同时也能够连接多个无线节点。用户所能感觉到的就是比有线以太网稍微大一些的延迟,而以前在有线以太网络上的所有应用也可以原封不动地保存下来。 图1 无线网络于有线网络连接系统配置 ----在WLAN中,AP所完成的最重要的3个功能就是:和无线节点通讯、桥接所有的无线节点、桥接无线网络和有线网络。因此要构建一个完整的WLAN,实现无线网络和有线网络的连接和融合,AP是必不可少的,而在WLAN设备中,AP的价格无疑是比较高的。 ----那么我们除了AP以外,还有没有其他方式可以实现AP的功能,取代AP呢?那就是开放源代码社区了。事实上,开放源代码社区很早就开始关注无线通讯这一领域,不管是在对网络功能的支持,还是硬件设备驱动的发展,都已经进入了实用阶段,其中发展特别迅速的操纵系统——GNU/Linux,就提供了包括对以太网桥接在内的很多强大的网络功能。这样一来,也就给我们自己动手搭建一个系统实现AP的基本功能创造了条件。 ----实在,现在市面上出售的802.11b产品,不管是网卡还是AP,芯片厂商大都使用相同的核心无线芯片组,只是AP在此基础上还增加了一些嵌入式微控制系统,让整个芯片组工作在普通的Station模式或HostAP模式,通过在相同的芯片组上提供不同的固件实现不同的功能,基于Prism2 802.11b(带有HFA3841/HFA3841 MAC处理器)芯片组的解决方案就是非常典型的例子。 ----不过现在能够在GNU/Linux下顺利工作的HostAP模式驱动还很少,而Prism2正是最佳的选择,由于通过直接对Prism2的寄存器进行操纵,可以在不对固件进行任何操纵的情况下就进入HostAP模式。而且可以和原来作为网关/出口的GNU/Linux系统集成到一起,非常方便地进行治理。 ----要搭建一个Linux AP,我们需要哪些东西呢? 一、硬件部分
一台能够运行GNU/Linux的计算机(笔记本电脑或台式机)。假如只是用来做AP,一些闲置已久的老Pentium台式电脑就可以满足需求。 一个以太网适配器用来连接有线网络。多数常见的以太网网卡能在GNU/Linux下工作得很好。 一个基于Prism2芯片组的PCI/PCMCIA的无线网卡。(经过我们确认能够在Prism2 HostAP模式下工作得很好的适配器型号有Compaq WL100/WL200、D-Link DWL-650、Linksys WPC11和Samsung SWL2000 N/P)。----我们选用的测试平台的硬件配置见表1。 二、软件部分
一个能够正常运行的的2.4.x核心的Linux系统,glibc应该在2.2版本以上。 GNU C/C++编译器 gcc 2.95以上,对应的开发工具。 PCMCIA-CS卡驱动服务 3.1.33(PCMCIA接口的适配器才用得到)。Prism2 HostAP模式驱动 2002-04-05。linux kernel source源码。桥接工具bridge-utils 和能同时使用桥接和Iptables的补丁。----我们选用的测试平台的软件系统见表2。 系统搭建及测试 ----在预备好所有软硬件设备后,我们就开始搭建系统了。 第一步:预备系统核心 ----由于标准发行的GNU/Linux内核源码中,桥接功能和netfiliter是不能一起正常工作的。因此为了要在其同一台计算机上同时运行桥接功能和IPtables,需要对核心源码进行修补,相关补丁可以从http://bridge.sourceforge.net 上下载。 首先我们用make config来配置GNU/Linux核心的源码。在配置核心的时候,我们用PCMCIA CardServic的方式来驱动PCMCIA,同时添加有线以太网卡等其他设备的驱动和文件系统模块。 ----配置完成后,用Make dep;make bzImage来产生核心的二进制镜像。同时用make modules;make modules_install来产生和安装核心模块,至此系统内核已经基本预备停当。 第二步:安装Prism2的HostAP驱动程序 ----在同一个目录内解开 PCMCIA-CS 3.1.33和Prism2 HostAP的驱动程序包,并将Prism2驱动程序目录下的drivers中所有文件复制到PCMCIA-CS的目录中。这样会在PCMCIA-CS中多出一个Prism.mk,且会在编译PCMCIA-CS的时候一同编译Prism2的驱动程序。 ----然后,我们需要在PCMCIA-CS的目录中用make config进行配置,选择从核心源码读取配置,其他都用默认选项即可。接下来我们用Make all:make install来编译/安装PCMCIA-CS模块。 ----随后用第一步中编译好的核心镜像启动系统。lilo的用户应该先把/usr/s      1/2 12下一页尾页
页: [1]
查看完整版本: 当Linux遇上802.11b——WLAN AP替换方案测试