问题现象:
苹果设备(5GHz)连接不稳定,表现为时断时续,或者加入无线的时候一直加入不进去。
有些2.4GHz设备会在几个AP之间相互跳。
分析:
1. 先说苹果设备,它既支持2.4G 也支持5G, 所以我怀疑它自己就会在2.4 和 5之间出现不知该选哪个的问题,所以,第一个思路就是让支持5G的干脆忽略2.4G,这时候就创建了另外一个SSID,只发射5G信号。配置如下
dot11 ssid CBSi-Shanghai-Apple
vlan 331
max-associations 25 //应华民的要求,把每个AP的5G的连接数上限设成25个
authentication open
authentication key-management wpa version 2 //WPA2认证对苹果工作更好
guest-mode
wpa-psk ascii 7 14111613195D723F362B61
!
interface Dot11Radio1
no ip address
ip helper-address 10.19.72.10
!
encryption vlan 331 mode ciphers aes-ccm //和WPA2认证相协同的加密算法
!
ssid CBSi-Shanghai-Apple
!
antenna gain 0
stbc
beamform ofdm
power local 2
channel 5825 // 手动指定的信道,这个值是经过一个show 命令挑选出来的,后面会详说
station-role root
no dot11 extension aironet //这条比较重要,许多博客都说这个命令可以缓解Apple产品的不稳定,因为这个特性是思科特有的,Apple家可能直接忽略了思科的某些新想法
bridge-group 1
bridge-group 1 subscriber-loop-control
bridge-group 1 spanning-disabled
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
!
interface Dot11Radio1.331
encapsulation dot1Q 331
ip helper-address 10.19.72.10
bridge-group 254
bridge-group 254 subscriber-loop-control
bridge-group 254 spanning-disabled
bridge-group 254 block-unknown-source
no bridge-group 254 source-learning
no bridge-group 254 unicast-flooding
总之就是能连5G的只连5G,在客户端忽略掉2.4GSSID;只能连2.4G的,忽略5G的SSID,首先在这两个频段之间消除同一个设备在2.4和5之间相互乱跳的可能性,然后再针对某一个做配置。
2. 信道选择,我觉得设置成自动,让它least congest应该也可以,但是看到网上有建议说,手动配置一个不那么拥挤的高频段的信道,会表现的更好。找出不拥挤的信道的方法如下:
先用dot11 dot11Radio 0 carrier busy 去测一下,这会引起所有客户端这个时候全部断掉,所以在这里我就不贴结果了,查看结果的方法是 sho dot11 carrier busy ,然后在结果里选数值比较小的手动去配上。
3. 加密算法选择,WPA和WPA2这两个版本有各自不同的推荐的算法。具体资料从下面两个链接里找的
http://www.experts-exchange.com/Networking/Protocols/DHCP/Q_28146676.html
“ you've configured WPA2 but you're using TKIP for encryption. I'd suggest you use AES only with WPA2, as some clients don't like to use TKIP with WPA2. Similarly, clients don't like to use AES with WPA1.
"
https://supportforums.cisco.com/discussion/11853876/sending-station-has-left-bss
"Make sure that if your using WPA and not WPA version 2, that your only using TKIP. When using WPA2 then you would use AES.”
算法选择的结论就是 AES is with WPA2, while TKIP is with WPA1
4. 异常log
Oct 8 05:22:09.251: %DOT11-6-DISASSOC: Interface Dot11Radio0, Deauthenticating Station 28e1.4c20.46a2 Reason: Previous authentication no longer valid
这个Previous authentication no longer valid 是最讨厌的一条日志了,一是因为跟这个日志挂上钩的客户端就会出现连接不稳定,在几个AP之间相互乱跳,二是因为关于它的说法众说纷纭,其中最经常提到的解决办法就是 ① “no dot11 extension aironet” 刚刚说的禁用掉思科的这个feature来提高Apple设备稳定性的办法之一 来源 https://supportforums.cisco.com/discussion/10073326/aironet-1240ag-error-previous-authentication-no-longer-valid-help ,同样也被大家拿来应对刚刚上面这个日志。② 还有资料显示提高WPA握手超时时间阈值也可以缓解,所以全局配置里有这一条 “dot11 wpa handshake timeout 2000”,来源http://www.kevintaber.com/2013/02/02/cisco-1140-error-previous-authentication-no-longer-valid/ 。总之这俩我都用上了,到目前还是会有这个讨厌的日志报出来,但是数量和频率已经大大降低了。
5. ARP问答
这个是从抓包里看到的,苹果设备发出ARP包去问自己的网关的mac地址,但是有时候多次尝试也得不到回复,并不是每次都得不到,表现很不稳定,不管是用苹果特有的单播请求ARP还是常规的广播请求,都得不到回复,所以怀疑跟思科的ARP cache有关,这个特性主要就是让AP代为回答ARP request,担心这个特性对苹果同样不适用,所以禁用掉了,用于禁用的命令是在全局下,打no dot11 arp-cache
其他:
想到过几个其他的办法来解决,但是后来放弃了,这里记录一下原因:
想过用AP本身做DHCP服务器,但是因为它只能下发和自己的管理网段同段的地址,所以作罢,而且这通常是用作测试用。来源:https://learningnetwork.cisco.com/thread/39785
Work Group Bridge本来也想拿来用的,本想解决多AP之间的漫游问题,但是这个特性的适用环境和我们不一样,详见:http://www.cisco.com/c/en/us/support/docs/wireless/aironet-1200-series/68472-configure-wgb-00.html#anc6 。 包括root repeater 模式也想过用的,但是会牺牲一个2.4或者5中的某个信道,所以也放弃了。Fast Secure Roaming也是候选方案之一的,但是这个需要一台TACAS+或者RADIUS服务器,文档里写的当然是TACAS+这个思科私有协议做认证,而且服务器也是用的思科的ACS(你懂的),关于开源的设备怎么协同工作没有讲,而且需要用填写账号密码的方式,工作量比较大,加之没有服务器,就作罢了。详见http://www.cisco.com/c/en/us/td/docs/wireless/access_point/12-4_3g_JA/configuration/guide/ios1243gjaconfigguide/s43roamg.html#wp1072782