[7.504] MTU/MSS problems

Hi,
using the red i encountered some MTU/MSS problems.

as i discovered my maximum Usable MTU size at the moment is 1472 Trough the RED (whitch is normal ) but mtu path discovery seems to fail. currently i have some problems reaching several sites.

i found that i could solve the problem by changing the MSS size field on forwarded traffic.

to change the MSS i use this command:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400

what is the expected behavior ? because i think some other customers will have problems with this.
  • This should not be the case.

    RED will transport standard-sized (1500 bytes) frames fine, however this will cause fragmented tunnel UDP packets. This should not be a problem unless there's a system in the path that drops fragmented UDP packets. Maybe this is the case for your link?

    Additionally, we already add rules on the ASG that limit the MSS for TCP connections to 1300 bytes to avoid the fragmentation case. The rules should look like this:


    Chain FORWARD (policy DROP 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 PHYSDEV match --physdev-out reds1 TCPMSS set 1300
        0     0 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 PHYSDEV match --physdev-in reds1 TCPMSS set 1300
        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           CONFIRMED match


    These rules should also exist on your system, please check.
  • ok, i have the rules but i will do a reboot ASAP to check without me messing with it.

    there is one thing that could be different, i currently do VLAN tagging and the problem is happening on a vlan, could it be that the standard rules are not matching the vlan traffic, because of the physdev-in/out option.

    -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400 
    -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m physdev  --physdev-out reds1 -j TCPMSS --set-mss 1300 
    -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m physdev  --physdev-in reds1 -j TCPMSS --set-mss 1300
  • Ah, I see. Yes, that would explain it.

    Do you have the redsX device in a bridge with a VLAN interface, or with a standard interface that also carries VLAN frames?

    /tom
  • it's a standard interface with vlan tagging, so its not bridged etc.
  • Hrrm, can you just send me the output of "ip a" on the console? We can also continue this by email (tkistner@astaro.com) or jabber (tom@duncanthrax.net).

    /tom