在嵌入式Linux中实现802.11b无线网关(3)

 2.3 无线网关功能的实现

  如图1所示,无线网关需要完成的最重要的功能就是:与无线节点通信、桥接所有的无线节点、实现无线网络和有线网络的跨网段连接。

在嵌入式Linux中实现802.11b无线网关



  配置Linux的内核模块,用PCMCIA CardService的方式驱动PCMCIA,运行“make modeules”以及“make
modeules_install"来产生和安装核心模组。由于标准发行的“Linux内核源码中,桥接功能和封包过滤功能(NetFiIi—ter)不能一起正常工作,因此为了要在同一台计算机上同时运行桥接功能和IPtables,需要对核心源码进行修补。相关补丁可以从http://bridge.sourceforge.net/上下载。另外,要获取PCMCIA-CS 3.2.1和PRISM2 HlostAP的驱动程序包,移植PCMCIA-CS和PRISM2 HostAP的驱动程序。完成这一步工作需要具有Linux下编译程序源码的简单知识,主要是交叉编译器(GCC)的使用。编译好的模块*.o文件放在/lib/modules/2.4.4/misc:下,然后用depmod-a使此模块成为可加载模块。模块用insmod命令加载,用rmmod命令卸载,并可以用lsmod命令查看所有已加载的模块的状态。最后,桥接有线网卡和无线网卡,需要Linux下硬件(主要是网卡)配置和网络配置的一些基本知识。

  模块搭建完毕后进行桥接功能的构建。解开桥接补丁bridge-utils.tar.gz,编译全部通过并且移植成功后,可以用“ifconfig-a”命令查看所有的网络接口:lo——本地loopback设备;ethO——第一个以太网卡;ethl——第二个以太网卡;wlan0——无线网卡。用“ifconfig<设备>0.O.0.O”命令改变除了lo设备以外所有网络接口的工作方式,以迫使系统进入杂乱模式,可以接收所有数据包。然后,执行“brctl addbr br0”命令来添加一个名字为br0的桥接设备,再用“bretl addif br0 ethO”和“brctl addif br0wlan0"把无线端和有线端的接口绑定。接着,用“ifeonfigbr0 192.168.2.18 up'’使桥接设备生效。

  内核配置时选定GeneraI setup--->[*]Sysctlsupport,这样才会在板子的文件系统中/proc/sys/net/ipv4/出现ip_forward文件,然后在应用程序中提供ena程序(加到etc/init.d/rcS中一句/bin/ena-e),将ip_for-ward文件中默认的0改为1,这样就打通了数据转发的通道。下面就是要加上iptables,以支持NAT(NetWork Ad—dress Translation)。从网上下载iptables-1.2.5软件,在iptables-1.2.5目录下执行make,编译通过后,将生成的可执行文件iptables加到ramdisk里面,然后烧写到板子上进行配置即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwzdd.html