]> Pileus Git - ~andy/linux/blobdiff - Documentation/networking/ip-sysctl.txt
ipv4: introduce hardened ip_no_pmtu_disc mode
[~andy/linux] / Documentation / networking / ip-sysctl.txt
index 8a984e994e61616a9dba0a4f425a5b4371b3ae99..c97932c88ea3a39b8547d67df667061c9b677a30 100644 (file)
@@ -15,17 +15,47 @@ ip_default_ttl - INTEGER
        forwarded) IP packets. Should be between 1 and 255 inclusive.
        Default: 64 (as recommended by RFC1700)
 
-ip_no_pmtu_disc - BOOLEAN
-       Disable Path MTU Discovery. If enabled and a
+ip_no_pmtu_disc - INTEGER
+       Disable Path MTU Discovery. If enabled in mode 1 and a
        fragmentation-required ICMP is received, the PMTU to this
        destination will be set to min_pmtu (see below). You will need
        to raise min_pmtu to the smallest interface MTU on your system
        manually if you want to avoid locally generated fragments.
+
+       In mode 2 incoming Path MTU Discovery messages will be
+       discarded. Outgoing frames are handled the same as in mode 1,
+       implicitly setting IP_PMTUDISC_DONT on every created socket.
+
+       Mode 3 is a hardend pmtu discover mode. The kernel will only
+       accept fragmentation-needed errors if the underlying protocol
+       can verify them besides a plain socket lookup. Current
+       protocols for which pmtu events will be honored are TCP, SCTP
+       and DCCP as they verify e.g. the sequence number or the
+       association. This mode should not be enabled globally but is
+       only intended to secure e.g. name servers in namespaces where
+       TCP path mtu must still work but path MTU information of other
+       protocols should be discarded. If enabled globally this mode
+       could break other protocols.
+
+       Possible values: 0-3
        Default: FALSE
 
 min_pmtu - INTEGER
        default 552 - minimum discovered Path MTU
 
+ip_forward_use_pmtu - BOOLEAN
+       By default we don't trust protocol path MTUs while forwarding
+       because they could be easily forged and can lead to unwanted
+       fragmentation by the router.
+       You only need to enable this if you have user-space software
+       which tries to discover path mtus by itself and depends on the
+       kernel honoring this information. This is normally not the
+       case.
+       Default: 0 (disabled)
+       Possible values:
+       0 - disabled
+       1 - enabled
+
 route/max_size - INTEGER
        Maximum number of routes allowed in the kernel.  Increase
        this when using large numbers of interfaces and/or routes.
@@ -160,6 +190,16 @@ tcp_app_win - INTEGER
        buffer. Value 0 is special, it means that nothing is reserved.
        Default: 31
 
+tcp_autocorking - BOOLEAN
+       Enable TCP auto corking :
+       When applications do consecutive small write()/sendmsg() system calls,
+       we try to coalesce these small writes as much as possible, to lower
+       total amount of sent packets. This is done if at least one prior
+       packet for the flow is waiting in Qdisc queues or device transmit
+       queue. Applications can still use TCP_CORK for optimal behavior
+       when they know how/when to uncork their sockets.
+       Default : 1
+
 tcp_available_congestion_control - STRING
        Shows the available congestion control choices that are registered.
        More congestion control algorithms may be available as modules,
@@ -1078,6 +1118,13 @@ bindv6only - BOOLEAN
 
        Default: FALSE (as specified in RFC3493)
 
+anycast_src_echo_reply - BOOLEAN
+       Controls the use of anycast addresses as source addresses for ICMPv6
+       echo reply
+       TRUE:  enabled
+       FALSE: disabled
+       Default: FALSE
+
 IPv6 Fragmentation:
 
 ip6frag_high_thresh - INTEGER