Kconfig 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. #
  2. # IP configuration
  3. #
  4. choice
  5. prompt "Choose IP: FIB lookup"
  6. depends on INET
  7. default IP_FIB_HASH
  8. config IP_FIB_HASH
  9. bool "FIB_HASH"
  10. ---help---
  11. Current FIB is very proven and good enough for most users.
  12. config IP_FIB_TRIE
  13. bool "FIB_TRIE"
  14. ---help---
  15. Use new experimental LC-trie as FIB lookup algoritm.
  16. This improves lookup performance
  17. LC-trie is described in:
  18. IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson
  19. IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999
  20. An experimental study of compression methods for dynamic tries
  21. Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002.
  22. http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/
  23. endchoice
  24. config IP_MULTICAST
  25. bool "IP: multicasting"
  26. depends on INET
  27. help
  28. This is code for addressing several networked computers at once,
  29. enlarging your kernel by about 2 KB. You need multicasting if you
  30. intend to participate in the MBONE, a high bandwidth network on top
  31. of the Internet which carries audio and video broadcasts. More
  32. information about the MBONE is on the WWW at
  33. <http://www-itg.lbl.gov/mbone/>. Information about the multicast
  34. capabilities of the various network cards is contained in
  35. <file:Documentation/networking/multicast.txt>. For most people, it's
  36. safe to say N.
  37. config IP_ADVANCED_ROUTER
  38. bool "IP: advanced router"
  39. depends on INET
  40. ---help---
  41. If you intend to run your Linux box mostly as a router, i.e. as a
  42. computer that forwards and redistributes network packets, say Y; you
  43. will then be presented with several options that allow more precise
  44. control about the routing process.
  45. The answer to this question won't directly affect the kernel:
  46. answering N will just cause the configurator to skip all the
  47. questions about advanced routing.
  48. Note that your box can only act as a router if you enable IP
  49. forwarding in your kernel; you can do that by saying Y to "/proc
  50. file system support" and "Sysctl support" below and executing the
  51. line
  52. echo "1" > /proc/sys/net/ipv4/ip_forward
  53. at boot time after the /proc file system has been mounted.
  54. If you turn on IP forwarding, you will also get the rp_filter, which
  55. automatically rejects incoming packets if the routing table entry
  56. for their source address doesn't match the network interface they're
  57. arriving on. This has security advantages because it prevents the
  58. so-called IP spoofing, however it can pose problems if you use
  59. asymmetric routing (packets from you to a host take a different path
  60. than packets from that host to you) or if you operate a non-routing
  61. host which has several IP addresses on different interfaces. To turn
  62. rp_filter off use:
  63. echo 0 > /proc/sys/net/ipv4/conf/<device>/rp_filter
  64. or
  65. echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
  66. If unsure, say N here.
  67. config IP_MULTIPLE_TABLES
  68. bool "IP: policy routing"
  69. depends on IP_ADVANCED_ROUTER
  70. ---help---
  71. Normally, a router decides what to do with a received packet based
  72. solely on the packet's final destination address. If you say Y here,
  73. the Linux router will also be able to take the packet's source
  74. address into account. Furthermore, the TOS (Type-Of-Service) field
  75. of the packet can be used for routing decisions as well.
  76. If you are interested in this, please see the preliminary
  77. documentation at <http://www.compendium.com.ar/policy-routing.txt>
  78. and <ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex>.
  79. You will need supporting software from
  80. <ftp://ftp.tux.org/pub/net/ip-routing/>.
  81. If unsure, say N.
  82. config IP_ROUTE_FWMARK
  83. bool "IP: use netfilter MARK value as routing key"
  84. depends on IP_MULTIPLE_TABLES && NETFILTER
  85. help
  86. If you say Y here, you will be able to specify different routes for
  87. packets with different mark values (see iptables(8), MARK target).
  88. config IP_ROUTE_MULTIPATH
  89. bool "IP: equal cost multipath"
  90. depends on IP_ADVANCED_ROUTER
  91. help
  92. Normally, the routing tables specify a single action to be taken in
  93. a deterministic manner for a given packet. If you say Y here
  94. however, it becomes possible to attach several actions to a packet
  95. pattern, in effect specifying several alternative paths to travel
  96. for those packets. The router considers all these paths to be of
  97. equal "cost" and chooses one of them in a non-deterministic fashion
  98. if a matching packet arrives.
  99. config IP_ROUTE_MULTIPATH_CACHED
  100. bool "IP: equal cost multipath with caching support (EXPERIMENTAL)"
  101. depends on: IP_ROUTE_MULTIPATH
  102. help
  103. Normally, equal cost multipath routing is not supported by the
  104. routing cache. If you say Y here, alternative routes are cached
  105. and on cache lookup a route is chosen in a configurable fashion.
  106. If unsure, say N.
  107. config IP_ROUTE_MULTIPATH_RR
  108. tristate "MULTIPATH: round robin algorithm"
  109. depends on IP_ROUTE_MULTIPATH_CACHED
  110. help
  111. Mulitpath routes are chosen according to Round Robin
  112. config IP_ROUTE_MULTIPATH_RANDOM
  113. tristate "MULTIPATH: random algorithm"
  114. depends on IP_ROUTE_MULTIPATH_CACHED
  115. help
  116. Multipath routes are chosen in a random fashion. Actually,
  117. there is no weight for a route. The advantage of this policy
  118. is that it is implemented stateless and therefore introduces only
  119. a very small delay.
  120. config IP_ROUTE_MULTIPATH_WRANDOM
  121. tristate "MULTIPATH: weighted random algorithm"
  122. depends on IP_ROUTE_MULTIPATH_CACHED
  123. help
  124. Multipath routes are chosen in a weighted random fashion.
  125. The per route weights are the weights visible via ip route 2. As the
  126. corresponding state management introduces some overhead routing delay
  127. is increased.
  128. config IP_ROUTE_MULTIPATH_DRR
  129. tristate "MULTIPATH: interface round robin algorithm"
  130. depends on IP_ROUTE_MULTIPATH_CACHED
  131. help
  132. Connections are distributed in a round robin fashion over the
  133. available interfaces. This policy makes sense if the connections
  134. should be primarily distributed on interfaces and not on routes.
  135. config IP_ROUTE_VERBOSE
  136. bool "IP: verbose route monitoring"
  137. depends on IP_ADVANCED_ROUTER
  138. help
  139. If you say Y here, which is recommended, then the kernel will print
  140. verbose messages regarding the routing, for example warnings about
  141. received packets which look strange and could be evidence of an
  142. attack or a misconfigured system somewhere. The information is
  143. handled by the klogd daemon which is responsible for kernel messages
  144. ("man klogd").
  145. config IP_PNP
  146. bool "IP: kernel level autoconfiguration"
  147. depends on INET
  148. help
  149. This enables automatic configuration of IP addresses of devices and
  150. of the routing table during kernel boot, based on either information
  151. supplied on the kernel command line or by BOOTP or RARP protocols.
  152. You need to say Y only for diskless machines requiring network
  153. access to boot (in which case you want to say Y to "Root file system
  154. on NFS" as well), because all other machines configure the network
  155. in their startup scripts.
  156. config IP_PNP_DHCP
  157. bool "IP: DHCP support"
  158. depends on IP_PNP
  159. ---help---
  160. If you want your Linux box to mount its whole root file system (the
  161. one containing the directory /) from some other computer over the
  162. net via NFS and you want the IP address of your computer to be
  163. discovered automatically at boot time using the DHCP protocol (a
  164. special protocol designed for doing this job), say Y here. In case
  165. the boot ROM of your network card was designed for booting Linux and
  166. does DHCP itself, providing all necessary information on the kernel
  167. command line, you can say N here.
  168. If unsure, say Y. Note that if you want to use DHCP, a DHCP server
  169. must be operating on your network. Read
  170. <file:Documentation/nfsroot.txt> for details.
  171. config IP_PNP_BOOTP
  172. bool "IP: BOOTP support"
  173. depends on IP_PNP
  174. ---help---
  175. If you want your Linux box to mount its whole root file system (the
  176. one containing the directory /) from some other computer over the
  177. net via NFS and you want the IP address of your computer to be
  178. discovered automatically at boot time using the BOOTP protocol (a
  179. special protocol designed for doing this job), say Y here. In case
  180. the boot ROM of your network card was designed for booting Linux and
  181. does BOOTP itself, providing all necessary information on the kernel
  182. command line, you can say N here. If unsure, say Y. Note that if you
  183. want to use BOOTP, a BOOTP server must be operating on your network.
  184. Read <file:Documentation/nfsroot.txt> for details.
  185. config IP_PNP_RARP
  186. bool "IP: RARP support"
  187. depends on IP_PNP
  188. help
  189. If you want your Linux box to mount its whole root file system (the
  190. one containing the directory /) from some other computer over the
  191. net via NFS and you want the IP address of your computer to be
  192. discovered automatically at boot time using the RARP protocol (an
  193. older protocol which is being obsoleted by BOOTP and DHCP), say Y
  194. here. Note that if you want to use RARP, a RARP server must be
  195. operating on your network. Read <file:Documentation/nfsroot.txt> for
  196. details.
  197. # not yet ready..
  198. # bool ' IP: ARP support' CONFIG_IP_PNP_ARP
  199. config NET_IPIP
  200. tristate "IP: tunneling"
  201. depends on INET
  202. select INET_TUNNEL
  203. ---help---
  204. Tunneling means encapsulating data of one protocol type within
  205. another protocol and sending it over a channel that understands the
  206. encapsulating protocol. This particular tunneling driver implements
  207. encapsulation of IP within IP, which sounds kind of pointless, but
  208. can be useful if you want to make your (or some other) machine
  209. appear on a different network than it physically is, or to use
  210. mobile-IP facilities (allowing laptops to seamlessly move between
  211. networks without changing their IP addresses).
  212. Saying Y to this option will produce two modules ( = code which can
  213. be inserted in and removed from the running kernel whenever you
  214. want). Most people won't need this and can say N.
  215. config NET_IPGRE
  216. tristate "IP: GRE tunnels over IP"
  217. depends on INET
  218. select XFRM
  219. help
  220. Tunneling means encapsulating data of one protocol type within
  221. another protocol and sending it over a channel that understands the
  222. encapsulating protocol. This particular tunneling driver implements
  223. GRE (Generic Routing Encapsulation) and at this time allows
  224. encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure.
  225. This driver is useful if the other endpoint is a Cisco router: Cisco
  226. likes GRE much better than the other Linux tunneling driver ("IP
  227. tunneling" above). In addition, GRE allows multicast redistribution
  228. through the tunnel.
  229. config NET_IPGRE_BROADCAST
  230. bool "IP: broadcast GRE over IP"
  231. depends on IP_MULTICAST && NET_IPGRE
  232. help
  233. One application of GRE/IP is to construct a broadcast WAN (Wide Area
  234. Network), which looks like a normal Ethernet LAN (Local Area
  235. Network), but can be distributed all over the Internet. If you want
  236. to do that, say Y here and to "IP multicast routing" below.
  237. config IP_MROUTE
  238. bool "IP: multicast routing"
  239. depends on IP_MULTICAST
  240. help
  241. This is used if you want your machine to act as a router for IP
  242. packets that have several destination addresses. It is needed on the
  243. MBONE, a high bandwidth network on top of the Internet which carries
  244. audio and video broadcasts. In order to do that, you would most
  245. likely run the program mrouted. Information about the multicast
  246. capabilities of the various network cards is contained in
  247. <file:Documentation/networking/multicast.txt>. If you haven't heard
  248. about it, you don't need it.
  249. config IP_PIMSM_V1
  250. bool "IP: PIM-SM version 1 support"
  251. depends on IP_MROUTE
  252. help
  253. Kernel side support for Sparse Mode PIM (Protocol Independent
  254. Multicast) version 1. This multicast routing protocol is used widely
  255. because Cisco supports it. You need special software to use it
  256. (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more
  257. information about PIM.
  258. Say Y if you want to use PIM-SM v1. Note that you can say N here if
  259. you just want to use Dense Mode PIM.
  260. config IP_PIMSM_V2
  261. bool "IP: PIM-SM version 2 support"
  262. depends on IP_MROUTE
  263. help
  264. Kernel side support for Sparse Mode PIM version 2. In order to use
  265. this, you need an experimental routing daemon supporting it (pimd or
  266. gated-5). This routing protocol is not used widely, so say N unless
  267. you want to play with it.
  268. config ARPD
  269. bool "IP: ARP daemon support (EXPERIMENTAL)"
  270. depends on INET && EXPERIMENTAL
  271. ---help---
  272. Normally, the kernel maintains an internal cache which maps IP
  273. addresses to hardware addresses on the local network, so that
  274. Ethernet/Token Ring/ etc. frames are sent to the proper address on
  275. the physical networking layer. For small networks having a few
  276. hundred directly connected hosts or less, keeping this address
  277. resolution (ARP) cache inside the kernel works well. However,
  278. maintaining an internal ARP cache does not work well for very large
  279. switched networks, and will use a lot of kernel memory if TCP/IP
  280. connections are made to many machines on the network.
  281. If you say Y here, the kernel's internal ARP cache will never grow
  282. to more than 256 entries (the oldest entries are expired in a LIFO
  283. manner) and communication will be attempted with the user space ARP
  284. daemon arpd. Arpd then answers the address resolution request either
  285. from its own cache or by asking the net.
  286. This code is experimental and also obsolete. If you want to use it,
  287. you need to find a version of the daemon arpd on the net somewhere,
  288. and you should also say Y to "Kernel/User network link driver",
  289. below. If unsure, say N.
  290. config SYN_COOKIES
  291. bool "IP: TCP syncookie support (disabled per default)"
  292. depends on INET
  293. ---help---
  294. Normal TCP/IP networking is open to an attack known as "SYN
  295. flooding". This denial-of-service attack prevents legitimate remote
  296. users from being able to connect to your computer during an ongoing
  297. attack and requires very little work from the attacker, who can
  298. operate from anywhere on the Internet.
  299. SYN cookies provide protection against this type of attack. If you
  300. say Y here, the TCP/IP stack will use a cryptographic challenge
  301. protocol known as "SYN cookies" to enable legitimate users to
  302. continue to connect, even when your machine is under attack. There
  303. is no need for the legitimate users to change their TCP/IP software;
  304. SYN cookies work transparently to them. For technical information
  305. about SYN cookies, check out <http://cr.yp.to/syncookies.html>.
  306. If you are SYN flooded, the source address reported by the kernel is
  307. likely to have been forged by the attacker; it is only reported as
  308. an aid in tracing the packets to their actual source and should not
  309. be taken as absolute truth.
  310. SYN cookies may prevent correct error reporting on clients when the
  311. server is really overloaded. If this happens frequently better turn
  312. them off.
  313. If you say Y here, note that SYN cookies aren't enabled by default;
  314. you can enable them by saying Y to "/proc file system support" and
  315. "Sysctl support" below and executing the command
  316. echo 1 >/proc/sys/net/ipv4/tcp_syncookies
  317. at boot time after the /proc file system has been mounted.
  318. If unsure, say N.
  319. config INET_AH
  320. tristate "IP: AH transformation"
  321. depends on INET
  322. select XFRM
  323. select CRYPTO
  324. select CRYPTO_HMAC
  325. select CRYPTO_MD5
  326. select CRYPTO_SHA1
  327. ---help---
  328. Support for IPsec AH.
  329. If unsure, say Y.
  330. config INET_ESP
  331. tristate "IP: ESP transformation"
  332. depends on INET
  333. select XFRM
  334. select CRYPTO
  335. select CRYPTO_HMAC
  336. select CRYPTO_MD5
  337. select CRYPTO_SHA1
  338. select CRYPTO_DES
  339. ---help---
  340. Support for IPsec ESP.
  341. If unsure, say Y.
  342. config INET_IPCOMP
  343. tristate "IP: IPComp transformation"
  344. depends on INET
  345. select XFRM
  346. select INET_TUNNEL
  347. select CRYPTO
  348. select CRYPTO_DEFLATE
  349. ---help---
  350. Support for IP Payload Compression Protocol (IPComp) (RFC3173),
  351. typically needed for IPsec.
  352. If unsure, say Y.
  353. config INET_TUNNEL
  354. tristate "IP: tunnel transformation"
  355. depends on INET
  356. select XFRM
  357. ---help---
  358. Support for generic IP tunnel transformation, which is required by
  359. the IP tunneling module as well as tunnel mode IPComp.
  360. If unsure, say Y.
  361. config IP_TCPDIAG
  362. tristate "IP: TCP socket monitoring interface"
  363. depends on INET
  364. default y
  365. ---help---
  366. Support for TCP socket monitoring interface used by native Linux
  367. tools such as ss. ss is included in iproute2, currently downloadable
  368. at <http://developer.osdl.org/dev/iproute2>. If you want IPv6 support
  369. and have selected IPv6 as a module, you need to build this as a
  370. module too.
  371. If unsure, say Y.
  372. config IP_TCPDIAG_IPV6
  373. def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6)
  374. source "net/ipv4/ipvs/Kconfig"