clean
[linux-2.4.21-pre4.git] / Documentation / networking / ip-sysctl.txt
1 /proc/sys/net/ipv4/* Variables:
2
3 ip_forward - BOOLEAN
4         0 - disabled (default)
5         not 0 - enabled 
6
7         Forward Packets between interfaces.
8
9         This variable is special, its change resets all configuration
10         parameters to their default state (RFC1122 for hosts, RFC1812
11         for routers)
12
13 ip_default_ttl - INTEGER
14         default 64
15
16 ip_no_pmtu_disc - BOOLEAN
17         Disable Path MTU Discovery.
18         default FALSE
19
20 IP Fragmentation:
21
22 ipfrag_high_thresh - INTEGER
23         Maximum memory used to reassemble IP fragments. When 
24         ipfrag_high_thresh bytes of memory is allocated for this purpose,
25         the fragment handler will toss packets until ipfrag_low_thresh
26         is reached.
27         
28 ipfrag_low_thresh - INTEGER
29         See ipfrag_high_thresh  
30
31 ipfrag_time - INTEGER
32         Time in seconds to keep an IP fragment in memory.       
33
34 INET peer storage:
35
36 inet_peer_threshold - INTEGER
37         The approximate size of the storage.  Starting from this threshold      
38         entries will be thrown aggressively.  This threshold also determines
39         entries' time-to-live and time intervals between garbage collection
40         passes.  More entries, less time-to-live, less GC interval.
41
42 inet_peer_minttl - INTEGER
43         Minimum time-to-live of entries.  Should be enough to cover fragment
44         time-to-live on the reassembling side.  This minimum time-to-live  is
45         guaranteed if the pool size is less than inet_peer_threshold.
46         Measured in jiffies(1).
47
48 inet_peer_maxttl - INTEGER
49         Maximum time-to-live of entries.  Unused entries will expire after
50         this period of time if there is no memory pressure on the pool (i.e.
51         when the number of entries in the pool is very small).
52         Measured in jiffies(1).
53
54 inet_peer_gc_mintime - INTEGER
55         Minimum interval between garbage collection passes.  This interval is
56         in effect under high memory pressure on the pool.
57         Measured in jiffies(1).
58
59 inet_peer_gc_maxtime - INTEGER
60         Minimum interval between garbage collection passes.  This interval is
61         in effect under low (or absent) memory pressure on the pool.
62         Measured in jiffies(1).
63
64 TCP variables: 
65
66 tcp_syn_retries - INTEGER
67         Number of times initial SYNs for an active TCP connection attempt
68         will be retransmitted. Should not be higher than 255. Default value
69         is 5, which corresponds to ~180seconds.
70
71 tcp_synack_retries - INTEGER
72         Number of times SYNACKs for a passive TCP connection attempt will
73         be retransmitted. Should not be higher than 255. Default value
74         is 5, which corresponds to ~180seconds.
75
76 tcp_keepalive_time - INTEGER
77         How often TCP sends out keepalive messages when keepalive is enabled.
78         Default: 2hours.
79
80 tcp_keepalive_probes - INTEGER
81         How many keepalive probes TCP sends out, until it decides that the
82         connection is broken. Default value: 9.
83
84 tcp_keepalive_intvl - INTEGER
85         How frequently the probes are send out. Multiplied by
86         tcp_keepalive_probes it is time to kill not responding connection,
87         after probes started. Default value: 75sec i.e. connection
88         will be aborted after ~11 minutes of retries.
89
90 tcp_retries1 - INTEGER
91         How many times to retry before deciding that something is wrong
92         and it is necessary to report this suspection to network layer.
93         Minimal RFC value is 3, it is default, which corresponds
94         to ~3sec-8min depending on RTO.
95
96 tcp_retries2 - INTEGER
97         How may times to retry before killing alive TCP connection.
98         RFC1122 says that the limit should be longer than 100 sec.
99         It is too small number. Default value 15 corresponds to ~13-30min
100         depending on RTO.
101
102 tcp_orphan_retries - INTEGER
103         How may times to retry before killing TCP connection, closed
104         by our side. Default value 7 corresponds to ~50sec-16min
105         depending on RTO. If you machine is loaded WEB server,
106         you should think about lowering this value, such sockets
107         may consume significant resources. Cf. tcp_max_orphans.
108
109 tcp_fin_timeout - INTEGER
110         Time to hold socket in state FIN-WAIT-2, if it was closed
111         by our side. Peer can be broken and never close its side,
112         or even died unexpectedly. Default value is 60sec.
113         Usual value used in 2.2 was 180 seconds, you may restore
114         it, but remember that if your machine is even underloaded WEB server,
115         you risk to overflow memory with kilotons of dead sockets,
116         FIN-WAIT-2 sockets are less dangerous than FIN-WAIT-1,
117         because they eat maximum 1.5K of memory, but they tend
118         to live longer. Cf. tcp_max_orphans.
119
120 tcp_max_tw_buckets - INTEGER
121         Maximal number of timewait sockets held by system simultaneously.
122         If this number is exceeded time-wait socket is immediately destroyed
123         and warning is printed. This limit exists only to prevent
124         simple DoS attacks, you _must_ not lower the limit artificially,
125         but rather increase it (probably, after increasing installed memory),
126         if network conditions require more than default value.
127
128 tcp_tw_recycle - BOOLEAN
129         Enable fast recycling TIME-WAIT sockets. Default value is 0.
130         It should not be changed without advice/request of technical
131         experts.
132
133 tcp_tw_reuse - BOOLEAN
134         Allow to reuse TIME-WAIT sockets for new connections when it is
135         safe from protocol viewpoint. Default value is 0.
136         It should not be changed without advice/request of technical
137         experts.
138
139 tcp_max_orphans - INTEGER
140         Maximal number of TCP sockets not attached to any user file handle,
141         held by system. If this number is exceeded orphaned connections are
142         reset immediately and warning is printed. This limit exists
143         only to prevent simple DoS attacks, you _must_ not rely on this
144         or lower the limit artificially, but rather increase it
145         (probably, after increasing installed memory),
146         if network conditions require more than default value,
147         and tune network services to linger and kill such states
148         more aggressively. Let me to remind again: each orphan eats
149         up to ~64K of unswappable memory.
150
151 tcp_abort_on_overflow - BOOLEAN
152         If listening service is too slow to accept new connections,
153         reset them. Default state is FALSE. It means that if overflow
154         occurred due to a burst, connection will recover. Enable this
155         option _only_ if you are really sure that listening daemon
156         cannot be tuned to accept connections faster. Enabling this
157         option can harm clients of your server.
158
159 tcp_syncookies - BOOLEAN
160         Only valid when the kernel was compiled with CONFIG_SYNCOOKIES
161         Send out syncookies when the syn backlog queue of a socket 
162         overflows. This is to prevent against the common 'syn flood attack'
163         Default: FALSE
164
165         Note, that syncookies is fallback facility.
166         It MUST NOT be used to help highly loaded servers to stand
167         against legal connection rate. If you see synflood warnings
168         in your logs, but investigation shows that they occur
169         because of overload with legal connections, you should tune
170         another parameters until this warning disappear.
171         See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
172
173         syncookies seriously violate TCP protocol, do not allow
174         to use TCP extensions, can result in serious degradation
175         of some services (f.e. SMTP relaying), visible not by you,
176         but your clients and relays, contacting you. While you see
177         synflood warnings in logs not being really flooded, your server
178         is seriously misconfigured.
179
180 tcp_stdurg - BOOLEAN
181         Use the Host requirements interpretation of the TCP urg pointer field.
182         Most hosts use the older BSD interpretation, so if you turn this on
183         Linux might not communicate correctly with them.        
184         Default: FALSE 
185         
186 tcp_max_syn_backlog - INTEGER
187         Maximal number of remembered connection requests, which are
188         still did not receive an acknowledgement from connecting client.
189         Default value is 1024 for systems with more than 128Mb of memory,
190         and 128 for low memory machines. If server suffers of overload,
191         try to increase this number.
192
193 tcp_window_scaling - BOOLEAN
194         Enable window scaling as defined in RFC1323.
195
196 tcp_timestamps - BOOLEAN
197         Enable timestamps as defined in RFC1323.
198
199 tcp_sack - BOOLEAN
200         Enable select acknowledgments (SACKS).
201
202 tcp_fack - BOOLEAN
203         Enable FACK congestion avoidance and fast restransmission.
204         The value is not used, if tcp_sack is not enabled.
205
206 tcp_dsack - BOOLEAN
207         Allows TCP to send "duplicate" SACKs.
208
209 tcp_ecn - BOOLEAN
210         Enable Explicit Congestion Notification in TCP.
211
212 tcp_reordering - INTEGER
213         Maximal reordering of packets in a TCP stream.
214         Default: 3      
215
216 tcp_retrans_collapse - BOOLEAN
217         Bug-to-bug compatibility with some broken printers.
218         On retransmit try to send bigger packets to work around bugs in
219         certain TCP stacks.
220
221 tcp_wmem - vector of 3 INTEGERs: min, default, max
222         min: Amount of memory reserved for send buffers for TCP socket.
223         Each TCP socket has rights to use it due to fact of its birth.
224         Default: 4K
225
226         default: Amount of memory allowed for send buffers for TCP socket
227         by default. This value overrides net.core.wmem_default used
228         by other protocols, it is usually lower than net.core.wmem_default.
229         Default: 16K
230
231         max: Maximal amount of memory allowed for automatically selected
232         send buffers for TCP socket. This value does not override
233         net.core.wmem_max, "static" selection via SO_SNDBUF does not use this.
234         Default: 128K
235
236 tcp_rmem - vector of 3 INTEGERs: min, default, max
237         min: Minimal size of receive buffer used by TCP sockets.
238         It is guaranteed to each TCP socket, even under moderate memory
239         pressure.
240         Default: 8K
241
242         default: default size of receive buffer used by TCP sockets.
243         This value overrides net.core.rmem_default used by other protocols.
244         Default: 87380 bytes. This value results in window of 65535 with
245         default setting of tcp_adv_win_scale and tcp_app_win:0 and a bit
246         less for default tcp_app_win. See below about these variables.
247
248         max: maximal size of receive buffer allowed for automatically
249         selected receiver buffers for TCP socket. This value does not override
250         net.core.rmem_max, "static" selection via SO_RCVBUF does not use this.
251         Default: 87380*2 bytes.
252
253 tcp_mem - vector of 3 INTEGERs: min, pressure, max
254         low: below this number of pages TCP is not bothered about its
255         memory appetite.
256
257         pressure: when amount of memory allocated by TCP exceeds this number
258         of pages, TCP moderates its memory consumption and enters memory
259         pressure mode, which is exited when memory consumtion falls
260         under "low".
261
262         high: number of pages allowed for queueing by all TCP sockets.
263
264         Defaults are calculated at boot time from amount of available
265         memory.
266
267 tcp_app_win - INTEGER
268         Reserve max(window/2^tcp_app_win, mss) of window for application
269         buffer. Value 0 is special, it means that nothing is reserved.
270         Default: 31
271
272 tcp_adv_win_scale - INTEGER
273         Count buffering overhead as bytes/2^tcp_adv_win_scale
274         (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale),
275         if it is <= 0.
276         Default: 2
277
278 tcp_rfc1337 - BOOLEAN
279         If set, the TCP stack behaves conforming to RFC1337. If unset,
280         we are not conforming to RFC, but prevent TCP TIME_WAIT
281         asassination.   
282         Default: 0
283
284 tcp_low_latency - BOOLEAN
285         If set, the TCP stack makes decisions that prefer lower
286         latency as opposed to higher throughput.  By default, this
287         option is not set meaning that higher throughput is preferred.
288         An example of an application where this default should be
289         changed would be a Beowulf compute cluster.
290         Default: 0
291
292 ip_local_port_range - 2 INTEGERS
293         Defines the local port range that is used by TCP and UDP to
294         choose the local port. The first number is the first, the 
295         second the last local port number. Default value depends on
296         amount of memory available on the system:
297         > 128Mb 32768-61000
298         < 128Mb 1024-4999 or even less.
299         This number defines number of active connections, which this
300         system can issue simultaneously to systems not supporting
301         TCP extensions (timestamps). With tcp_tw_recycle enabled
302         (i.e. by default) range 1024-4999 is enough to issue up to
303         2000 connections per second to systems supporting timestamps.
304
305 ip_nonlocal_bind - BOOLEAN
306         If set, allows processes to bind() to non-local IP adresses,
307         which can be quite useful - but may break some applications.
308         Default: 0
309
310 ip_dynaddr - BOOLEAN
311         If set non-zero, enables support for dynamic addresses.
312         If set to a non-zero value larger than 1, a kernel log
313         message will be printed when dynamic address rewriting
314         occurs.
315         Default: 0
316
317 icmp_echo_ignore_all - BOOLEAN
318 icmp_echo_ignore_broadcasts - BOOLEAN
319         If either is set to true, then the kernel will ignore either all
320         ICMP ECHO requests sent to it or just those to broadcast/multicast
321         addresses, respectively.
322
323 icmp_ratelimit - INTEGER
324         Limit the maximal rates for sending ICMP packets whose type matches
325         icmp_ratemask (see below) to specific targets.
326         0 to disable any limiting, otherwise the maximal rate in jiffies(1)
327         Default: 100
328
329 icmp_ratemask - INTEGER
330         Mask made of ICMP types for which rates are being limited.
331         Significant bits: IHGFEDCBA9876543210
332         Default mask:     0000001100000011000 (6168)
333
334         Bit definitions (see include/linux/icmp.h):
335                 0 Echo Reply
336                 3 Destination Unreachable *
337                 4 Source Quench *
338                 5 Redirect
339                 8 Echo Request
340                 B Time Exceeded *
341                 C Parameter Problem *
342                 D Timestamp Request
343                 E Timestamp Reply
344                 F Info Request
345                 G Info Reply
346                 H Address Mask Request
347                 I Address Mask Reply
348
349         * These are rate limited by default (see default mask above)
350
351 icmp_ignore_bogus_error_responses - BOOLEAN
352         Some routers violate RFC1122 by sending bogus responses to broadcast
353         frames.  Such violations are normally logged via a kernel warning.
354         If this is set to TRUE, the kernel will not give such warnings, which
355         will avoid log file clutter.
356         Default: FALSE
357
358 igmp_max_memberships - INTEGER
359         Change the maximum number of multicast groups we can subscribe to.
360         Default: 20
361
362 conf/interface/*  changes special settings per interface (where "interface" is 
363                   the name of your network interface)
364 conf/all/*        is special, changes the settings for all interfaces
365
366
367 log_martians - BOOLEAN
368         Log packets with impossible addresses to kernel log.
369         log_martians for the interface will be enabled if at least one of
370         conf/{all,interface}/log_martians is set to TRUE,
371         it will be disabled otherwise
372
373 accept_redirects - BOOLEAN
374         Accept ICMP redirect messages.
375         accept_redirects for the interface will be enabled if:
376         - both conf/{all,interface}/accept_redirects are TRUE in the case forwarding
377           for the interface is enabled
378         or
379         - at least one of conf/{all,interface}/accept_redirects is TRUE in the case
380           forwarding for the interface is disabled
381         accept_redirects for the interface will be disabled otherwise
382         default TRUE (host)
383                 FALSE (router)
384
385 forwarding - BOOLEAN
386         Enable IP forwarding on this interface.
387
388 mc_forwarding - BOOLEAN
389         Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE
390         and a multicast routing daemon is required.
391         conf/all/mc_forwarding must also be set to TRUE to enable multicast routing
392         for the interface
393
394 medium_id - INTEGER
395         Integer value used to differentiate the devices by the medium they
396         are attached to. Two devices can have different id values when
397         the broadcast packets are received only on one of them.
398         The default value 0 means that the device is the only interface
399         to its medium, value of -1 means that medium is not known.
400         
401         Currently, it is used to change the proxy_arp behavior:
402         the proxy_arp feature is enabled for packets forwarded between
403         two devices attached to different media.
404
405 proxy_arp - BOOLEAN
406         Do proxy arp.
407         proxy_arp for the interface will be enabled if at least one of
408         conf/{all,interface}/proxy_arp is set to TRUE,
409         it will be disabled otherwise
410
411 shared_media - BOOLEAN
412         Send(router) or accept(host) RFC1620 shared media redirects.
413         Overrides ip_secure_redirects.
414         shared_media for the interface will be enabled if at least one of
415         conf/{all,interface}/shared_media is set to TRUE,
416         it will be disabled otherwise
417         default TRUE
418
419 secure_redirects - BOOLEAN
420         Accept ICMP redirect messages only for gateways,
421         listed in default gateway list.
422         secure_redirects for the interface will be enabled if at least one of
423         conf/{all,interface}/secure_redirects is set to TRUE,
424         it will be disabled otherwise
425         default TRUE
426
427 send_redirects - BOOLEAN
428         Send redirects, if router.
429         send_redirects for the interface will be enabled if at least one of
430         conf/{all,interface}/send_redirects is set to TRUE,
431         it will be disabled otherwise
432         Default: TRUE
433
434 bootp_relay - BOOLEAN
435         Accept packets with source address 0.b.c.d destined
436         not to this host as local ones. It is supposed, that
437         BOOTP relay daemon will catch and forward such packets.
438         conf/all/bootp_relay must also be set to TRUE to enable BOOTP relay
439         for the interface
440         default FALSE
441         Not Implemented Yet.
442
443 accept_source_route - BOOLEAN
444         Accept packets with SRR option.
445         conf/all/accept_source_route must also be set to TRUE to accept packets
446         with SRR option on the interface
447         default TRUE (router)
448                 FALSE (host)
449
450 rp_filter - BOOLEAN
451         1 - do source validation by reversed path, as specified in RFC1812
452             Recommended option for single homed hosts and stub network
453             routers. Could cause troubles for complicated (not loop free)
454             networks running a slow unreliable protocol (sort of RIP),
455             or using static routes.
456
457         0 - No source validation.
458
459         conf/all/rp_filter must also be set to TRUE to do source validation
460         on the interface
461
462         Default value is 0. Note that some distributions enable it
463         in startup scripts.
464
465 arp_filter - BOOLEAN
466         1 - Allows you to have multiple network interfaces on the same
467         subnet, and have the ARPs for each interface be answered
468         based on whether or not the kernel would route a packet from
469         the ARP'd IP out that interface (therefore you must use source
470         based routing for this to work). In other words it allows control
471         of which cards (usually 1) will respond to an arp request.
472
473         0 - (default) The kernel can respond to arp requests with addresses
474         from other interfaces. This may seem wrong but it usually makes
475         sense, because it increases the chance of successful communication.
476         IP addresses are owned by the complete host on Linux, not by
477         particular interfaces. Only for more complex setups like load-
478         balancing, does this behaviour cause problems.
479
480         arp_filter for the interface will be enabled if at least one of
481         conf/{all,interface}/arp_filter is set to TRUE,
482         it will be disabled otherwise
483
484 tag - INTEGER
485         Allows you to write a number, which can be used as required.
486         Default value is 0.
487
488 (1) Jiffie: internal timeunit for the kernel. On the i386 1/100s, on the
489 Alpha 1/1024s. See the HZ define in /usr/include/asm/param.h for the exact
490 value on your system. 
491
492 Alexey Kuznetsov.
493 kuznet@ms2.inr.ac.ru
494
495 Updated by:
496 Andi Kleen
497 ak@muc.de
498 Nicolas Delon
499 delon.nicolas@wanadoo.fr
500
501
502
503
504 /proc/sys/net/ipv6/* Variables:
505
506 IPv6 has no global variables such as tcp_*.  tcp_* settings under ipv4/ also
507 apply to IPv6 [XXX?].
508
509 bindv6only - BOOLEAN
510         Default value for IPV6_V6ONLY socket option,
511         which restricts use of the IPv6 socket to IPv6 communication 
512         only.
513                 TRUE: disable IPv4-mapped address feature
514                 FALSE: enable IPv4-mapped address feature
515
516         Default: FALSE (as specified in RFC2553bis)
517
518 conf/default/*:
519         Change the interface-specific default settings.
520
521
522 conf/all/*:
523         Change all the interface-specific settings.  
524
525         [XXX:  Other special features than forwarding?]
526
527 conf/all/forwarding - BOOLEAN
528         Enable global IPv6 forwarding between all interfaces.  
529
530         IPv4 and IPv6 work differently here; e.g. netfilter must be used 
531         to control which interfaces may forward packets and which not.
532
533         This also sets all interfaces' Host/Router setting 
534         'forwarding' to the specified value.  See below for details.
535
536         This referred to as global forwarding.
537
538 conf/interface/*:
539         Change special settings per interface.
540
541         The functional behaviour for certain settings is different 
542         depending on whether local forwarding is enabled or not.
543
544 accept_ra - BOOLEAN
545         Accept Router Advertisements; autoconfigure using them.
546         
547         Functional default: enabled if local forwarding is disabled.
548                             disabled if local forwarding is enabled.
549
550 accept_redirects - BOOLEAN
551         Accept Redirects.
552
553         Functional default: enabled if local forwarding is disabled.
554                             disabled if local forwarding is enabled.
555
556 autoconf - BOOLEAN
557         Configure link-local addresses using L2 hardware addresses.
558
559         Default: TRUE
560
561 dad_transmits - INTEGER
562         The amount of Duplicate Address Detection probes to send.
563         Default: 1
564         
565 forwarding - BOOLEAN
566         Configure interface-specific Host/Router behaviour.  
567
568         Note: It is recommended to have the same setting on all 
569         interfaces; mixed router/host scenarios are rather uncommon.
570
571         FALSE:
572
573         By default, Host behaviour is assumed.  This means:
574
575         1. IsRouter flag is not set in Neighbour Advertisements.
576         2. Router Solicitations are being sent when necessary.
577         3. If accept_ra is TRUE (default), accept Router 
578            Advertisements (and do autoconfiguration).
579         4. If accept_redirects is TRUE (default), accept Redirects.
580
581         TRUE:
582
583         If local forwarding is enabled, Router behaviour is assumed. 
584         This means exactly the reverse from the above:
585
586         1. IsRouter flag is set in Neighbour Advertisements.
587         2. Router Solicitations are not sent.
588         3. Router Advertisements are ignored.
589         4. Redirects are ignored.
590
591         Default: FALSE if global forwarding is disabled (default),
592                  otherwise TRUE.
593
594 hop_limit - INTEGER
595         Default Hop Limit to set.
596         Default: 64
597
598 mtu - INTEGER
599         Default Maximum Transfer Unit
600         Default: 1280 (IPv6 required minimum)
601
602 router_solicitation_delay - INTEGER
603         Number of seconds to wait after interface is brought up
604         before sending Router Solicitations.
605         Default: 1
606
607 router_solicitation_interval - INTEGER
608         Number of seconds to wait between Router Solicitations.
609         Default: 4
610
611 router_solicitations - INTEGER
612         Number of Router Solicitations to send until assuming no 
613         routers are present.
614         Default: 3
615
616 icmp/*:
617 ratelimit - INTEGER
618         Limit the maximal rates for sending ICMPv6 packets.
619         0 to disable any limiting, otherwise the maximal rate in jiffies(1)
620         Default: 100
621
622 IPv6 Update by:
623 Pekka Savola <pekkas@netcore.fi>
624 YOSHIFUJI Hideaki / USAGI Project <yoshfuji@linux-ipv6.org>
625
626 $Id: ip-sysctl.txt,v 1.1.1.1 2005/04/11 02:49:56 jack Exp $