-1

我正在为我最后一年的项目使用 Openwrt 802.11s 和 Tp-Link wr703n 迷你路由器构建 WiFi 网状网络。OLSR 作为路由协议运行。我正在使用 Linux。

总共4个路由器

    LAN     IP Adress       Mac     Mesh IP Adress
    Node A  192.168.10.1    AO      192.168.5.1
    Node B  192.168.11.1    6E      192.168.5.2
    Node C  192.168.12.1    42      192.168.5.3
    Node D  192.168.13.1    54      192.168.5.4

上面你可以看到每个路由器的 LAN IP 地址和网状地址。因此客户端 X 通过电缆连接到节点 A,并且为节点分配了 IP 地址 192.168.10.100。客户端 Y 连接到 D 并分配了 IP 地址 192.168.13.50。

当我尝试从 Y ping X 时,我无法让它工作。此外,我也无法从操作系统终端 ping 网状 IP 地址。但是当我通过终端登录到 OpenWrt 时,我可以 ping 网格内的任何 IP 地址。

openwrt 终端 ping 网状 IP 或客户端

我已经捕获了一些我要添加到帖子中的 802.11s 信标帧。如果你看最后:

Capability: 0x01

...

.... 0... = Mesh Forwarding: No

...

我觉得这就是问题所在,因为我以前有一篇论文,而完成该项目的学生的设置是Yes,并且它正在工作。

802.11s 信标帧

那么,有人知道吗?


此外,我使用 Wireshark 检查了 OLSR 工作正常,并且可以将 hello 消息传输到消息等。

路由器配置文件之一-- OLSRD ----network---wireless(除了 IP 地址之外它们都相同):

root@OpenWrt:/etc/config# cat wireless
config wifi-device 'radio0'
    option type 'mac80211'
    option macaddr '14:cf:92:3c:67:54'
    option hwmode '11ng'
    option htmode 'HT20'
    list ht_capab 'SHORT-GI-20'
    list ht_capab 'SHORT-GI-40'
    list ht_capab 'RX-STBC1'
    list ht_capab 'DSSS_CCK-40'
    option country 'IE'
    option channel '11'
    option txpower '7'
config wifi-iface
    option device 'radio0'
    option mesh_id 'mesh_OpenWrt'
    option mode 'mesh'
    option network 'mesh'
    option encryption 'none'

root@OpenWrt:/etc/config# cat network
config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
config interface 'lan'
    option ifname 'eth0'
    option type 'bridge'
    option proto 'static'
    option netmask '255.255.255.0'
    option ipaddr '192.168.13.1'
    option gateway '192.168.5.4'
config interface 'mesh'
    option _orig_ifname 'wlan0'
    option _orig_bridge 'false'
    option proto 'static'
    option ipaddr '192.168.5.4'
    option netmask '255.255.255.0'

root@OpenWrt:/etc/config# cat olsrd
config olsrd
    option IpVersion '4'
    option FIBMetric 'flat'
    option LinkQualityLevel '2'
    option LinkQualityAlgorithm 'etx_ff'
    option OlsrPort '698'
    option Willingness '3'
    option NatThreshold '1.0'
config LoadPlugin
    option library 'olsrd_arprefresh.so.0.1'
config LoadPlugin
    option library 'olsrd_dyn_gw.so.0.5'
config LoadPlugin
    option library 'olsrd_httpinfo.so.0.1'
    option port '1978'
    list Net '0.0.0.0 0.0.0.0'
config LoadPlugin
    option library 'olsrd_nameservice.so.0.3'
config LoadPlugin
    option library 'olsrd_txtinfo.so.0.1'
    option accept '0.0.0.0'
config Interface
    option ignore '0'
    option Mode 'mesh'
    option interface 'mesh'
config InterfaceDefaults
    option Mode 'mesh' 
4

1 回答 1

0

我相信会有一个桥接接口,br-lan 两个接口wlan0
wlan1

在节点 A 中:

  1. 添加这两个接口wlan0wlan1进入网桥br-lan。wlan0<----[br-lan]--->wlan1 wlan0作为网格点。 wlan1 设置为 AP。

  2. 进行更改/etc/cofig/network

选项类型“桥”

option proto 'static'

option netmask '255.255.255.0'

option ipaddr '192.168.13.1'

3.在br-lanNodeA上运行dhcp服务器

  1. 其他节点的修改/etc/config/network如下:

    选项原型“dhcp”

现在所有 NodeB、NodeC、NodeD 都在 NodeA 的同一个 DHCP 子网 IP 系列中。192.168.13.x,DHCP 客户端在所有 NodeB/C/D 上运行,DHCP 服务器在 NodeA 上运行。

它将解决您的端到端 PING 问题。

如果您想访问所有节点的互联网,另一种方法。设置应该是这样的:

ISP<----ETH--->wan[NodeA]-wlan0<---mesh-->wlan0-[NodeB]<---mesh-->wlan0-[NodeC]<---mesh-- ->wlan0-[NodeD]-wlan1 <---wifi--->sta/pc

所有节点都将获得 DHCP IP,在我们需要运行 dhcp 客户端的每个br-lan节点中。

节点A

WAN接口eth0.2

-将所有接口eth0.2, wlan0,wlan1添加到 bridgebr-lan中。
- 进行更改/etc/config/network

option type 'bridge'

option proto 'dhcp' 



 # option netmask '255.255.255.0' /* comment this line */



# option ipaddr '192.168.13.1' /* comment this line */

其余节点将与以前相同。这将解决您的端到端 ping 问题,甚至每个节点和 STA 都可以访问互联网。

于 2018-10-27T05:12:02.273 回答