Surely this should be possible, but I'm just not finding the answer.
Given the following:
I have 2 BATMAN-Adv wireless mesh networks (WMN) running on separate 5 GHz channels, and a primary network. All 3 networks are in the same subnet (192.0.0.0/8).
I have a single board computer (“SBC”), acting as a bridge node between these 3 networks with 1 ethernet (eth1, eth0 is reserved and not in scope at this time) and 2 wireless NICs. The ethernet port is wired to the control room network (“Ctrl Rm Net”). Each of the wireless NICs are nodes for their respective WMNs (bat0, bat1).
Both WMNs seem to be operational, and ‘batctl -m bat0 o’ and ‘batctl -m bat1 o’ showing the full complement of connected devices on each.
^
^
| +-----------+
| +-------------+ | /-+--wlan0--((bat0))
+--+ Ctrl Rm Net +--br-lan (eth1)--+ SBC br0 |
+-------------+ | \-+--wlan1--((bat1))
+-----------+
Symptoms:
I believe that I am getting packet collisions or a cycle, because if I disable the interfaces wlan0 and wlan1 in /etc/config/network, the SBC can ping 8.8.8.8 successfully. However, this fails when these interfaces are enabled.
Also, a computer (192.0.0.13) on Ctrl Rm Net can ping eth1 at 192.168.1.100, but it cannot ping wlan0 (192.168.1.101) or wlan1 (192.168.1.102) nor any devices on either WMN (bat0 nor bat1).
Goal:
I need all 3 of these networks to communicate seamlessly.
{
"kernel": "4.14.13",
"hostname": "OpenWrt",
"model": "Gateworks Newport CN80XX GW6200",
"board_name": "gw,gw620x",
"release": {
"distribution": "OpenWrt",
"version": "SNAPSHOT",
"revision": "r0+5915-280a6b3",
"target": "octeontx\/generic",
"description": "OpenWrt SNAPSHOT r0+5915-280a6b3"
}
}
package network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'auto'
config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.100'
option netmask '255.0.0.0'
option gateway '192.0.0.1'
option delegate '0'
option ifname 'eth1 eth1.1 eth1.2'
config interface 'nw1_mesh0'
option ifname 'mesh0'
option proto 'batadv'
option mesh 'bat0'
option mtu '2304'
config interface 'wlan0'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.101'
option netmask '255.0.0.0'
option gateway '192.0.0.1'
option delegate '0'
option stp '1'
option ifname 'bat0 eth1.1'
config interface 'nw1_mesh1'
option ifname 'mesh1'
option proto 'batadv'
option mesh 'bat1'
option mtu '2304'
package wireless
config wifi-device 'radio0'
option type 'mac80211'
option channel '153'
option path 'soc@0/88001f000000.pci/pci0001:1f/0001:1f:00.0/0001:20:00.0'
option htmode 'VHT80'
option country 'US'
option legacy_rates '1'
option hwmode '11ac'
config wifi-iface 'mesh0'
option device 'radio0'
option ifname 'mesh0'
option mode 'mesh'
option mesh_fwding '0'
option encryption 'none'
option mesh_id 'mymesh'
option network 'nw1_mesh0'
config wifi-device 'radio1'
option type 'mac80211'
option channel '157'
option path 'soc@0/88808f000000.pci/pci0002:8f/0002:8f:00.0/0002:90:00.0'
option htmode 'VHT80'
option country 'US'
option legacy_rates '1'
option hwmode '11ac'
config wifi-iface 'mesh1'
option device 'radio1'
option ifname 'mesh1'
option mode 'mesh'
option mesh_fwding '0'
option mesh_id 'mymesh'
option encryption 'none'
option network 'nw1_mesh1'
package dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
option ra_management '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
package firewall
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network 'lan wlan0 wlan1'
config include
option path '/etc/firewall.user'
config include 'miniupnpd'
option type 'script'
option path '/usr/share/miniupnpd/firewall.include'
option family 'any'
option reload '1'
config zone
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option name 'wwan'
option masq '1'
option mtu_fix '1'
option network 'mesh1bridge mesh2bridge vlan1110 vlan1111'
config forwarding
option dest 'wwan'
option src 'lan'
config forwarding
option dest 'lan'
option src 'wwan'
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
12: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.1.100/8 brd 192.255.255.255 scope global br-lan
valid_lft forever preferred_lft forever
14: br-wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.1.101/8 brd 192.255.255.255 scope global br-wlan0
valid_lft forever preferred_lft forever
default via 192.0.0.1 dev br-wlan0 proto static
192.0.0.0/8 dev br-lan proto kernel scope link src 192.168.1.100
192.0.0.0/8 dev br-wlan0 proto kernel scope link src 192.168.1.101
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.0.0.0 dev br-lan table local proto kernel scope link src 192.168.1.100
broadcast 192.0.0.0 dev br-wlan0 table local proto kernel scope link src 192.168.1.101
local 192.168.1.100 dev br-lan table local proto kernel scope host src 192.168.1.100
local 192.168.1.101 dev br-wlan0 table local proto kernel scope host src 192.168.1.101
broadcast 192.255.255.255 dev br-lan table local proto kernel scope link src 192.168.1.100
broadcast 192.255.255.255 dev br-wlan0 table local proto kernel scope link src 192.168.1.101
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
lrwxrwxrwx 1 root root 16 May 24 2018 /etc/resolv.conf -> /tmp/resolv.conf
lrwxrwxrwx 1 root root 21 Oct 30 20:15 /tmp/resolv.conf -> /tmp/resolv.conf.auto
-rw-r--r-- 1 root root 0 Oct 30 20:15 /tmp/resolv.conf.auto
==> /etc/resolv.conf <==
==> /tmp/resolv.conf <==
==> /tmp/resolv.conf.auto <==
root@OpenWrt:/#