2019独角兽企业重金招聘Python工程师标准>>>
华硕路由器的AiMesh功能(部分高端路由器支持)可以将多个无线路由器组网,对于大面积区域的WiFi覆盖非常有用。AiMesh使路由器可以通过单点进行管理,IP地址也在一个子网中(中继方式类似于级联,每个路由器构成独立的子网,需要单独管理,而且客户端无法自动切换),提供了较为详细参数的管理面板,设置管理都还是比较简单的。实测两路由器之间的节点间文件传输速度能到20MB/s以上。
- 官方固件虽然有AIMesh功能,却没有DNS服务器,导致多个节点之间都不能以名称访问,较为不便。
- 刷成开源的Merlin(梅林)固件,虽然有了DNS,却没有AIMesh,也是让人哭笑不得。
- 最后,通过ssh登录到Merlin(梅林)固件,手工启用了AIMesh功能,其实早就有了,只是被藏起来了......
1、启用AiMesh
现将一台路由器按照默认设置(设为路由器并启用了AIMesh功能)。
将第二台路由器打开,连接网络,设为Mesh节点模式。
到第一台路由器中搜索Mesh节点,搜到后点击“加入”,将显示在下方的列表中。
2、刷Merlin(梅林)固件
下载 Merlin 固件,地址如下:
- https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC86U/
登录到第一台路由器主页的Web服务routers.asus.com,点击固件的连接,上载固件到路由器,将会自动更新。
完成后,Mesh节点的图标消失了,看不见了。
不要着急,下面我们再找回来。
3、启用ssh并设置AiMesh
在路由器管理页面设置ssh服务可用,如下:
然后,远程使用ssh(Linux)或putty(WIndows)连接到路由器的本机地址。执行如下的命令:
nvram set amas_force=1
nvram commit
刷新路由的管理页面,Mesh节点的信息又出来了,如下:
4、启用DNS服务
因为我的Kubernetes集群节点设为了固定IP地址(关闭DHCP客户端),华硕路由器AC86U没有DNS服务,无法接收和解析本地域名,因此节点之间无法以机器名相互访问(IP地址可以)。包括两个步骤:
- 到路由器管理Web页面“内部网络”启用DNS服务。
- server1填写本路由器的IP地址。
- server2填写外部DNS服务地址,如8.8.8.8、9.9.9.9。
- 刷上Merlin 固件后,仍然需要将其添加到DHCP的地址列表中,才能访问。
- 到路由器管理Web页面“内部网络”-“DHCP”选择手工添加,输入地址和节点机器名称。
现在到各个节点,应该可以相互ping通了。
如果填写了路由器域的信息,还可以按照域名方式访问。如我这里是zettariver,访问podc01,机器完整名是podc01.zettariver。
这个Merlin(梅林)固件其实还有很多其它功能,以后再慢慢尝试。
- 参考资料:
- Merlin(梅林)固件网站,http://asuswrt.lostrealm.ca/download
- Merlin(梅林)固件下载,https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC86U/
- 设置,http://koolshare.cn/thread-138737-1-1.html
- 设置,http://koolshare.cn/thread-136906-1-1.html