Skip to contentSkip to conversation

gateway-tunnel crashes with multiple net-dev

B.A.T.M.A.N. tetzlav 3 participants 6 messages Nov 17, 2007 – Nov 29, 2007

lore
Share & tools
lore

tetzlav

author
#0 lore raw

Its me again... ;)

At first i thought this is a problem with our complex setup on the freifunk-routers with olsr+batman on alias-interfaces and so on, but know i testet batman on my Laptop and have the same problems with multiple network interfaces and gateway-tunnels.
I dont know how this gateway-tunnels really works, but i think this pseudo-NAT on gate0 not really works or send wrong source-IP or what else...

Regards
tetzlav

-----<tunnel-client>-----

root@tetzlav # ./batmand -v
B.A.T.M.A.N. 0.3-beta rv799 (compatibility version 4)

root@tetzlav # ip addr | sed 's/\(..:..\):..:..:/\1:XX:XX:/'
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:XX:XX:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
170: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:09:XX:XX:cb:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.105.254/24 brd 192.168.105.255 scope global eth0
    inet6 fe80::209:6bff:fe3f:cb9d/64 scope link
       valid_lft forever preferred_lft forever
171: eth2: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen
1000
    link/ether 00:01:XX:XX:c3:8f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::201:3ff:fe81:c38f/64 scope link
       valid_lft forever preferred_lft forever
174: wifi0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast
qlen 199
    link/ieee802.11 00:90:XX:XX:07:e1 brd ff:ff:ff:ff:ff:ff
175: ath0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
    link/ether 06:90:XX:XX:07:e1 brd ff:ff:ff:ff:ff:ff
    inet 105.61.17.106/8 brd 105.255.255.255 scope global ath0
    inet6 fe80::490:4bff:fedc:7e1/64 scope link
       valid_lft forever preferred_lft forever

root@tetzlav # ./batmand -r2 ath0 && ./batmand -cd3
Using interface ath0 with address 105.61.17.106 and broadcast address 105.255.255.255
Adding route to 105.61.17.35 via 0.0.0.0 (table 66 - ath0) Adding route to 105.61.89.89/32 via 105.61.17.35 (table 65 - ath0) Found new gateway 105.61.17.35 -> class: 65 - 16MBit/4MBit Adding route to 105.61.17.17/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.13.18/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.81/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.17.21/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.90/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.17.32/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.18 via 0.0.0.0 (table 66 - ath0) Deleting route to 105.61.17.18 via 0.0.0.0 (table 66 - ath0) Adding route to 105.61.17.18/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.1/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.92/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.18.12/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.19/32 via 105.61.17.35 (table 66 - ath0) Found new gateway 105.61.17.19 -> class: 41 - 2048KBit/512KBit Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)

root@tetzlav # while sleep 1; do tcpdump -vvvni gate0; done
16:07:13.079874 IP (tos 0x0, ttl 7, id 7998, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32519, length 44
16:07:13.109311 IP (tos 0x0, ttl 248, id 0, offset 0, flags [none],
proto: ICMP (1), length: 56) 195.2.10.37 > 169.254.0.1: ICMP time exceeded in-transit, length 36

        IP (tos 0x0, ttl   1, id 7998, offset 0, flags [none], proto:

ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32519, length 44
16:07:13.207659 IP (tos 0x0, ttl 8, id 7999, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32775, length 44
16:07:13.236168 IP (tos 0x0, ttl 57, id 56889, offset 0, flags [none],
proto: ICMP (1), length: 64) 141.1.1.1 > 169.254.0.1: ICMP echo reply, id 56067, seq 32775, length 44
16:07:13.336254 IP (tos 0x0, ttl 1, id 8000, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 33031, length 44
16:07:13.337616 IP (tos 0xc0, ttl 64, id 56062, offset 0, flags [none],
proto: ICMP (1), length: 92) 169.254.0.0 > 169.254.0.1: ICMP time exceeded in-transit, length 72

        IP (tos 0x0, ttl   1, id 8000, offset 0, flags [none], proto:

ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 33031, length 44
16:07:13.360347 IP (tos 0x0, ttl 64, id 10973, offset 0, flags [DF],
proto: TCP (6), length: 64) 192.168.105.254.47000 > 217.10.10.194.5223:
., cksum 0xe918 (correct), 3496148623:3496148635(12) ack 3669129091 win 2003 <nop,nop,timestamp 230212021 497584259>
tcpdump: pcap_loop: recvfrom: Network is down
29 packets captured
29 packets received by filter
0 packets dropped by kernel
tcpdump: SIOCGIFHWADDR: No such device
tcpdump: SIOCGIFHWADDR: No such device

-----<on batman-gateway>----

root@17-35:~# batmand -cd3
Deleting route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Deleting route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.17.18 via 0.0.0.0 (table 66 - eth2:bat)
Adding route to 105.61.17.18/32 via 105.61.89.81 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.17.18/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.17.18 via 0.0.0.0 (table 66 - eth2:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
root@17-35:~# logread -f
Nov 17 16:24:16 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:21 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:32 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:34 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:38 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:51 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:24:56 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:25:02 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254) 
Nov 17 16:25:04 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
#1 lore raw

Meybe I'll be not usefull for you because I run only batman, but in case of multiple gateway nodes try to set -r parameter (client nodes config) to 1 or 2 and never 3.
I also experienced batmand crash on clients and using the above settings all works...

-- Antonio (isleman)

Quoted 173 lines

Its me again... ;)

At first i thought this is a problem with our complex setup on the freifunk-routers with olsr+batman on alias-interfaces and so on, but know i testet batman on my Laptop and have the same problems with multiple network interfaces and gateway-tunnels.
I dont know how this gateway-tunnels really works, but i think this pseudo-NAT on gate0 not really works or send wrong source-IP or what else...

Regards
tetzlav

-----<tunnel-client>-----

root@tetzlav # ./batmand -v
B.A.T.M.A.N. 0.3-beta rv799 (compatibility version 4)

root@tetzlav # ip addr | sed 's/\(..:..\):..:..:/\1:XX:XX:/'
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:XX:XX:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
170: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen
100
    link/ether 00:09:XX:XX:cb:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.105.254/24 brd 192.168.105.255 scope global eth0
    inet6 fe80::209:6bff:fe3f:cb9d/64 scope link
       valid_lft forever preferred_lft forever
171: eth2: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen
1000
    link/ether 00:01:XX:XX:c3:8f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::201:3ff:fe81:c38f/64 scope link
       valid_lft forever preferred_lft forever
174: wifi0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast
qlen 199
    link/ieee802.11 00:90:XX:XX:07:e1 brd ff:ff:ff:ff:ff:ff
175: ath0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
    link/ether 06:90:XX:XX:07:e1 brd ff:ff:ff:ff:ff:ff
    inet 105.61.17.106/8 brd 105.255.255.255 scope global ath0
    inet6 fe80::490:4bff:fedc:7e1/64 scope link
       valid_lft forever preferred_lft forever

root@tetzlav # ./batmand -r2 ath0 && ./batmand -cd3
Using interface ath0 with address 105.61.17.106 and broadcast address 105.255.255.255
Adding route to 105.61.17.35 via 0.0.0.0 (table 66 - ath0) Adding route to 105.61.89.89/32 via 105.61.17.35 (table 65 - ath0) Found new gateway 105.61.17.35 -> class: 65 - 16MBit/4MBit Adding route to 105.61.17.17/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.13.18/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.81/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.17.21/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.90/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.17.32/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.18 via 0.0.0.0 (table 66 - ath0) Deleting route to 105.61.17.18 via 0.0.0.0 (table 66 - ath0) Adding route to 105.61.17.18/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.1/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.89.92/32 via 105.61.17.35 (table 65 - ath0) Adding route to 105.61.18.12/32 via 105.61.17.35 (table 66 - ath0) Adding route to 105.61.17.19/32 via 105.61.17.35 (table 66 - ath0) Found new gateway 105.61.17.19 -> class: 41 - 2048KBit/512KBit Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product:
0)
Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product:
0)
Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 105.61.17.35 (gw_flags: 65, tq: 240, gw_product:
0)
Gateway client - got IP (169.254.0.1) from gateway: 105.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (105.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)

root@tetzlav # while sleep 1; do tcpdump -vvvni gate0; done
16:07:13.079874 IP (tos 0x0, ttl 7, id 7998, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32519, length 44
16:07:13.109311 IP (tos 0x0, ttl 248, id 0, offset 0, flags [none],
proto: ICMP (1), length: 56) 195.2.10.37 > 169.254.0.1: ICMP time exceeded in-transit, length 36

        IP (tos 0x0, ttl   1, id 7998, offset 0, flags [none], proto:

ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32519, length 44
16:07:13.207659 IP (tos 0x0, ttl 8, id 7999, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 32775, length 44
16:07:13.236168 IP (tos 0x0, ttl 57, id 56889, offset 0, flags [none],
proto: ICMP (1), length: 64) 141.1.1.1 > 169.254.0.1: ICMP echo reply, id 56067, seq 32775, length 44
16:07:13.336254 IP (tos 0x0, ttl 1, id 8000, offset 0, flags [none],
proto: ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 33031, length 44
16:07:13.337616 IP (tos 0xc0, ttl 64, id 56062, offset 0, flags [none],
proto: ICMP (1), length: 92) 169.254.0.0 > 169.254.0.1: ICMP time exceeded in-transit, length 72

        IP (tos 0x0, ttl   1, id 8000, offset 0, flags [none], proto:

ICMP (1), length: 64) 169.254.0.1 > 141.1.1.1: ICMP echo request, id 56067, seq 33031, length 44
16:07:13.360347 IP (tos 0x0, ttl 64, id 10973, offset 0, flags [DF],
proto: TCP (6), length: 64) 192.168.105.254.47000 > 217.10.10.194.5223:
., cksum 0xe918 (correct), 3496148623:3496148635(12) ack 3669129091 win 2003 <nop,nop,timestamp 230212021 497584259>
tcpdump: pcap_loop: recvfrom: Network is down
29 packets captured
29 packets received by filter
0 packets dropped by kernel
tcpdump: SIOCGIFHWADDR: No such device
tcpdump: SIOCGIFHWADDR: No such device

-----<on batman-gateway>----

root@17-35:~# batmand -cd3
Deleting route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Deleting route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.17.18 via 0.0.0.0 (table 66 - eth2:bat)
Adding route to 105.61.17.18/32 via 105.61.89.81 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.17.18/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.17.18 via 0.0.0.0 (table 66 - eth2:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Deleting route to 105.61.18.12/32 via 105.61.89.81 (table 66 - vlan1:bat)
Adding route to 105.61.18.12/32 via 105.61.89.92 (table 66 - vlan1:bat)
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
Gateway - assigned 169.254.0.1 to client: 105.61.17.106
root@17-35:~# logread -f
Nov 17 16:24:16 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:21 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:32 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:34 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:38 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:51 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:24:56 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:25:02 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
Nov 17 16:25:04 (none) daemon.err batmand[12811]: Error - got packet
from unknown client: 105.61.17.106 (virtual ip 192.168.105.254)
_______________________________________________
B.A.T.M.A.N mailing list
[email protected]
https://list.open-mesh.net/mm/listinfo/b.a.t.m.a.n
#2 lore raw
In reply to tetzlav

Hi,

it seems not to be a crash. The batman client destroys the gate0 interface after too many tries or is the daemon really dead ?
The problem Antonio mentions has been fixed with rev799.

Quoted 3 lines

I dont know how this gateway-tunnels really works, but i think this pseudo-NAT on gate0 not really works or send wrong source-IP or what else...

I saw this problem from time to time but it comes and goes. Can you reproduce that everytime ? If so could you provide a step by step explanation to reproduce it ? So far I saw this kind of behaviour with alias interfaces only.

Regards,
Marek

author
#3 lore raw
Quoted 7 lines · Marek Lindner

Hi,

it seems not to be a crash. The batman client destroys the gate0 interface after too many tries or is the daemon really dead ?
The problem Antonio mentions has been fixed with rev799.

Quoted 7 lines
Quoted 4 lines

I dont know how this gateway-tunnels really works, but i think this pseudo-NAT on gate0 not really works or send wrong source-IP or what else...

I saw this problem from time to time but it comes and goes. Can you reproduce that everytime ?

Yes.

Quoted 3 lines

If so could you provide a step by step explanation to reproduce it ? So far I saw this kind of behaviour with alias interfaces only.

I do nothing spezial. I have multiple network-interface in my laptop. ATM is only one, my LAN up, but without default-route.

----------------
root@tetzlav # killall batmand

root@tetzlav # ip addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
1018: wifi0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast
qlen 199
    link/ieee802.11 00:90:4b:dc:07:e1 brd ff:ff:ff:ff:ff:ff
1020: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast
qlen 100
    link/ether 00:09:6b:3f:cb:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.105.254/24 brd 192.168.105.255 scope global eth0
    inet6 fe80::209:6bff:fe3f:cb9d/64 scope link
       valid_lft forever preferred_lft forever
1021: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 00:01:03:81:c3:8f brd ff:ff:ff:ff:ff:ff
1022: ath0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
    link/ether 06:90:4b:dc:07:e1 brd ff:ff:ff:ff:ff:ff
    inet 10.61.17.105/8 brd 10.255.255.255 scope global ath0
    inet6 fe80::490:4bff:fedc:7e1/64 scope link
       valid_lft forever preferred_lft forever

root@tetzlav # ip rule

0:      from all lookup 255
32766:  from all lookup main
32767:  from all lookup default

root@tetzlav # ip route
192.168.105.0/24 dev eth0 proto kernel scope link src 192.168.105.254 10.0.0.0/8 dev ath0 proto kernel scope link src 10.61.17.105

root@tetzlav # ./batmand -r2 ath0 && ./batmand -cd3
Using interface ath0 with address 10.61.17.105 and broadcast address 10.255.255.255
Adding route to 10.61.17.35 via 0.0.0.0 (table 66 - ath0)
Found new gateway 10.61.17.35 -> class: 159 - 768KBit/768KBit Adding default route to 10.61.17.35 (gw_flags: 159, tq: 253, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)
Gateway client - gateway (10.61.17.35) says: IP (169.254.0.1) is expired Deleting default route via gate0 (table 68)
Adding default route to 10.61.17.35 (gw_flags: 159, tq: 255, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 10.61.17.35 Adding default route via gate0 (table 68)

root@tetzlav # tcpdump -vvvni gate0
tcpdump: WARNING: arptype 65534 not supported by libpcap - falling back to cooked socket
tcpdump: listening on gate0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
21:08:58.728765 IP (tos 0x0, ttl 64, id 53795, offset 0, flags [DF],
proto: TCP (6), length: 82) 192.168.105.254.55130 > 64.12.25.140.5190: P 1879403238:1879403280(42) ack 3679889184 win 63071 21:08:58.729025 IP (tos 0x0, ttl 64, id 53796, offset 0, flags [DF],
proto: TCP (6), length: 40) 192.168.105.254.55130 > 64.12.25.140.5190:
., cksum 0xec07 (correct), 42:42(0) ack 1 win 63071
tcpdump: pcap_loop: recvfrom: Network is down
2 packets captured
2 packets received by filter
0 packets dropped by kernel

------------------

root@17-35:~# batmand -cd3
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
Gateway - assigned 169.254.0.1 to client: 10.61.17.105
root@17-35:~# logread
Nov 23 21:10:46 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:10:48 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:10:50 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:11:04 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:11:22 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:11:28 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:11:47 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254) 
Nov 23 21:11:50 (none) daemon.err batmand[26508]: Error - got packet
from unknown client: 10.61.17.105 (virtual ip 192.168.105.254)

----------------

Regards
tetzlav

#4 lore raw

Hi,

Quoted 2 lines

I do nothing spezial. I have multiple network-interface in my laptop. ATM is only one, my LAN up, but without default-route.

I still can't reproduce it. Help me to find the difference in our setups. Could you send me a wireshark file from the packets in question ?

My setup:
One gateway and one client. Please make sure to use the latest revision.

Gateway:

ip addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:e0:7d:de:61:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.2/24 brd 192.168.100.255 scope global eth0
    inet 105.131.131.1/8 brd 105.255.255.255 scope global eth0:bat
    inet6 fe80::2e0:7dff:fede:6158/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ieee1394 00:02:3c:00:20:00:84:02 brd ff:ff:ff:ff:ff:ff:ff:ff
5: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
10: gate0: <POINTOPOINT,MULTICAST,NOARP,UP,10000> mtu 1471 qdisc pfifo_fast 
qlen 500
    link/[65534]
    inet 169.254.0.0/32 scope global gate0

ip rule

0:      from all lookup local
6600:   from all to 105.0.0.0/8 lookup 66
6699:   from all lookup 65
6700:   from all to 105.0.0.0/8 lookup 67
32766:  from all lookup main
32767:  from all lookup default

batmand -d 3 -g 2000 eth0:bat
WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !
Using interface eth0:bat with address 105.131.131.1 and broadcast address 105.255.255.255
B.A.T.M.A.N. 0.3-beta (compatibility version 4)
Warning - batgat kernel modul interface (/dev/batgat) not usable: No such file or directory
This may decrease the performance of batman!
debug level: 3
gateway class: 41 -> propagating: 2048KBit/512KBit
Adding route to 169.254.0.0/16 via 0.0.0.0 (table 254 - gate0) Adding route to 105.1.1.1 via 0.0.0.0 (table 66 - eth0:bat) Gateway - assigned 169.254.0.1 to client: 105.1.1.1

Client:

ip addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:16:d3:b7:3b:41 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.4/24 brd 192.168.100.255 scope global eth0
    inet 105.1.1.1/8 brd 105.255.255.255 scope global eth0:bat
    inet6 fe80::216:d3ff:feb7:3b41/64 scope link
       valid_lft forever preferred_lft forever
3: irda0: <NOARP> mtu 2048 qdisc noop qlen 8
    link/irda 00:00:00:00 brd ff:ff:ff:ff
7: eth2: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:1b:77:3f:17:ea brd ff:ff:ff:ff:ff:ff
    inet 105.1.1.1/8 brd 105.255.255.255 scope global eth2
    inet6 fe80::21b:77ff:fe3f:17ea/64 scope link
       valid_lft forever preferred_lft forever

8: gate0: <POINTOPOINT,MULTICAST,NOARP,UP,10000> mtu 1471 qdisc pfifo_fast
qlen 500 link/[65534] inet 169.254.0.1/32 scope global gate0

ip rule

0:      from all lookup local
6600:   from all to 105.0.0.0/8 lookup 66
6699:   from all lookup 65
6700:   from all to 105.0.0.0/8 lookup 67
6800:   from all iif lo lookup 68
6801:   from 127.0.0.0/8 lookup 68
6802:   from 192.168.100.0/24 lookup 68
6803:   from 105.0.0.0/8 lookup 68
32766:  from all lookup main
32767:  from all lookup default

ip route ls table 68
throw 192.168.100.0/24 proto static

throw 105.0.0.0/8  proto static
throw 127.0.0.0/8  proto static
default dev gate0  proto static  scope link  src 169.254.0.1

batmand -r 2 -d 3 eth0:bat
WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !
Using interface eth0:bat with address 105.1.1.1 and broadcast address 105.255.255.255
B.A.T.M.A.N. 0.3-beta (compatibility version 4)
Adding throw route to 127.0.0.0/8 via 0.0.0.0 (table 68 - lo) Adding throw route to 192.168.100.0/24 via 0.0.0.0 (table 68 - eth0) Adding throw route to 105.0.0.0/8 via 0.0.0.0 (table 68 - eth0:bat) Adding throw route to 105.0.0.0/8 via 0.0.0.0 (table 68 - eth2) Error - can't add throw route to 105.0.0.0/8 via 0.0.0.0 (table 68): File exists
debug level: 3
routing class: 2
Adding route to 105.131.131.1 via 0.0.0.0 (table 66 - eth0:bat) Found new gateway 105.131.131.1 -> class: 41 - 2048KBit/512KBit Adding default route to 105.131.131.1 (gw_flags: 41, tq: 253, gw_product: 0) Gateway client - got IP (169.254.0.1) from gateway: 105.131.131.1 Adding default route via gate0 (table 68)

Regards,
Marek

#5 lore raw

Hi,

some thoughts regarding your problem. I debugged that issue with Björn from Leipzig and it turned out that the source of your trouble lies within your firmware configuration.
On a client you can have 2 situations (regarding the tunnel):
- The batman host generates traffic and sends it through the tunnel.
- Other hosts (LAN/OLSR/etc) generate traffic and are routed into the tunnel.

In the later case you have to masquerade the original IP with the gate0 IP otherwise the gateway wont recognize the IP and can't send back the data.

If you don't do so you get something like that (on the gw):
kern.err batmand[17436]: Error - got packet from unknown client: 105.61.116.10 (virtual ip 104.61.116.10)

Here the OLSR IP was not masqueraded, therefore the gateway does not recognize the clients IP, drops the packet and the blackhole detection on your batman host kicks the connection as the gateway does not respond.

Your firmware (1.6.10 Kit: 1.6.10-a973) has NAT entries but only for the LAN connected to that device. You should either manipulate the policy routing or extend the NAT for all clients. I guess you are going to choose the first option and as soon as you do so your problem will vanish. :-)

Greetings,
Marek