|
本帖最后由 q623928815 于 2020-3-7 00:40 编辑
这两周研究了研究batman的mesh组网,把经验跟大家分享一下
本文主要基于batman官网说明书:https://www.open-mesh.org/projec ... -adv-Openwrt-config
先说点基本概念
802.11s只是无线的mesh。通过batman才可以实现有线回传。
batman不同版本配置不一样,这里适用的是2019.0-3以后的版本。
batman的原理如上图所示,即把多个接口(interface)合并为一个batman格式的虚拟接口,然后该接口可以像eth0(lan口)一样并入br-lan中,实现batman网桥。
也就是说,我们需要构建了一个batman的虚拟接口,这个接口包含了802.11s的无线接口,某些有线网口(见文章后面的有线回传设置)。
开始配置:
需要安装3个依赖包:kmod-batman-adv batctl-full wpad-mesh-openssl
其中wpad只能装一个,需要先卸载了wpad-basic再装这个
先添加一个802.11s的wifi,要注意所有节点信道要一致。可以通过网页添加,也可以直接修改/etc/config/wireless(如下配置)。
- config wifi-device 'radio0' #一般这个是2.4g的,一般5G对应的是radio1
- option wifi-iface [..] # 这是之前的2.4g-wifi,不用删除
- config wifi-iface 'wmesh' #从这开始是添加的新的mesh-wifi
- option device 'radio0'
- option ifname 'mesh0'
- option network 'bat0_hardif_mesh0'
- option mode 'mesh'
- option mesh_id 'mesh' # 这里是ssid,我填的zzmesh,填啥都行但要所有节点一致
- option mesh_fwding '0'
- option mesh_ttl '1'
- option 'mcast_rate' '24000'
- option encryption 'sae' # 这两行是加密
- option key 'YOUR_PASSWD' # 这两行是加密
复制代码
然后检查一下连接上了没有:
可以通过网页查看,如下图就是连上了
之后开始配置batman
首先建立batman虚拟接口,这里只能通过修改/etc/config/network来做,在里面添加下面内容:
- config interface 'bat0' # 这里我们定义的batman接口名为bat0
- option proto 'batadv'
- ## optional settings to override the defaults:
- option routing_algo 'BATMAN_IV'
- option aggregated_ogms 1
- option ap_isolation 0
- option bonding 0
- option fragmentation 1
- option gw_mode 'off'
- #option gw_bandwidth '10mbit/2mbit'
- #option gw_sel_class 20
- option log_level 0
- option orig_interval 1000
- option bridge_loop_avoidance 1
- option distributed_arp_table 1
- option multicast_mode 1
- option multicast_fanout 16
- option network_coding 0
- option hop_penalty 30
- option isolation_mark '0x00000000/0x00000000'</pre>
复制代码
然后把之前创建的802.11s无线接口配置一下,同样是修改/etc/config/network文件,添加下面几行:
- config interface 'bat0_hardif_mesh0'
- option proto 'batadv_hardif'
- option master 'bat0'
- option mtu '1536'
复制代码
所有节点配置之后重启一下,应该无线mesh就配置好了,可以用登录路由器后输入batctl o或batctl n查看,像下面那样就成功了(我一共有三个mesh无线节点,所有batctl n能看到链接了两个节点)
配置完成了,但是还没用起来。下面就来吧他用起来。
首先关闭所有ap节点的dhcp,并把br-lan配置成同网段的不同ip。比如主路由是192.168.3.1,ap路由就是192.168.3.2 192.168.3.3之类的。主路由的dhcp不能关闭。
然后把bat0接进br-lan里:打开lan配置,像下图所示在bat0前面打勾。
现在再连各个ap的wifi或lan口,应该就能自动获取ip地址上网了。
有线回传设置:
这里我想到的方案是吧主路由4个lan口中的1个转换成有线回传端口,剩下3个端口仍是普通lan口。对于ap路由,则把wan口转换成有线回传接口,lan口还是普通lan口。
首先来操作主路由,在网页里的交换机设置:添加一个vlan,把其中的一个lan端口分配给新建立的vlan,并把cpu设置成tagged,如下图所示。我是吧lan1分配给了vlan3,但我的配置里有个vlan2是wan的,可能很多人没有这个vlan,并不影响。
然后再把这个vlan3接入batman网络,方法是编辑/etc/config/network,加入下面几行
- config interface 'bat0_hardif_eth0_3' # 这个名字随意
- option proto 'batadv_hardif'
- option master 'bat0' # 并入bat0虚拟接口
- option mtu '1536'
- option ifname 'eth0.3' # 因为我的是vlan3,所以是eth0.3
- option elp_interval '500'
- # change throughput_override to 0 to use automatic detection; also allows kbit suffix
- option throughput_override '1000mbit' # 速率
复制代码 主路由就配置完了。
再来配置ap路由,先在网页里接口那里,把wan和wan6删掉。然后同样是编辑/etc/config/network,加入下面几行把wan口并入bat0
- config interface 'bat0_hardif_eth1' # 这个名字随意
- option proto 'batadv_hardif'
- option master 'bat0' # 并入bat0虚拟接口
- option mtu '1536'
- option ifname 'eth1' # 我的路由器wan口对应eth1
- option 'elp_interval' 500
- # change throughput_override to 0 to use automatic detection; also allows kbit suffix
- option 'throughput_override' '1000mbit' # 速率
复制代码
至此配置完成,把主路由的lan1和ap的wan口连接就自动可以有线回传。配置成功与否可以用batctl n查看,看是否有有线网卡。
LibreMesh好像更厉害,没看懂,期待哪位大神能给讲解一下。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|