Code: Select all
/ ppp profile set default name="default" change-tcp-mss=yes
Internet-------Etherreal.Sniffer------MT.PPPoE.Server(change-tcp-mss=yes)----DLINK(NAT)----MT.PPTP.Server--------MT.PPTP.Client------WindowsClient
ALL MT Versions 2.9.27
1) Windows Client cannot surf many websites (eg http://www.stuff.co.nz and http://www.xtra.co.nz)
2) Etherreal sniffer shows TCP Syn packets with MSS=1452 due to the above MSS rule at the PPPoE Server.
(NOTE: MSS MUST be 1400 or below to function properly due to the PPTP link in the 'loop')
3) Delete the dynamic MSS rule in the PPPoE Server and the Windows client can happily surf ALL websites (Etherreal now shows MSS as 1400 as it should, as the PPTP link is re-writing the MSS to 1400 as it should)
4) Delete the dynamic rule and manually add a MSS rule for the client of 1400 and the windows client can still surf all websites properly. (again, Etherreal shows MSS as 1400 as it should)
Verdict:
change-tcp-mss=yes re-writes the MSS value of ALL TCP SYN packets to the new value. I think this is bad. It this a feature or a fault ?
Shouldnt this rule only re-write the MSS value of TCP Syn Packets that are larger than whatever the rule is set to ?
How can we make a rule to rewrite the MSS only if the existing MSS is bigger? There are no FW matchers for existing MSS value.