使用 Linux 做无线AP(一)
使用 Linux 做无线AP
作者 凌晨
随着 IEEE 802.11 b/g 协议的普及推广,无线局域网越来越进入我们的日常生活中。它不受网线,网络交换设备的束缚,使人们充分体会到“无限”移动带来的便利和快捷。较之有线局域网络(如:以太网),无线局域网的优势自然不言而喻。
使用Linux做无线AP, 有以下几大优势;
- 跨硬件平台: 支持大多数CUP, 可以做到嵌入式设备,也可以在普通的PC机上,甚至在APPLE的G5机器上实现。
- 低成本,开放性和坚固性: 它遵守GPL协议,可以自由使用,开发。最大程度地对公开网络标准的支持。完全 可以根据实际情况,自定义,构建系统,达到系统最优。尤其是健壮的2.6内核,保证了作为AP的稳定和高效。
- 实现AP的多样性:可以通过netfilter/filter内核模块做数据包转发(nat技术),也可以通过使用brctl软件作为网桥,也可以通过Zebra 软件配制动态路由。
- 灵活性,可扩展性:可以使用netfilter/iptables对数据包过滤,达到防火墙的功能,从而保护内部无线网络,也可以配制squid作为代理服务器,控制无线客户端的通讯,也可以配制cups打印系统,无线使用打印机,还可配制mrtg,监视网络流量。甚至可以配制sendmail, samba等软件,为客户端来提供邮件,windows的文件共享服务,来适应商务办公的需要。
由于 Linux 操作系统的开放,稳定,跨平台等上述特点,使之成为做无线AP 理想平台。
Linux做无线AP, 主要概括为2部分,无线网络部分(wireless lan) 和 数据转发部分(data forward)。
一.无线网络部分: 无线局域网网卡的 驱动 的 安装及加载
无线网络的物理参数设置
无线网络的网络层的参数设置( ip/netmask, gateway, DNS)
笔者是用一台PC 机,加装 TP-Link的TP-WN550G网卡(PCI插槽,54M速率,支持 IEEE 802.11 b/g 协议)运行CentOS 4.2 (2.6.9内核),做无线AP测试的。
网络背景:
PC机的以太网网卡 eth0 接公网,有线通宽带(Cable), 使用DHCP协 议分配IP
无线网络的客户端是apple本本 ,ibookG4
无线网络 192.168.0.0/24
TP-WN550G网卡是使用Atheros芯片。可以使用 http://madwifi.org 站点上的驱动程序。这是一个开源项目,专门用于Atheros芯片无线局域网网卡的Linux驱动程序 (2.4或2 .6内核)
必须安装的软件包:sharutils(归档工具), subversion(cvs客户端,在CentOS已经安装)
安装 sharutils 过程 (安装subversion类似):
tar zxvf sharutils-4.6.tar.gz
cd ./sharutils-4.6
make
make install
准备工作完成,开始安装。
下载源代码: svn checkout http://svn.madwifi.org/trunk madwifi-ng 下载完毕后, /root目录下会生成 madwifi-ng 的目录,
假如先前安装过旧的madwifi程序,要先清除(第一次安装可以跳过)
cd ./madwifi-ng/scripts
./madwifi-unload.bash
./find-madwifi-modules.sh /lib/modules/
清除完毕,进入madwifi的主目录,开始编译:make
然后执行安装: make intsall
系统没有提示出现错误安装,安装成功 !准备下一步测试。
开始加载驱动模块 :
[root@Jack ~]# modprobe ath_pci
设置成为AP模式:
[root@Jack ~]# wlanconfig ath0 create wlandev wifi0 wlanmode ap
madwifi使用的是 VAP的概念(即 虚拟AP),既是station mode ,也是master AP mode 。这时,系统会有2个wireless interface:wifi0,ath0 。 一般情况下,对无线网络接口设置,包括ip设置,都在 ath0上 进行。
用iwconfig设置无线物理参数:
1.网络标识:[root@Jack ~]# iwconfig ath0 essid “jack”
2.网络频率:[root@Jack ~]# iwconfig ath0 freq 5.2G
3.网络频道:[root@Jack ~]# iwconfig ath0 channel 11
4.网络速率:[root@Jack ~]# iwconfig ath0 rate 54M auto
5.WEP加密:[root@Jack ~]# iwconfig ath0 key DEAD-BEFF-AA (可选,默认不加密)
6.发射功率: [root@Jack ~]# iwconfig ath0 txpower 30 (可选, 以dBm为单位,自动使用默认值)
此外 可以在加载驱动模块时添加入自动匹配参数:
modprobe ath_pci autocreate=ap,系统会使用默认值,以代替上面的iwconfig命令(除了第一个的网络标识设置),省去麻烦。(笔者比较喜欢)
至此,无线网络的物理参数设置完毕。
开始手动设置AP的 ip 地址:
[root@Jack ~]# ifconfig ath0 192.168.0.1 netmask 255.255.255.0
打开ibookG4的aiport ,此时airport可以检测到信号的存在,选择要加入的网络 jack ,用 airport GUI工具 指定 ip 192.168.0.90
至此,网络设置完毕,可以测试连同情况了。
附件:
本文由hew 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-3158-1-1.html
搜索更多相关主题的帖子:
Linux 无线