[batman-adv]学习(1) —— Overview

batman-adv是一种新型的无线路由协议,工作在2层,已经在linux中实现。

https://www.open-mesh.org/projects/batman-adv/wiki/Wiki

主要是对上面网站的学习、翻译、部署实现与记录

1.介绍

       大多数无线路由协议的实现都工作在3层,它们通过发送UDP包来交换路由信息,并通过操纵(manipulating)内核路由表来实现路由选择。

       Batman-adv则是在2层工作的——路由信息通过原始以太帧(raw ethernet frames)传输,数据流量也是经过Batman-adv。它封装(encapsulates)并转发所有数据直到到达目的地址,所以可以仿真一个所有节点参与的虚拟网络交换。所有节点都具有本地链接,并不知道网络拓扑,不会受到任何网络变化的影响。

       它的设计具有以下特征:

l  与网络层无关,在上层可以运行任何协议:IPv4,IPv6,DHCP…

l  节点可以加入mesh网络而不需要IP地址

l  很容易加入非mesh的客户端(比如移动节点),而不需要手动配置

l  非mesh客户端漫游(roaming)

l  可以最优化经过mesh网络的数据流(比如:接口选择,广播,转发修正)

l  依靠mesh节点和非mesh节点的广播和多播来运行协议

 

2.内核模块

       如果节点无法按照路由发送或者转发以太网数据包,2层路由协议也需要处理数据流量(data traffic)。在用户层面处理数据包需要占用大量CPU周期,每个包都需要进行读和写到内核的操作并返回,会限制(影响)网络的可用带宽,尤其是对低速设备。因此把batman-adv部署到了内核,这样即使在高负载情况下也只是引入了很小的包处理开销。

 

Batctl工具

       用来安装和调试batman-adv内核模块。

       可以设置和查看模块的状态信息。

       包含了2层版本的网络工具,例如ping,traceroute,tcpdump,虚拟网络交换对所有2层之上的协议都是透明的。

 

用于配置:

l  添加和删除mesh网络中的接口

l  设置或者更改batman-adv 模块的属性

l  使能 batman-adv 模块的功能参数

 

用于debug:

l  Ping 和 traceroute 节点,基于mac地址

l  解析日志用于发现路由环路

l  检索 batman-adv模块的活动信息

l  列出网络中其它mesh或non-mesh节点

l  列出gateways

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值