Open T-X opened 2 years ago
Isn't the bug here that br-wan does not accept the advertise MTU? And if all nodes were on the same WAN they'd all use the same lower MTU, which should work, no?
@mweinelt br-wan does accept the MTU advertised by ICMPv6 RA - just not on the interface directly, which would be for all protocol families. But instead only on the IPv6 specific / for-IPv6-only interface MTU on /proc/sys/net/ipv6/conf/br-wan/mtu.
All nodes on the wan side get the same IPv6 MTU on br-wan. But the issue is that the vxlan interface still has an 1430 bytes MTU, which batman-adv will try to use, but which will not work.
Will this problem also occur, if we have set an MTU of 1300 in our firmware site.conf?
Bug report
What is the problem?
A Speedport Pro Plus at a Telekom Hybrid internet connection sends ICMPv6 Router Advertisements with an MTU option of 1440 bytes. This in turn breaks mesh-on-wan, causing packetloss for specific (but not the maximum, bc. of batman-adv fragmentation) byte ranges for client devices.
tcpdump capture on br-wan for ICMPv6 RA:
node1$ ping6 -M do -s 1300 <node2-ipv6-addr>
on the br-client layer is stuck, even though node1 and node2 are connected via mesh-on-wan; <1300 works as expectednode1$ ping6 -M do -s 1382 fe80::[...]%vx_mesh_wan
to node2 returns:ping: local error: Message too long, mtu=1370
What is the expected behaviour?
Gluon Version:
Site Configuration:
https://git.chaotikum.org/freifunk-luebeck/site-ffhl/-/tree/v0.15.2
Edit: Ideally, the Speedport would not send this option at all. I don't like either the ICMPv6 RA MTU option or the DHCP MTU option. They are only causing trouble. If the router were only sending ICMPv6 "Packet Too Big" and ICMP "Destination unreachable - The datagram is too big." should be more reliable, sufficient and would precisely only affect internet routes. But the configuration options on the Speedport Pro Plus itself are very limited, there is not even an option to disable IPv6 or ICMPv6-RA for instance. So that's why maybe it could be useful to find a solution in Gluon or the Linux kernel for this.