找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12426|回复: 28

mesh-batman及有线回传的解析 教学和配置

[复制链接]
本帖最后由 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(如下配置)。
  1. config wifi-device 'radio0' #一般这个是2.4g的,一般5G对应的是radio1
  2.     option wifi-iface [..] # 这是之前的2.4g-wifi,不用删除

  3. config wifi-iface 'wmesh'  #从这开始是添加的新的mesh-wifi
  4.       option device 'radio0'
  5.       option ifname 'mesh0'
  6.       option network 'bat0_hardif_mesh0'
  7.       option mode 'mesh'
  8.       option mesh_id 'mesh'  # 这里是ssid,我填的zzmesh,填啥都行但要所有节点一致
  9.       option mesh_fwding '0'
  10.       option mesh_ttl '1'
  11.       option 'mcast_rate' '24000'
  12.    option encryption 'sae' # 这两行是加密
  13.    option key 'YOUR_PASSWD' # 这两行是加密
复制代码


然后检查一下连接上了没有:
可以通过网页查看,如下图就是连上了


之后开始配置batman
首先建立batman虚拟接口,这里只能通过修改/etc/config/network来做,在里面添加下面内容:
  1. config interface 'bat0'  # 这里我们定义的batman接口名为bat0
  2.     option proto 'batadv'
  3.     ## optional settings to override the defaults:
  4.     option routing_algo 'BATMAN_IV'
  5.     option aggregated_ogms 1
  6.     option ap_isolation 0
  7.     option bonding 0
  8.     option fragmentation 1
  9.     option gw_mode 'off'
  10.     #option gw_bandwidth '10mbit/2mbit'
  11.     #option gw_sel_class 20
  12.     option log_level 0
  13.     option orig_interval 1000
  14.     option bridge_loop_avoidance 1
  15.     option distributed_arp_table 1
  16.     option multicast_mode 1
  17.     option multicast_fanout 16
  18.     option network_coding 0
  19.     option hop_penalty 30
  20.     option isolation_mark '0x00000000/0x00000000'</pre>
复制代码

然后把之前创建的802.11s无线接口配置一下,同样是修改/etc/config/network文件,添加下面几行:
  1. config interface 'bat0_hardif_mesh0'
  2.     option proto 'batadv_hardif'
  3.     option master 'bat0'
  4.     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,加入下面几行
  1. config interface 'bat0_hardif_eth0_3' # 这个名字随意
  2.     option proto 'batadv_hardif'
  3.     option master 'bat0' # 并入bat0虚拟接口
  4.     option mtu '1536'
  5.     option ifname 'eth0.3' # 因为我的是vlan3,所以是eth0.3
  6.     option elp_interval '500'
  7.     # change throughput_override to 0 to use automatic detection; also allows kbit suffix
  8.     option throughput_override '1000mbit' # 速率
复制代码
主路由就配置完了。

再来配置ap路由,先在网页里接口那里,把wan和wan6删掉。然后同样是编辑/etc/config/network,加入下面几行把wan口并入bat0
  1. config interface 'bat0_hardif_eth1' # 这个名字随意
  2.     option proto 'batadv_hardif'
  3.     option master 'bat0' # 并入bat0虚拟接口
  4.     option mtu '1536'
  5.     option ifname 'eth1' # 我的路由器wan口对应eth1
  6.     option 'elp_interval' 500
  7.     # change throughput_override to 0 to use automatic detection; also allows kbit suffix
  8.     option 'throughput_override' '1000mbit' # 速率
复制代码

至此配置完成,把主路由的lan1和ap的wan口连接就自动可以有线回传。配置成功与否可以用batctl n查看,看是否有有线网卡。



LibreMesh好像更厉害,没看懂,期待哪位大神能给讲解一下。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
看见mesh必须顶
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

求教编译时怎么选包,以前试过,编译后batman不能用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
楼主厉害了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

其实我也不是很了解,不过还是想跟楼主探讨一下。batman-adv可以在有线网络上搭建,然而这对于结构简单的家庭网络并没有什么意义;所以一般都建议在无线网络部署。我用了很长时间尝试batman-adv组建无线mesh,甚至在一个节点上使用两个双频无线路由(模拟双5G三频路由),性能仍然差强人意。

mesh所谓有线回程,对处于同一子网的设备并没有啥意义,数据包在二层转发,与什么多跳、自组织啥的不沾边啦。

batman-adv其实真正有价值的功能是支持非mesh设备在mesh节点上快速漫游。正如楼主的方法在有线网络划分vlan建立batman-adv节点,无线接口直接以ap模式与bat0桥接,不需要802.11s/ad-hoc,无线带宽全部都提供给接入的无线设备。漫游性能我只比较过802.11r,强的不是一点点!我也不会专业的测试,反正看4k原盘切换节点不掉帧。

点评

具体细节我也不是很清楚,我也只是勉强会用而已嘛。 不过我理解的batman只是把整个网络融合成一个而已,并不涉及到AP间的漫游。 把网线直接插到子路由的lan口当AP,可以实现最简单有线串联。如果基于batman则可以  详情 回复 发表于 2020-4-27 00:12
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

请教一下,每次编译完都配置BAT0接都提示不支持的协议类型,怎么处理呢?kmod-batman-adv包已经编译进去安装了的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

这是正常的,它没有luci的支持。所以配置都需要直接改文件  发表于 2020-4-26 23:58
这是正常的,它没有luci的支持。所以配置都需要直接改文件  详情 回复 发表于 2020-4-26 23:58
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
求楼主赐教
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

很遗憾 说起 batman  今天的在大雕的源码中 炸了

点评

啥意思……!!??  详情 回复 发表于 2020-4-4 17:53
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
vergessen 发表于 2020-4-4 17:41
很遗憾 说起 batman  今天的在大雕的源码中 炸了

啥意思……!!??

点评

大雕的源码 今天编译这个会失败  详情 回复 发表于 2020-4-4 18:05
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

wongjian1979 发表于 2020-4-4 17:53
啥意思……!!??

大雕的源码 今天编译这个会失败

点评

前天编译的还正常的呢……  详情 回复 发表于 2020-4-4 18:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
vergessen 发表于 2020-4-4 18:05
大雕的源码 今天编译这个会失败

前天编译的还正常的呢……
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
wongjian1979 发表于 2020-4-3 15:33
请教一下,每次编译完都配置BAT0接都提示不支持的协议类型,怎么处理呢?kmod-batman-adv包已经编译进去安 ...

这是正常的,它没有luci的支持。所以配置都需要直接改文件
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 q623928815 于 2020-4-27 00:18 编辑
shanpo 发表于 2020-3-31 21:52
其实我也不是很了解,不过还是想跟楼主探讨一下。batman-adv可以在有线网络上搭建,然而这对于结构简单的家 ...

具体细节我也不是很清楚,我也只是勉强会用而已嘛。
不过我理解的batman只是把整个网络融合成一个而已,并不涉及到AP间的漫游。
把网线直接插到子路由的lan口当AP,可以实现最简单有线串联。如果基于batman则可以把应用范围扩大到无线串联。
这种无线串联确实要损失很多带宽,所以一般建议都是用5G来中继。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

完全不懂呀
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

shanpo 发表于 2020-3-31 21:52
其实我也不是很了解,不过还是想跟楼主探讨一下。batman-adv可以在有线网络上搭建,然而这对于结构简单的家 ...

我也有楼主的疑惑,整个环节与漫游有什么关系吗,求赐教
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 17:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表