libxt_TCPMSS.man revision 937998088f9cf8518f8af57ff2d0b5500e247eb3
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.
7.PP
8This target is used to overcome criminally braindead ISPs or servers
9which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big"
10packets.  The symptoms of this
11problem are that everything works fine from your Linux
12firewall/router, but machines behind it can never exchange large
13packets:
14.PD 0
15.RS 0.1i
16.TP 0.3i
171)
18Web browsers connect, then hang with no data received.
19.TP
202)
21Small mail works fine, but large emails hang.
22.TP
233)
24ssh works fine, but scp hangs after initial handshaking.
25.RE
26.PD
27Workaround: activate this option and add a rule to your firewall
28configuration like:
29.IP
30 iptables \-t mangle \-A FORWARD \-p tcp \-\-tcp\-flags SYN,RST SYN
31             \-j TCPMSS \-\-clamp\-mss\-to\-pmtu
32.TP
33\fB\-\-set\-mss\fP \fIvalue\fP
34Explicitly sets MSS option to specified value. If the MSS of the packet is
35already lower than \fIvalue\fP, it will \fBnot\fP be increased (from Linux
362.6.25 onwards) to avoid more problems with hosts relying on a proper MSS.
37.TP
38\fB\-\-clamp\-mss\-to\-pmtu\fP
39Automatically clamp MSS value to (path_MTU \- 40 for IPv4; \-60 for IPv6).
40This may not function as desired where asymmetric routes with differing
41path MTU exist \(em the kernel uses the path MTU which it would use to send
42packets from itself to the source and destination IP addresses. Prior to
43Linux 2.6.25, only the path MTU to the destination IP address was
44considered by this option; subsequent kernels also consider the path MTU
45to the source IP address.
46.PP
47These options are mutually exclusive.
48