1 This target allows to alter the MSS value of TCP SYN packets, to control 2 the maximum size for that connection (usually limiting it to your 3 outgoing interface's MTU minus 40 for IPv4 or 60 for IPv6, respectively). 4 Of course, it can only be used 5 in conjunction with 6 \fB\-p tcp\fP. 7 .PP 8 This target is used to overcome criminally braindead ISPs or servers 9 which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big" 10 packets. The symptoms of this 11 problem are that everything works fine from your Linux 12 firewall/router, but machines behind it can never exchange large 13 packets: 14 .IP 1. 4 15 Web browsers connect, then hang with no data received. 16 .IP 2. 4 17 Small mail works fine, but large emails hang. 18 .IP 3. 4 19 ssh works fine, but scp hangs after initial handshaking. 20 .PP 21 Workaround: activate this option and add a rule to your firewall 22 configuration like: 23 .IP 24 iptables \-t mangle \-A FORWARD \-p tcp \-\-tcp\-flags SYN,RST SYN 25 \-j TCPMSS \-\-clamp\-mss\-to\-pmtu 26 .TP 27 \fB\-\-set\-mss\fP \fIvalue\fP 28 Explicitly sets MSS option to specified value. If the MSS of the packet is 29 already lower than \fIvalue\fP, it will \fBnot\fP be increased (from Linux 30 2.6.25 onwards) to avoid more problems with hosts relying on a proper MSS. 31 .TP 32 \fB\-\-clamp\-mss\-to\-pmtu\fP 33 Automatically clamp MSS value to (path_MTU \- 40 for IPv4; \-60 for IPv6). 34 This may not function as desired where asymmetric routes with differing 35 path MTU exist \(em the kernel uses the path MTU which it would use to send 36 packets from itself to the source and destination IP addresses. Prior to 37 Linux 2.6.25, only the path MTU to the destination IP address was 38 considered by this option; subsequent kernels also consider the path MTU 39 to the source IP address. 40 .PP 41 These options are mutually exclusive. 42