由于住处原有WiFi信号覆盖不佳,尝试过各种覆盖方案都不是很理想,最终选择MESH进行全屋覆盖。
#0x0 在这之前
在尝试MESH之前,我分别尝试过普通中继、电力猫等覆盖方案。实际测试过程中发现,中继的话要手动切换SSID、电力猫则受限于空气开关,而且可能由于住所较久,原主人对电力的投资也不理想,导致电力猫经常离线。但是电力猫离线后并不会关闭无线信号,而是会继续发射一个无法接通主干网络的SSID,导致频繁断网。由此考虑MESH方案进行覆盖。
在选择Mikrotik之前,我也了解过linksys、华硕、ubnt等方案。这上述的几家,方案总体实现难度不大,配置非常简单,但是价格死贵死贵。而Mikrotik的ROS系统,则是以出奇难配置,价格适中取胜。我在此部署的是2节点MESH,选用的是hAP ac2的型号。折算下来300+RMB一台节点,比起上述的几个解决方案便宜了三分之二。而且,ROS还有其他型号可以选择的,hAP ac2应该算是比较好的型号,还有很多其他更便宜的型号可以选择。
因为后面的配置不仅仅是MESH,还有开局配置,而且会根据MESH融合着配的,比较乱。这里先列一下整个配置思路:
配置型号:MikroTik hAP ac^2
配置版本:6.43rc56(release candidate)
LAN:192.168.1.0/24
Mesh1 LAN IP:192.168.1.1/24(Gateway)
Mesh2 LAN IP:192.168.1.2/24
MESH Overlay Interface名称:Mesh1和Mesh2
MESH Underlay Interface:wlan2(802.11ac)
上行链路:PPPoE
开启的服务:DHCP、NAT、DNS
#0x1 开局配置
参考文档讲得挺好,但是有一些坑没有说明,这里详细写一写吧。
首先收到一台崭新的AP,千万千万不要导入默认配置(坑1)。一切手动配置。
首先,我们根据说明书提供的地址下载winbox。随后打通上行链路。我们这里以PPPoE和DHCP动态获取为例。
使用admin 和 空密码 连入路由后,如果是DHCP动态获取,我们在IP—DHCP Client,设置好即将作为上行的端口即可。
如果是PPPoE,我们在Interface中创建一个PPPoE Client的接口。
在Dial Out中,写好账户和密码,勾上Use Peer DNS和Add Default Route,点击Apply,即可。
这里有个坑是有可能会不停地连不上。这时候要重启路由(坑2)。
然后配置DNS Server。在IP–DNS中,填入路由地址作为Server,同时勾上Allow Remote Requests:
配置完上行链路后,我们还需要配置NAT。
在IP–Firewall中,切换到NAT选项卡
chain选择srcnat:
Action选项卡选择masquerade:
这样就创建好了NAT映射。
随后我们创建DHCP Server。(一个MESH网络只需要一台节点起DHCP Server(坑3))因为DHCP Server需要宣告接口,我们先在Mesh中创建接口(坑4)。接口名称Mesh01,一切默认即可。
其次,在Ports页面中,把除了上行链路外的接口,包括wlan口全部加进来。
这样,我们就构建了一个Mesh Overlay网络在本地节点了。
现在我们终于可以配置DHCP了。
首先,我们可以在IP–Address中把路由的IP宣告到Mesh1接口中。借此机会可以修改LAN的网段。
如果地址修改了,还要在IP–DNS中同步修改一下。
随后,在IP–Pools中,我们创建一个DHCP Pool。
然后,在IP—DHCP Server中,起一个DHCP实例。接口用的是Mesh1的Overlay口,代表在Mesh网络中分发DHCP。Pool记得选刚刚创建的Pool.
现在,我们用电脑应该可以访问到外网了。这时候,我们点开System–Packages,打开后点击Check For Updates,准备升级固件。
建议升级到release candidate线,使用current线,有遇到过MESH网络中无线速率异常低的BUG(坑5)。
#0x2 MESH1配置
我们先对网络定义好加密。
在Wireless中,点击Security Profiles,定义好SSID的加密方式的Profile.
切换到WiFi Interface页面,点开wlan2(即将配置MESH的wlan interface),更改到ap bridge模式。一切按图。
Security Profile选择刚刚创建的Profile。
在WDS选项卡,选择dynamic mesh。同时选择我们的Mesh1接口。
这时候,Mesh1节点配置完毕。
#0x3 Mesh2配置
Mesh2开局后一样不要导入默认配置。这个节点我们作为扩展节点,并不提供上行链路。
我们先在Mesh中创建好Interface Mesh2,把所有端口都添加进来。
随后,在IP-Addresses中把LAN IP改到192.168.1.2(无视1.9)
然后,在IP–Route中写一条默认路由。Gateway直接写192.168.1.1即可。这时候是不可达的,没有关系。
Mesh2不需要配置NAT和DHCP。
同Mesh1一样,我们开始配置无线。首先定义好Security Profile,创建好和Mesh1一模一样的无线,所有的信道选择、信道宽度都需要一致。记得配置WDS选项卡。如果一切正常,我们会看见wds接口上线。
这样,Mesh2也配置完成了。
#0x4 功能性测试
为了测试漫游,我们使用手机节点进行测试。
频繁移动有一定概率触发日志记录。
这样就完成了漫游。
不过实际测试下来不一定会触发这个日志的。
#0x5 可靠性测试
我们在Mesh2的FDB中,首先确认某客户端连接在当前Mesh节点。
随后在客户端长ping网关Mesh1,并在Mesh2中执行重启:
可以看到是丢了一个包完成切换的。