Kconfig 16 KB

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