Batman網絡搭建,有線接入batman網絡


摘要

本文主要講解如何通過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. 11.    (可選)為例方便控制我們可以添加以下服務
    Network  ---> SSH ---> openssh-sftp-server
  12. 開始編譯:
    make V=s -j4

第一次編譯的時間較長,由電腦的CPU確定。

完成上述之后可以在/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相同。

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就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM