通过batman-adv建立和使用mesh网络。

 

安装batctl:# sudo apt-get batctl

Batman-adv下载:https://downloads.open-mesh.org/batman/releases/batman-adv-2017.3/batman-adv-2017.3.tar.gz

不同linux内核版本对应不同版本batman-adv:https://www.open-mesh.org/projects/open-mesh/wiki/Download

 

1.  安装batman-adv

 

1.       下载并解压

2.       # make 编译当前内核或者# makeKERNELPATH=/path/to/kernel

3.       安装模块 # sudo make install

4.       加载(load)batman-adv 模块:# sudo modprobe batman-adv

或者 # sudo nano /etc/modules

加入 batman-adv

2.  配置接口

不局限于接口种类,既可以是Wi-FI接口,例如wlan0,ath0,也可以是有线网卡eth0,或者蓝牙接口pan0。

# batctl if add wlan0

判断接口是否工作:

# batctl if

工作不需要IP地址,这些接口被用于桥接,不能再用于IP路由

 

3.  Bat0

Bat0是一个虚拟接口,由batman-adv创建,用于接收发送的数据包。可以为bat0接口分配IP地址,手动分配、dhcpv4获取、avahi自动配置、dhcpv6、v6自动配置。batman-adv内核模块会检查所有进入bat0接口的包的目的mac地址,包会在B.A.T.M.A.N.’s 路由的控制下进行转发,最终到达正确的目的地址的bat0接口。

       其封装结构如下:

 

4.  建立一个简单mesh网络

首先为所有节点安装batman-adv,加载模块,在root下输入以下命令:

ip link set mtu 1532 dev wlan0              

iwconfig wlan0 mode ad-hoc essid my-mesh-network ap02:12:34:56:78:9A channel 1

#此处报错,通过sudo ifconfig wlan0 down解决

batctl if add wlan0

ip link set up dev wlan0

ip link set up dev bat0

 

 

可以通过sh脚本自动配置

#! /bin/bash

 

ifconfig wlan1 down

iwconfig wlan1 mode ad-hoc essid qxy-mesh channel 1

ifconfig wlan1 up

batctl if add wlan1

#此处可以在同一个bat0上添加多个接口,实现不同信道中继

 

ifconfig wlan1 mtu 1532

 

ifconfig bat0 up

batctl o

Logo

更多推荐