zoukankan      html  css  js  c++  java
  • BATMAN.adv系列02:网络搭建,有线接入BATMAN.adv网络

    原创文章,转发请注明链接和作者。(而且作者很懒,没有检查错别字)

    摘要

    本文主要讲解如何通过openwrt的路由器搭建batman网络,包括通过有线接入batman网络。本文假定路由器已经成功安装了openwrt系统,由于安装系统的较多,本文不再赘述。

    1      batman-adv的安装

    首先需要确保自己的路由器安装了batman-adv安装方法有很多种,这里推荐2种。通过以下命令可以查看是否安装了batman-adv

    opkg list | grep kmod-batman-adv

    如果常规安装了通常会有以下输出:

    kmod-batman-adv - 4.9.172+2018.1-7

    1.2       okpg安装法

    输入opkg install kmod-batman-adv即可安装batman-adv

    输入opkg install batctl可以安装一个batman-adv的管理工具,虽然不是必须,但是推荐安装一下

    1.3       编译安装

    此方法类似于重新编译openwrt,因此需要参考内核编译的相关内容,这里以WNDR4300为例讲解,以下操作在Linux中进行,作者采用的是ubunt18

    1. 下载Openwrt源码,然后进入源码的根目录
    2. 更新安装包:
      ./scripts/feeds update –a
    3. 安装软件包到feeds文件夹:
      ./scripts/feeds install –a
    4. 添加Batman源码和Batman调试工具batctl
      scripts/feeds install kmod-batman-adv
      scripts/feeds install batctl
    5. 通过输入下文进入配置:
      make menuconfig
    6. 根据自己的路由器型号选择型号:
      Subtarget ---> Generic devices with NAND flash
      Target System ---> Atheros AR7xxx/AR9xxx
      Target Profile ---> NETGEAR WNDR4300v1
    7. 将Batman源码添加进编译选项中
      Kernel modules ---> Network Support ---> kmod-batman-adv
    8. 添加Batman的调试工具batctl
      Network --->batctl
    9. 添加iperf带宽测试工具。
      Network - - - >iperf
    10. 为OpenWrt系统添加LuCI,方便通过网络界面控制
      LuCI ---> Collections ---> luci
    11.   (可选)为例方便控制我们可以添加以下服务

      Network  ---> SSH ---> openssh-client
      Network  ---> SSH ---> openssh-client-utils
      Network  ---> SSH ---> openssh-keygen
      Network  ---> SSH ---> openssh-server
      Network  ---> SSH ---> openssh-sftp-client
      Network  ---> SSH ---> openssh-sftp-server

    12. 开始编译,其中V=s表示显示详细信息,-jx表示x个线程(推荐与核心数相同):
      make V=s -j4

    第一次编译的时间较长,由电脑的CPU确定。

    完成上述工作后,需要将编译好的系统植入路由器。读者根据当前路由器情况选择一种更新固件的办法:

    1、路由器还是原生系统或者忘记密码了希望重置整个openwrt系统:

      百度或谷歌搜索将编译好的镜像烧录至路由器的办法,本文不提供

    2、已经烧录好了openwrt,想换成本文刚刚编译好的系统:

      (不同路由器路径会不同)可以在/bin/targets/ar71xx/nand/可以找到一个文件openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar。登陆路由器管理界面之后进入:System--->Backup.Flash Firmware,选择openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar刷入。好像还有别的升级办法,具体自己搜索。

     

     

     

    2      组建无线batman网络

    这一步主要是使得各个路由器可以通过batman网络互联。

    下面会涉及到对许多文件的修改,可以使用ssh连接路由器后用vim命令打开文件并且修改,也可以通过fts或者sftp等方式把文件下载到电脑中然后修改并上传。

    2.1       对/etc/config/wireless文件的修改

    1、本次修改以2.4G 无线网络为例。修改2.4G Wifi的硬件配置如下,本设置相当于是对wifi工作的频率等物理信息进行设置,标红的部分下文会有讲解:

    config wifi-device 'radio0'

          option type 'mac80211'

          option channel '9'

          option hwmode '11g'

          option path 'platform/ar934x_wmac'

          option htmode 'HT40'

          option country 'US'

    其中channel应该根据自己的要求设置,应该选择一个干扰比较少的信道。

    option hwmode '11g' :表示是802.11g

    不了解802.11协议中带宽的可以参考:https://kknews.cc/zh-hk/tech/qe8x8nr.html

    2、然后将2.4G的网络配置修改如下,本设置相当于是对网络中协议相关的部分进行设置,标红的部分下文会有讲解:

    config wifi-iface 'wmesh'

          option device 'radio0'

          option ifname 'adhoc0'

          option network 'batnet'

          option mode 'adhoc'

          option ssid 'mesh'

          option mcast_rate '18000'

          option bssid '02:CA:FE:CA:CA:40'

          option encryption 'none'

     

    option device 'radio0':表明设定设备为'radio0'

    option ifname 'adhoc0':将设备的接口设定为adhoc0

    option network 'batnet':设定使用的是batman网络

    option mode 'adhoc':表明2.4G的网络工作在adhoc模式

    option ssid 'mesh':将wifi名称设置为mesh,对于ssid不了解的可以自行搜索。

    option bssid '02:CA:FE:CA:CA:40':将wifi的bssid设置成02:CA:FE:CA:CA:40。对于,对于bssid不了解的可以自行搜索。

    注意:在同一个网络中的所有Batman节点,应满足以下几个条件:(1)Wifi的频率相同,channel相同;(2)MAC地址不同,如果MAC地址相同的话,就不能够组网,这是当所有自组网不能组网的时候首先应该被排除的一个条件(3)bssid相同。

    可能会有一个“ option disabled '1' ”的选项,见到了记得改成0

    2.2       对/etc/config/network的配置

    这里我们首先保证路由器直接可以ping通,之后再做桥接

    1、添加如下

    config interface 'batnet'

            option mtu '1560'

            option proto 'batadv'

            option mesh 'bat0'

            option routing_algo 'BATMAN_V'    

    config interface 'batnet':添加一个网络接口,名为batnet

    • option proto 'batadv':该接口使用batadv协议
    • option mesh 'bat0':mesh网络为名为bat0
    • option routing_algo 'BATMAN_V'       :使用BATMAN_V路由算法

    2、添加如下

    config interface 'bat'

          option ifname 'bat0'

          option type 'bridge'

          option proto 'static'

          option mtu '1560'

          option ipaddr '10.0.0.1'

          option netmask '255.0.0.0'

    这里设置了一个桥接以及路由器在btaman网络中的IP地址

    config interface 'bat':添加一个网络接口,名为bat

    option ifname 'bat0':选择一个物理层的接口名为bat0,实际上bat0就是batman-adv对应的物理接口,向该接口发包就会在batman网络中转发

    option type 'bridge':设定此网络接口为桥接

    option proto 'static':静态IP协议

    option ipaddr '10.0.0.1':这里就是设置路由器自己的IP地址,不同路由器应该要有不同的IP,可以根据需要选择合适的网段,通常可以作为内网的网段10.0.0.0~10.255.255.255,172.16.0.0~172.31.255.255,192.168.0.0~192.168.255.255。

    option netmask '255.0.0.0':这是根据网段选择的掩码

    2.3       测试

    记得,做到这一步需要先重启一下

    输入batctl n可以查看路由器是找到了btaman网络中的其他路由器。

    使用ping命令检查是否可以通过IP连同对应的路由器

    3      有线设备接入batman网络

    默认情况下,所的有线接口都是桥接在一起,然后通过WAN口访问网络的,现在需要将一个有线接口桥接到bat0网络,这样就可以是的有线设备接入batman网络了。然后对有线设备静态分配一个IP就可以在batman中使用IP连接不同设备了。

    这里需要了解VLAN的相关内容,关于VLAN的内容可以参考:
    https://baijiahao.baidu.com/s?id=1628398215665219628&wfr=spider&for=pc

    这部分设计的配置文件都是/etc/config/network

     

    3.1       系统默认的VLAN设置

    打开路由器管理界面就,在Network下来菜单中的Switch可以看到VLAN的配置情况。这里显示untragged的就相当于接入了VLAN,tagged的我们不会用到,无需理会。

    我们再从配置文件中查看,选择一个路由器查看/ect/config/network文件可以看到,系统一开始就已经创建了两个VLAN,其中1,2,3,4,0被连接到了VLAN1上,VLAN1在lan接口中被配置成了桥接。这个lan接口可以在路由器管理界面中的在Network下来菜单中的Interface中看到。

    3.2       修改配置文件使得有线接入BATMAN网络

    这里我们开始修改配置文件使得有线接入BATMAN网络,这里我们只选择一个接口接入BATMAN网络,多个接口的情况相似,以下有几个需要注意的点:

    1. 配置文件中的编号和实际中LAN口的编号会有所不同,配置完之后去Network下来菜单中的Switch中看一眼,这一点下面会再次强调。
    2. 因为VLAN1被lan接口占用了,所有我们应该新建一个VLAN

    3.2.1   修改VLAN

    本人新建了一个VLAN3,并且将4号接口从VLAN1中移除,接入到了VLAN3中,记得VLAN3中也需要有加入0号口并且处于tageted状态。这样,网卡中同时也会出现一个名为eth0.3的虚拟网卡。(不同路由器可能会有不同的switch设备,最后生成的可能也不一定是eth0.3,可能会是eth1.3等)

    3.2.2   桥接入batman网络

    将eth0.3加入bat接口,保存,然后重启路由器就可以了

    3.2      有线接口的编号和配置文件中的可能不一样

    注意:有线接口的编号和配置文件中的可能不一样

    下面有一个本人路由器的例子由上文可知,我在配置文件中选择加入VLAN3的编号是4,但是实际上在Network下来菜单中的Switch界面可以看到,发生变化的接口是LAN1

    4.1       有线接入设备的设置

    这里以ubutnu18为例,设置静态ip就可以了。接入后,所有的BATMAN.adv网络中的有线接口相当于在一个交换机下,同给路由器配置的BATMAN.adv ip地址可以直接访问路由器。

     

  • 相关阅读:
    设计模式(三):装饰模式
    实战pythoninstagram
    设计模式(二):观察者模式
    instagram 的api研究
    设计模式(四):代理模式
    设计模式(五):工厂模式
    qq微博oauth认证记录
    js 处理json数据记录
    17Django高级之Auth
    20Django高级之信号
  • 原文地址:https://www.cnblogs.com/zornlink/p/11691236.html
Copyright © 2011-2022 走看看