Mixed MTU hosts on a network
rm at romanrm.net
Fri Mar 16 11:53:43 CET 2018
On Fri, 16 Mar 2018 10:35:18 +0100
Matthias Ordner <matthias.ordner at noris.net> wrote:
> If you only care about TCP connections you could set a different TCP-MSS
> with an iptables rule.
On Fri, 16 Mar 2018 11:01:51 +0100
Kalin KOZHUHAROV <me.kalin at gmail.com> wrote:
> You may need to pre-shape the packets for the "offenders", e.g.
> ip6tables -t mangle -A POSTROUTING -o wg0 -d WHATEVERHOST -p tcp -m
> tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1352
> O, wait! You talk IPv6...
> ip6tables -t mangle -A POSTROUTING -o wg0 -d fd39:30::250/128 -p tcp
> -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1372
I knew about this option, but wanted to avoid it because it would incur more
overhead (going to iptables for this) and a bit more complexity.
But guess what, turns out that didn't work either. Tried both OUTPUT and
POSTROUTING chains on the "mangle" table, and set-mss all the way down to
1220, no matter what, the iperf3 output looked the same as before. At this
point I thought I'm going crazy or something. :)
It's not just iperf either, trying to send a file with "netcat6" into a
running listener on the other side also failed to transfer data.
Then almost by accident, I discovered that what also helps. It's to reduce
interface MTU only on the receiver, but just by a bit more, to 1408.
So what makes it work is EITHER:
a) set MTU 1412 on wg0 at sender;
b) set MTU 1408 on wg0 at receiver.
...doing both at the same time is not even necessary. Some tcpdumps from the
receiver host are attached to demonstrate (if anyone else thinks I am crazy :).
Now, I can live with just the impacted (PPPoE) hosts having a lower MTU on wg0.
But still the whole thing seems rather weird.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the WireGuard