快速业务通道

Freebsd中拿无线网卡当AP 用

作者 佚名技术 来源 操作系统 浏览 发布时间 2012-06-28

买来一块108M的PCI无线网卡 型号为D-LINK DWLG520 , 是属于被Freebsd6.0支持的无线网卡,使用的是Atheros 5212芯片,支持HOSTAP模式(能让你的网卡作为AP使用的关键).

第一步,安装无线网卡硬件, 系统中已原有一块8139网卡 .

第二步,开机进入Freebsd 用Root登陆
#dmesg &line; more 没有发现任何无线设备,这这时想起没有把驱动编译到内核中当然不会发现这个设备啦

于是 #kldload if_ath ; (ath为被Freebsd定义的网卡驱动名字)
当然 要开机自动加载的话,请修改 /boot/loader.conf 加上 if_ath_load="YES"

系统自动把另外两个ath的.ko模块也加载到内核中了

再ifconfig 多了一个ath0的设备

ath0: flags=8943 mtu 1500
ether 00:03:2f:12:34:56


于是 运行#ifconfig ath0 inet ssid 108m mode 11g mediaopt hostap up
(让设置开机自动生效 编辑/etc/rc.conf文件 加入 ifconfig_ath0="inet ssid 108m mode 11g mediaopt hostap")


这样就起用了网卡的ap模式

这时ifconfig ath0 看看

ath0: flags=8943 mtu 1500
ether 00:03:2f:12:34:56
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: associated
ssid 108m channel 1 bssid 00:03:2f:12:34:56
authmode OPEN privacy OFF txpowmax 36 protmode CTS dtimperiod 1
bintval 100


此时用一台笔记本电脑的无线网卡就能发现一个108M的无线网络接入点了,但是只能还连接到AP自身而已,如果笔记本电脑需要访问有线以太网络,还是把ath0 和另外的一块8139网卡桥接起来方便

如何桥接?

Freebsd的网桥实现有两种完全不同的方式

一种是传统的实现 freebsd 很早的版本就有的.
#kldload bridge

#sysctl net.link.ether.bridge.enable=1
#sysctl net.link.ether.bridge.config=rl0,ath0

这时提示:
rl0: promiscuous mode enabled
ath0: promiscuous mode enabled

如果要开机自动生效 请修改 /boot/loader.conf
bridge_load="YES"
然后 在 /etc/sysctl.conf把
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=rl0,ath0 即可

第二种网桥是Freebsd6.0 新从netbsd中引入的 if_bridge ;
Freebsd官方说以后的版本中要用if_bridge淘汰上面的bridge方式.

为了方便, 干脆把 ath驱动和 if_bridge 都编译到内核中, 这样就不用 kldload,也不用修改loader.conf了
内核中要有

device if_bridge

device wlan
device ath
device ath_hal
device ath_rate_onoe

然后重新编译,安装内核 后reboot 系统中就多了一个ath0的设备

# dmesg &line; grep ath
ath_hal: 0.9.14.9 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413)
npx0: on motherboard
ath0: mem 0xec000000-0xec00ffff irq 11 at device 10.0 on pci1
ath0: Ethernet address: 00:03:2f:12:34:56
ath0: mac 5.6 phy 4.1 radio 1.7


然后开始使用桥
#ifconfig bridge0 create
#ifconfig bridge0

bridge0: flags=8041 mtu 1500
ether ac:de:48:0f:a6:16
priority 32768 hellotime 2 fwddelay 15 maxage 20

(删除bridge0接口 用 #ifconfig bridge0 destroy)

然后加入网桥的成员
#ifconfig bridge0 addm rl0 addm ath0

(删除网桥成员rl0用 #ifconfig bridge0 deletem rl0)

同样提示:
rl0: promiscuous mode enabled
ath0: promiscuous mode enabled


#ifconfig bridge0
bridge0: flags=8041 mtu 1500
ether ac:de:48:0f:a6:16
priority 32768 hellotime 2 fwddelay 15 maxage 20
member: ath0 flags=3
member: rl0 flags=3

让上面的设置开机自动生效


ifconfig

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号