前言
由于硬件升级,无线相关硬件驱动也跟随升级,一些功能在这个过程中需要改进优化,这个这个Mac Filter就是其中之一。
主体
经过从hostapd官方文档学习,了解了其相关特性,通过学习测试也成功的完成了相关配置。
首先,hostapd mac filter是支持多ssid的,也就是多个ssid对应多对配置。
ssid=ssid1
macaddr_acl=1
accept_mac_file=/etc/hostapd.wlan0_0.accept
deny_mac_file=/etc/hostapd.wlan0_0.deny
ssid=ssid2
macaddr_acl=1
accept_mac_file=/etc/hostapd.wlan0_1.accept
deny_mac_file=/etc/hostapd.wlan0_1.deny
问题与解决方案
按照以上配置,这个问题其实已经可以解决了,不过测试的时候用的是小米手机作为STA, 奇葩的事情来了,对于第一个ssid配置策略可以正常的过滤/放行STA, 但是第二个SSID就不能正常功能了。这里也由于系统的特殊,导致没有正常的渠道查看建立assoc的过程。等等问题浪费了很多时间。最后通过重新编译hostapd把-f功能打开,看日志才发现第二次连接的mac地址竟然不是第一个的。这里就纳闷了,为什么变了呢? 难道这个驱动的多ssid处理有问题 ? 经过换手机发现,iphone就没有变,确认了是小米的问题,不知道是不是Android的特殊功能,这里的mac地址竟然可以选择设备的也可以选择随机的,不知道自动选择的还是手动改的,我也不记得自己有修改过这个东西。
总结
完整的调试信息,仔细的建立连接后的数据对比,都可以很快的发现问题所在,在完整信息不能看到的情况下,可以根据现有的条件查看可查的信息,减少时间的浪费。不过,也不是一无所获,起码知道了怎么查看详细的信息,以及hostapd在系统中的启动流程,日志级别,重新编译方法,和小米手机的特性。