34.5.无线点对点模式 =================== IBSS 模式,也称为点对点模式,专为点对点连接而设计。例如,要在 计算机 ``A`` 和 ``B`` 之间建立 ad hoc 网络,请选择两个 IP 地址和一个 SSID。 在计算机 ``A`` 上: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 create wlandev ath0 wlanmode adhoc # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap # ifconfig wlan0 wlan0: flags=8843 metric 0 mtu 1500 ether 00:11:95:c3:0d:ac inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: running ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst ``adhoc`` 参数指示接口正在 IBSS 模式下运行。 ``B`` 现在应该能够检测到 ``A``\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 create wlandev ath0 wlanmode adhoc # ifconfig wlan0 up scan SSID/MESH ID BSSID CHAN RATE S:N INT CAPS freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME 输出中的 ``I`` 确认 ``A`` 处于 ``ad-hoc`` 模式。现在,用一个不同的 IP 地址配置 ``B``\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap # ifconfig wlan0 wlan0: flags=8843 metric 0 mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: running ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst ``A`` 和 ``B`` 两者现在都已准备好交换信息。 34.5.1.FreeBSD 主机接入点 ------------------------- FreeBSD 可以充当接入点(AP),从而无需购买硬件 AP 或运行 ad-hoc 网络。当 FreeBSD 机器充当另一个网络(如互联网)的网关时,这可能特别有用。 34.5.1.1.基本设置 ~~~~~~~~~~~~~~~~~ 在将 FreeBSD 机器配置为 AP 之前,内核必须为无线网卡配置适当的网络支持以及正在使用的安全协议。有关更多详细信息,请参阅\ `基本设置 `__\ 。 **注意** Windows® 驱动程序的 NDIS 驱动程序 wrapper 当前不支持 AP 操作。只有原生的 FreeBSD 无线驱动程序支持 AP 模式。 加载无线网络支持后,检查无线设备是否支持基于主机的接入点模式(也称为主机 AP 模式): .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 list caps drivercaps=6f85edc1 cryptocaps=1f 此输出显示卡的功能。\ ``HOSTAP`` 确认此无线网卡可以充当 AP。还列出了各种支持的密码:WEP、TKIP 和 AES。此信息指示可以在 AP 上使用哪些安全协议。 在创建网络伪设备期间,无线设备只能进入 hostap 模式,因此必须先销毁以前创建的设备: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 destroy 然后在设置其他参数之前使用正确的选项重新生成: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 create wlandev ath0 wlanmode hostap # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1 再次使用 `ifconfig(8) `__ 查看 **wlan0** 接口的状态: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 wlan0: flags=8843 metric 0 mtu 1500 ether 00:11:95:c3:0d:ac inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: running ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs ``hostap``\ 参数指示接口正在基于主机的接入点模式下运行。 接口配置可以在引导时自动完成,方法是将以下行添加到 **/etc/rc.conf**\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session wlans_ath0="wlan0" create_args_wlan0="wlanmode hostap" ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1" 34.5.1.2.基于主机的接入点,无需认证或加密 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 虽然不建议在没有任何身份验证或加密的情况下运行 AP,但这是检查 AP 是否正常工作的简单方法。此配置对于调试客户端问题也很重要。 配置 AP 后,从另一台无线计算机启动扫描以查找 AP: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 create wlandev ath0 # ifconfig wlan0 up scan SSID/MESH ID BSSID CHAN RATE S:N INT CAPS freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME 客户端计算机找到了 AP,并且可以与之关联: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap # ifconfig wlan0 wlan0: flags=8843 metric 0 mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst 34.5.1.3.WPA2 基于主机的接入点 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本节重点介绍如何使用 WPA2 安全协议设置 FreeBSD 接入点。有关 WPA 和基于 WPA 的无线客户端的配置的更多详细信息,请参阅 `WPA `__\ 。 `hostapd(8) `__ 守护程序用于处理启用了 WPA2 的 AP 上的客户端身份验证和密钥管理。 以下配置操作是在充当 AP 的 FreeBSD 机器上执行的。一旦 AP 正常工作,\ `hostapd(8) `__ 可以在启动时自动启动,在 **/etc/rc.conf** 中使用以下行: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session hostapd_enable="YES" 在尝试配置 `hostapd(8) `__ 之前,首先配置基本设置中引入的\ `基本设置 `__\ 。 34.5.1.3.1.WPA2-PSK ^^^^^^^^^^^^^^^^^^^ WPA2-PSK 适用于无法或不需要使用后端身份验证服务器的小型网络。 配置在 **/etc/hostapd.conf** 中完成: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session interface=wlan0 ① debug=1 ② ctrl_interface=/var/run/hostapd ③ ctrl_interface_group=wheel ④ ssid=freebsdap ⑤ wpa=2 ⑥ wpa_passphrase=freebsdmall ⑦ wpa_key_mgmt=WPA-PSK ⑧ wpa_pairwise=CCMP ⑨ ① 用于接入点的无线接口。 ② 在 `hostapd(8) `__ 执行期间使用的详细级别。值为 ``1`` 表示最小级别。 ③\ `hostapd(8) `__ 用于存储域套接字文件的目录的路径名,以便与外部程序(如\ `hostapd_cli(8) `__\ )进行通信。此示例中使用默认值。 ④ 允许访问控制接口文件的组。 ⑤ 将显示在无线扫描中的无线网络名称或 SSID。 ⑥ 启用 WPA 并指定需要哪种 WPA 认证协议。值为 ``2`` 时,建议将 AP 配置为 WPA2。只有在需要过时的 WPA 时才设置为 ``1``\ 。 ⑦ 用于 WPA 身份验证的 ASCII 密码。 ⑧ 要使用的密钥管理协议。此示例设置 WPA-PSK。 ⑨ 接入点接受的加密算法。在此示例中,仅接受 CCMP(AES)密码。CCMP 是 TKIP 的替代方案,在可能的情况下是强烈建议的。只有当存在无法使用 CCMP 的站点时,才应允许 TKIP。 下一步是启动 `hostapd(8) `__\ : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # service hostapd forcestart .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # ifconfig wlan0 wlan0: flags=8943 metric 0 mtu 1500 ether 04:f0:21:16:8e:10 inet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9 nd6 options=21 media: IEEE 802.11 Wireless Ethernet autoselect mode 11na status: running ssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10 country US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2 AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6 scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst dtimperiod 1 -dfs groups: wlan AP 运行后,客户端可以与其关联。有关更多详细信息,请参阅 `WPA `__\ 。可以使用 ``ifconfig wlan0 list sta`` 查看与 AP 关联的站。