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