What is the best way to figure out why 2 nodes that are connected on a WMN can see each other through 'batctl n', but 'batman ping' fails with the message "Error - mac address of the ping destination could not be resolved and is not a bat-host name"?
Node at eth1 - 10.1.1.1, wlan0 mac ether 04:f0:21:59:38:c9 root@jammy-newport:~# batctl n [B.A.T.M.A.N. adv 2021.3, MainIF/MAC: wlan0/04:f0:21:59:38:c9 (bat0/72:85:90:2a:95:06 BATMAN_IV)] IF Neighbor last-seen wlan0 c4:4b:d1:90:02:90 0.500s root@jammy-newport:~# batctl ping 10.2.1.1 Error - mac address of the ping destination could not be resolved and is not a bat-host name: 10.2.1.1
Node at eth1 - 10.2.1.1, wlan0 mac ether c4:4b:d1:90:02:90 root@focal-newport:~# batctl n [B.A.T.M.A.N. adv 2021.3, MainIF/MAC: wlan0/c4:4b:d1:90:02:90 (bat0/6e:87:15:7e:f3:14 BATMAN_IV)] IF Neighbor last-seen wlan0 04:f0:21:59:38:c9 0.708s root@focal-newport:~# batctl ping 10.1.1.1 Error - mac address of the ping destination could not be resolved and is not a bat-host name: 10.1.1.1
My intention is to be able to reach a computer on the far side of the WMN connected to eth1 10.2.1.1 from my host computer connected to the same network on eth1 10.1.1.1. It should look something like this. network -> eth1 10.1.1.1 -> wlan0 -> bat0 (inet 10.1.1.4) -> BATMAN -> bat0 (inet 10.2.1.4) -> wlan0 -> eth1 10.2.1.1 -> non-BATMAN computer
My intention is to have eth1 10.1.1.1 connected to the main network as an interface for bat0 able to communicate over bat0. On the other end, eth1 10.2.1.1 The interfaces for eth1 and wlan0 show as active for both computers.
For completeness, I'm working in Ubuntu 20.04 /etc/network/interfaces for 10.1.1.1 source-directory /etc/network/interfaces.d
allow-hotplug eth0 auto eth0 iface eth0 inet dhcp
allow hotplug eth1 auto eth1 iface eth1 inet static address 10.1.1.1 netmask 255.0.0.0 gateway 10.0.0.1 # dns-nameservers 1.1.1.1 8.8.8.8 8.8.4.4
allow hotplug bat0 auto bat0 iface bat0 inet static address 10.1.1.4 netmask 255.0.0.0 up ip link set up dev $IFACE pre-up ip link set up dev wlan0 pre-up iw dev wlan0 del pre-up iw phy phy0 interface add wlan0 type mesh pre-up iw dev wlan0 set channel 149 80MHz pre-up ip link set up dev wlan0 pre-up iw dev wlan0 mesh join mesh149 pre-up batctl if add wlan0 pre-up batctl if add eth1 down ip link set down dev $IFACE batman-adv-bridge yes batman-adv-mesh-id bat0 batman-adv-multicast-mode 1 batman-adv-ttl 50 batman-adv-originator-ttl 50 batman-adv-gateway-mode server batman-adv-hard-interface wlan0 batman-adv-hard-interface eth1
ifconfig output: bat0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.1.4 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::7085:90ff:fe2a:9506 prefixlen 64 scopeid 0x20<link> ether 72:85:90:2a:95:06 txqueuelen 1000 (Ethernet) RX packets 299 bytes 12606 (12.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1 bytes 90 (90.0 B) TX errors 0 dropped 14 overruns 0 carrier 0 collisions 0
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:d0:12:21:f7:d6 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.1.1 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::2d0:12ff:fe21:f7d7 prefixlen 64 scopeid 0x20<link> ether 00:d0:12:21:f7:d7 txqueuelen 1000 (Ethernet) RX packets 4556 bytes 328215 (328.2 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7817 bytes 486324 (486.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 25 bytes 1425 (1.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 25 bytes 1425 (1.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::6f0:21ff:fe59:38c9 prefixlen 64 scopeid 0x20<link> ether 04:f0:21:59:38:c9 txqueuelen 1000 (Ethernet) RX packets 5822 bytes 353632 (353.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6119 bytes 532058 (532.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
/etc/network/interfaces for 10.2.1.1 source-directory /etc/network/interfaces.d
allow-hotplug eth0 auto eth0 iface eth0 inet dhcp
allow hotplug eth1 auto eth1 iface eth1 inet static address 10.2.1.1 netmask 255.0.0.0 gateway 10.0.0.1 # dns-nameservers 1.1.1.1 8.8.8.8 8.8.4.4
allow hotplug bat0 auto bat0 iface bat0 inet static address 10.2.1.4 netmask 255.0.0.0 up ip link set up dev $IFACE pre-up ip link set up dev wlan0 pre-up iw dev wlan0 del pre-up iw phy phy0 interface add wlan0 type mesh pre-up iw dev wlan0 set channel 149 80MHz pre-up ip link set up dev wlan0 pre-up iw dev wlan0 mesh join mesh149 pre-up batctl if add wlan0 pre-up batctl if add eth1 down ip link set down dev $IFACE batman-adv-bridge yes batman-adv-mesh-id bat0 batman-adv-multicast-mode 1 batman-adv-ttl 50 batman-adv-originator-ttl 50 batman-adv-gateway-mode server batman-adv-hard-interface wlan0 batman-adv-hard-interface eth1
ifconfig output: bat0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.1.4 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::6c87:15ff:fe7e:f314 prefixlen 64 scopeid 0x20<link> ether 6e:87:15:7e:f3:14 txqueuelen 1000 (Ethernet) RX packets 42 bytes 1764 (1.7 KB) RX errors 0 dropped 5 overruns 0 frame 0 TX packets 2 bytes 180 (180.0 B) TX errors 0 dropped 19 overruns 0 carrier 0 collisions 0
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:d0:12:93:f7:83 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.1.1 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::2d0:12ff:fe93:f784 prefixlen 64 scopeid 0x20<link> ether 00:d0:12:93:f7:84 txqueuelen 1000 (Ethernet) RX packets 74 bytes 4826 (4.8 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 796 bytes 49010 (49.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 354 bytes 27080 (27.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 354 bytes 27080 (27.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::c64b:d1ff:fe90:290 prefixlen 64 scopeid 0x20<link> ether c4:4b:d1:90:02:90 txqueuelen 1000 (Ethernet) RX packets 508 bytes 33612 (33.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 528 bytes 48806 (48.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
On Thursday, 8 June 2023 22:38:23 CEST mark.mundy@draeger.com wrote:
What is the best way to figure out why 2 nodes that are connected on a WMN can see each other through 'batctl n', but 'batman ping' fails with the message "Error - mac address of the ping destination could not be resolved and is not a bat-host name"?
Please use either the actual mac address of the remote or the IP which is configured on the bat0 (which is also reachable directly by your host). batman-adv is not the IP subsystem and will therefore not be able to resolve any non-direct neighbors (over bat0).
Node at eth1 - 10.1.1.1, wlan0 mac ether 04:f0:21:59:38:c9 root@jammy-newport:~# batctl n [B.A.T.M.A.N. adv 2021.3, MainIF/MAC: wlan0/04:f0:21:59:38:c9 (bat0/72:85:90:2a:95:06 BATMAN_IV)] IF Neighbor last-seen wlan0 c4:4b:d1:90:02:90 0.500s root@jammy-newport:~# batctl ping 10.2.1.1 Error - mac address of the ping destination could not be resolved and is not a bat-host name: 10.2.1.1
Node at eth1 - 10.2.1.1, wlan0 mac ether c4:4b:d1:90:02:90 root@focal-newport:~# batctl n [B.A.T.M.A.N. adv 2021.3, MainIF/MAC: wlan0/c4:4b:d1:90:02:90 (bat0/6e:87:15:7e:f3:14 BATMAN_IV)] IF Neighbor last-seen wlan0 04:f0:21:59:38:c9 0.708s root@focal-newport:~# batctl ping 10.1.1.1 Error - mac address of the ping destination could not be resolved and is not a bat-host name: 10.1.1.1
My intention is to be able to reach a computer on the far side of the WMN connected to eth1 10.2.1.1 from my host computer connected to the same network on eth1 10.1.1.1. It should look something like this. network -> eth1 10.1.1.1 -> wlan0 -> bat0 (inet 10.1.1.4) -> BATMAN -> bat0 (inet 10.2.1.4) -> wlan0 -> eth1 10.2.1.1 -> non-BATMAN computer
My intention is to have eth1 10.1.1.1 connected to the main network as an interface for bat0 able to communicate over bat0. On the other end, eth1 10.2.1.1 The interfaces for eth1 and wlan0 show as active for both computers.
Reach how? With IP routing? It is not the task of batman-adv to perform IP routing (it is on the wrong layer).
On Thursday, 8 June 2023 22:38:23 CEST mark.mundy@draeger.com wrote:
allow hotplug eth1 auto eth1 iface eth1 inet static address 10.1.1.1 netmask 255.0.0.0 gateway 10.0.0.1 # dns-nameservers 1.1.1.1 8.8.8.8 8.8.4.4
allow hotplug bat0 auto bat0 iface bat0 inet static address 10.1.1.4 netmask 255.0.0.0
The IP configuration is weird. You have two IP addresses (bat0+ethX) which are overlapping (10.0.0.0/8). This cannot work.
If it should be a transparent bridge between mesh without IP routing then please add bat0+eth1 in the same bridge. And then configure the IP address on top of the bridge.
Kind regards, Sven
Thanks for your reply, Sven. Comments inline below
Sven Eckelmann wrote:
On Thursday, 8 June 2023 22:38:23 CEST mark.mundy@draeger.com wrote:
If I read your message correctly, the bridging of interfaces may make my original question moot. If I am wrong about that, I will go back to your original answer.
If it should be a transparent bridge between mesh without IP routing then please add bat0+eth1 in the same bridge. And then configure the IP address on top of the bridge.
I think I understand this to mean that I should remove the ipaddress, netmask configuration items from the bat0 interface, and create a bridge with bat0 and eth1. Something more like this for 10.1.1.1, and similar changes for 10.2.1.1 where it is actually the bridge interface that contains holds the IP address info
# new configuration file # /etc/network/interfaces for 10.1.1.1 # source-directory /etc/network/interfaces.d
allow-hotplug eth0 auto eth0 iface eth0 inet dhcp
allow hotplug eth1 auto eth1 iface eth1 inet static address 10.1.1.1 netmask 255.0.0.0 gateway 10.0.0.1 # dns-nameservers 1.1.1.1 8.8.8.8 8.8.4.4
allow hotplug bat0 auto bat0 iface bat0 inet manual <-- changed from static # address 10.2.1.4 # netmask 255.0.0.0 up ip link set up dev $IFACE pre-up ip link set up dev wlan0 pre-up iw dev wlan0 del pre-up iw phy phy0 interface add wlan0 type mesh pre-up iw dev wlan0 set channel 149 80MHz pre-up ip link set up dev wlan0 pre-up iw dev wlan0 mesh join mesh149 pre-up batctl if add wlan0 pre-up batctl if add eth1 down ip link set down dev $IFACE batman-adv-bridge yes batman-adv-mesh-id bat0 batman-adv-multicast-mode 1 batman-adv-ttl 50 batman-adv-originator-ttl 50 batman-adv-gateway-mode server batman-adv-hard-interface wlan0 batman-adv-hard-interface eth1
allow hotplug br0 auto br0 iface br0 inet static address 10.2.1.4 netmask 255.0.0.0 bridge_ports eth1 bat0
Kind regards, Sven
On Friday, 9 June 2023 20:55:24 CEST Mark Mundy wrote:
I think I understand this to mean that I should remove the ipaddress, netmask configuration items from the bat0 interface, and create a bridge with bat0 and eth1.
Nearly correct - the eth1 IP configuration must also be removed because you configured two conflicting IP addresses (with the same subnet and metric) and in this process broke the routing table.
Something more like this for 10.1.1.1, and similar changes for 10.2.1.1 where it is actually the bridge interface that contains holds the IP address info
[...]
allow hotplug eth1 auto eth1 iface eth1 inet static address 10.1.1.1 netmask 255.0.0.0 gateway 10.0.0.1 # dns-nameservers 1.1.1.1 8.8.8.8 8.8.4.4
Why do you configure an IP address on eth1? It is part of a bridge and the IP configuration must be on top of the bridge. But you already have an IP address in the same subnet configured on br0. There are ways to still work around this configuration problem but it would be weird to not simply fix the configuration.
Btw. this has nothing to do with batman-adv but is just about basic (Linux) networking.
Kind regards, Sven
Sven Eckelmann wrote:
On Friday, 9 June 2023 20:55:24 CEST Mark Mundy wrote: Btw. this has nothing to do with batman-adv but is just about basic (Linux) networking.
I took this to heart and went back and checked everything again. Not too surprisingly, you were correct. But that's what you get for putting a Windows Developer onto a Linux box to do networking.
I finally resolved the networking issue and used a shell script to configure the batman after /etc/network/interfaces was fully completed.
I will call this issue resolved, and start a new thread with my current issue. If anyone comes here as part of this discussion, look for my next post to see the current state of my configuration files. I know I hate it when people forget to post the actual answer.
Mark
b.a.t.m.a.n@lists.open-mesh.org