1) 要求
为了在 FreeBSD 上建立接入点,您要有一块兼容的无线网卡。 至今为止,FreeBSD 只支持带有 Prism 芯片组的网卡。 您还需要被 FreeBSD 支持的有线网卡 (这个不难找到,FreeBSD 支持很多不同的设备)。在这里,我们假定您要桥接 (bridge(4)) 有线网卡连接的网络与无线设备之间的所有传输。
FreeBSD 用来实现接入点的"hostap"功能与一定版本的 firmware (固件) 工作得很好。Prism 2 网卡应该使用 firmware1.3.4或更新的版本。Prism 2.5 和 Prism 3 网卡应使用firmware1.4.9。老版本的firmware 可能无法正常工作。这时候,升级网卡的唯一方式是使用厂商提供的 Windows® firmware 升级工具。
2) 设置并运行
首先,确保您的系统能识别无线网卡:
# ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1
现在不用考虑细节部分,只要确认有信息表明您已安装了无线网卡。如果您无法找到无线接口,您可能使用的是 PC 卡,需要查看 pccardc(8) 和 pccardd(8) 联机手册以获取更多信息。
下一步,您需要加载一个模块使 FreeBSD 的桥接部分为接入点作好准备。 加载桥接 bridge(4) 模块,只需运行以下命令:
# kldload bridge
加载模块应该不会产生任何错误。如果发生了错误, 您就需要将桥接 bridge(4) 代码编译入内核。手册的桥接(Bridging) 部分应该能帮您完成这个任务。
现在已经完成了桥接的组件, 接着我们需要告诉内核将哪些接口桥接在一起。 我们使用 sysctl(8) 来完成:
# sysctl net.link.ether.bridge.enable=1
# sysctl net.link.ether.bridge.config="wi0,xl0"
# sysctl net.inet.ip.forwarding=1
在 FreeBSD 5.2 之前的版本中, 则必须使用下面的选项:
# sysctl net.link.ether.bridge=1
# sysctl net.link.ether.bridge_cfg="wi0,xl0"
# sysctl net.inet.ip.forwarding=1
现在来设置并启动无线网卡。以下的命令将网卡设置为接入点状态:
# ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"
ifconfig(8) 行用于启动 wi0 接口, 并把它的 SSID 设置为 my_net, 还有把工作站名设置为 FreeBSD AP。 media DS/11Mbps 是把卡设置成 11Mbps 模式, 它是任何mediaopt产生作用所必需的。 mediaopt hostap 选项把接口设置成接入点模式。 channel 11 选项设置为要使用的 802.11b channel(频道)。 wicontrol(8) 手册包含一些有效的channel选项。
现在应该启动并运行着一个完全功能的接入点。 推荐阅读 wicontrol(8),ifconfig(8) 和 wi(4) 以求更深入的了解。
同样建议您阅读接着关于加密那一节。
3) 状态信息
一旦接入点配置完成且可操作, 操作者都会希望查看连入接入点的客户。在任何时候,都可以键入:
# wicontrol -l
1 station:
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
显示连接了一个站点,接着的是各种参数。 显示的信号通常只作为强度的相对指示。到 dBm 或其它单元的转换因 firmware 版本的不同而有所差异。