Linux wlan 单频段 dual wifi创建
环境基础
- TP LINK WN722N V1网卡
- linux 主机
查看设备是否支持双ap
- managed:客户端模式(连接路由器/AP)
- AP:接入点模式(创建热点)
- AP/VLAN:支持带VLAN标签的虚拟AP
- { AP, mesh point, P2P-GO } <= 2
可以同时运行最多2个热点类接口(AP/P2P-GO/mesh)
如2个AP(主Wi-Fi+访客Wi-Fi),或1个AP+1个P2P-GO
结论:支持单频段2.4G wifi创建
dual ap 创建
-
创建第一个AP接口(主网络)
sudo iw phy phy1 interface add wlan0_vap type __ap -
创建第二个AP接口(访客网络)
sudo iw phy phy1 interface add wlan1_vap type __ap -
查看无线设备接口信息
实际上只是创建了rename9 and rename10网络接口
ap接口已创建成功 -
配置双热点(Hostapd)
配置主热点(/etc/hostapd/hostapd_ap1.conf)
interface=rename9
driver=nl80211
ssid=000Main-AP
hw_mode=g
channel=6
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ap_isolate=1
配置访客热点(/etc/hostapd/hostapd_ap2.conf)
interface=rename10
driver=nl80211
ssid=000Guest-AP
hw_mode=g
channel=6
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ap_isolate=1 -
启动双热点命令
sudo hostapd /etc/hostapd/hostapd_ap1.conf -B
sudo hostapd /etc/hostapd/hostapd_ap2.conf -B -
启动wifi 1 hostapd
出现错误
分析
启动时遇到了接口名称冲突或驱动初始化失败的问题,之前我们提到过,这款网卡支持支持两个接口,ap或者managed的接口总数不能超过2,所以我选择down掉managed接口
主wifi接口正常启动 -
启动wifi 2接口
访客wifi启动失败
debug步骤
先关闭已经启动的接口
再启动wifi 2接口,成功启动
初步结论:关掉主wifi后,访客wifi启动成功,他们不能同时启动
所以前面的分析原因有误,不是因为ap或者managed的接口总数不能超过2导致的无法启动hostapd wifi
分析
使用 -dd参数查看详细信息
修改:
尝试了一下多种方法,原来是因为这三个接口都是使用了相同的mac地址
所以尝试修改rename8 的mac地址:
sudo ip link set dev rename13 addr 38:83:45:1a:ae:6d
再次启动:
-
启动成功
wifi分别为000Guest-AP和000Main-AP
wifi扫描能扫描到wifi
-
dnsmasq配置(/etc/dnsmasq.conf)
-
启动dnsmasq
成功启动 -
网络连通性配置
通信路由及隔离:
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
sudo iptables -A FORWARD -i rename9 -o ens33 -j ACCEPT
sudo iptables -A FORWARD -i rename10 -o ens33 -j ACCEPT
sudo iptables -A FORWARD -i ens33 -o rename10 -j ACCEPT
sudo iptables -A FORWARD -i ens33 -o rename9 -j ACCEPT
sudo iptables -A FORWARD -i rename9 -o rename10 -j DROP
sudo iptables -A FORWARD -i rename10 -o rename9 -j DROP
-
双wifi连通性测试
为什么之前创建过ap,还要创建两个ap做实践?
- 手动配置双AP涉及接口隔离、频道共享、DHCP作用域分离等,能深入理解Linux网络子系统的工作机制,理解和应用驱动的基础功能