Batman-ADV Mesh Troubles

Hi,

I have been having a ton of trouble over the past 2 weeks trying to get a BATMAN-ADV mesh up and running for a school research project. I'm at the point where I'm able to run batctl o & batctl n and they both show up saying the other node is connected. But, there is no way for me to actually connect to the mesh for me to use it or see if its actually working. I'm trying to make a simple 2 node mesh and I followed these two tutorials. https://openwrt.org/docs/guide-user/network/wifi/mesh/batmanhttps://www.radiusdesk.com/old_wiki/technical_discussions/batman_basic.

Any help would be greatly appreciated, I'm really struggling with this.

I'm going to put my config files for the mesh below. They are the same for each node.

Best,
Justin

/etc/config/wireless

config wifi-device 'radio0'                                                     
        option type 'mac80211'                                                  
        option path 'platform/qca953x_wmac'                                     
        option hwmode '11ng'                                                    
        option channel '6'                                                      
        option noscan '1'                                                       
        option txpower '20'                                                     
        option htmode 'HT40-'                                                   
                                                                                
config wifi-iface 'default_radio0'                                              
        option device 'radio0'                                                  
        option network 'lan'                                                    
        option mode 'ap'                                                        
        option encryption 'psk-mixed'                                           
        option wds '1'                                                          
        option ifname 'wlan0'                                                   
        option ssid 'blink2'                                                    
        option key 'enter1234'                                                  
                                                                                
config wifi-iface 'mesh0'                                                       
        option device 'radio0'                                                  
        option ifname 'mesh0'                                                   
        option network 'nwi_mesh0'                                              
        option mode 'mesh'                                                      
        option mesh_fwding '0'                                                  
        option mesh_id 'blinkMesh'                                              
        option encryption 'psk2+ccmp'                                           
        option sae_password 'enter1234'  

/etc/config/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 'fd4c:fb00:f418::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option hostname 'GL-AR300M-6cf'
        option ipaddr '192.168.8.1'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option hostname 'GL-AR300M-6cf'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config interface 'nwi_mesh0'
        option ifname 'mesh0'
        option proto 'batadv'
        option mesh 'bat0'
#       option routing_algo 'BATMAN_V'
        option mtu '2304'

config interface 'vlan1111'
        option type 'bridge'
        option stp '1'
        option ifname 'eth1.1111 bat0.1111'
        option proto 'static'
        option ipaddr '192.168.11.11'
        option netmask '255.255.255.0'
        option delegate '0'

/etc/config/batman-adv

config 'mesh' 'bat0'
        option 'aggregated_ogms'
        option 'ap_isolation'
        option 'bonding'
        option 'fragmentation'
        option 'gw_bandwidth'
        option 'gw_mode'
        option 'gw_sel_class'
        option 'log_level'
        option 'orig_interval'
        option 'bridge_loop_avoidance'
        option 'distributed_arp_table'
        option 'multicast_mode'
        option 'network_coding'
        option 'hop_penalty'
        option 'isolation_mark'

# yet another batX instance
# config 'mesh' 'bat5'
#       option 'interfaces' 'second_mesh'

You need to assign unique IP addresses to each node ie option ipaddr '192.168.11.11' and option ipaddr '192.168.11.12' as example

This configuration, if it worked (see below), would only bridge the mesh out through an Ethernet cable. The router itself can't see any IP traffic on the mesh, since as @markbirss said, there is no interface attached to it with an IP address.

The simplest way to get started is just to throw bat0 into the LAN bridge, and otherwise set up as if they were linked by a cable (set different IP addresses but in the same subnet, turn off DHCP server on all except the main one). This will demonstrate a wireless LAN instead of wired. It is a practical configuration for the typical home where you want to deploy an extra AP or two to improve wifi coverage.

You must explicitly set all the mesh node radios to the same channel in the wifi-device configuration setting.

Once you have something simple proven, then you can do more advanced stuff like VLANs. Two important points about VLAN:

  1. When you set a VLAN on an interface (e.g. eth0.1111), do not attach the plain base interface (eth0) to anything. Everything must have a VLAN. Change the LAN to eth0.1 for example.
  2. When an eth port goes through a switch instead of directly to a single port outside, you have to configure the switch for VLANs. Set all of your VLANs 'tagged' on the CPU port. Generally for the external ports you would set 'untagged' on exactly one VLAN and 'off' on the others. If you are interconnecting VLAN-aware devices using multiple VLANs on one cable (what Cisco calls "trunked"), use "tagged" on the VLANs you want to export to the cable, and "off" on the others. Don't mix tagged and untagged on the same port.
    2a. The switch in many low-end devices doesn't readily handle VLAN numbers higher than 15. If you are setting up the whole network yourself, use VLAN numbers between 1 and 15. (If you have to link to an existing network that has higher numbers, there are ways around that, but it is making it more complicated.)