2 # IP netfilter configuration
5 menu "IPv6: Netfilter Configuration"
6 depends on INET && IPV6 && NETFILTER
9 tristate "IPv6 socket lookup support"
11 This option enables the IPv6 socket lookup infrastructure. This
12 is used by the {ip6,nf}tables socket match.
15 tristate "IPv6 tproxy support"
20 bool "IPv6 nf_tables support"
22 This option enables the IPv6 support for nf_tables.
26 config NFT_CHAIN_ROUTE_IPV6
27 tristate "IPv6 nf_tables route chain support"
29 This option enables the "route" chain for IPv6 in nf_tables. This
30 chain type is used to force packet re-routing after mangling header
31 fields such as the source, destination, flowlabel, hop-limit and
36 config NFT_CHAIN_NAT_IPV6
37 tristate "IPv6 nf_tables nat chain support"
39 This option enables the "nat" chain for IPv6 in nf_tables. This
40 chain type is used to perform Network Address Translation (NAT)
41 packet transformations such as the source, destination address and
42 source and destination ports.
45 tristate "IPv6 masquerade support for nf_tables"
47 select NF_NAT_MASQUERADE_IPV6
49 This is the expression that provides IPv4 masquerading support for
53 tristate "IPv6 redirect support for nf_tables"
55 select NF_NAT_REDIRECT
57 This is the expression that provides IPv4 redirect support for
62 config NFT_REJECT_IPV6
68 tristate "IPv6 nf_tables packet duplication support"
69 depends on !NF_CONNTRACK || NF_CONNTRACK
72 This module enables IPv6 packet duplication support for nf_tables.
75 tristate "nf_tables fib / ipv6 route lookup support"
78 This module enables IPv6 FIB lookups, e.g. for reverse path filtering.
79 It also allows query of the FIB for the route type, e.g. local, unicast,
80 multicast or blackhole.
82 endif # NF_TABLES_IPV6
85 config NF_FLOW_TABLE_IPV6
86 tristate "Netfilter flow table IPv6 module"
87 depends on NF_FLOW_TABLE
89 This option adds the flow table IPv6 support.
91 To compile it as a module, choose M here.
94 tristate "Netfilter IPv6 packet duplication to alternate destination"
95 depends on !NF_CONNTRACK || NF_CONNTRACK
97 This option enables the nf_dup_ipv6 core, which duplicates an IPv6
98 packet to be rerouted to another destination.
100 config NF_REJECT_IPV6
101 tristate "IPv6 packet rejection"
102 default m if NETFILTER_ADVANCED=n
105 tristate "IPv6 packet logging"
106 default m if NETFILTER_ADVANCED=n
111 depends on NF_CONNTRACK
112 depends on NETFILTER_ADVANCED
115 The IPv6 NAT option allows masquerading, port forwarding and other
116 forms of full Network Address Port Translation. This can be
117 controlled by iptables or nft.
121 config NF_NAT_MASQUERADE_IPV6
126 config IP6_NF_IPTABLES
127 tristate "IP6 tables support (required for filtering)"
128 depends on INET && IPV6
129 select NETFILTER_XTABLES
130 default m if NETFILTER_ADVANCED=n
132 ip6tables is a general, extensible packet identification framework.
133 Currently only the packet filtering and packet mangling subsystem
134 for IPv6 use this, but connection tracking is going to follow.
135 Say 'Y' or 'M' here if you want to use either of those.
137 To compile it as a module, choose M here. If unsure, say N.
141 # The simple matches.
142 config IP6_NF_MATCH_AH
143 tristate '"ah" match support'
144 depends on NETFILTER_ADVANCED
146 This module allows one to match AH packets.
148 To compile it as a module, choose M here. If unsure, say N.
150 config IP6_NF_MATCH_EUI64
151 tristate '"eui64" address check'
152 depends on NETFILTER_ADVANCED
154 This module performs checking on the IPv6 source address
155 Compares the last 64 bits with the EUI64 (delivered
156 from the MAC address) address
158 To compile it as a module, choose M here. If unsure, say N.
160 config IP6_NF_MATCH_FRAG
161 tristate '"frag" Fragmentation header match support'
162 depends on NETFILTER_ADVANCED
164 frag matching allows you to match packets based on the fragmentation
165 header of the packet.
167 To compile it as a module, choose M here. If unsure, say N.
169 config IP6_NF_MATCH_OPTS
170 tristate '"hbh" hop-by-hop and "dst" opts header match support'
171 depends on NETFILTER_ADVANCED
173 This allows one to match packets based on the hop-by-hop
174 and destination options headers of a packet.
176 To compile it as a module, choose M here. If unsure, say N.
178 config IP6_NF_MATCH_HL
179 tristate '"hl" hoplimit match support'
180 depends on NETFILTER_ADVANCED
181 select NETFILTER_XT_MATCH_HL
183 This is a backwards-compat option for the user's convenience
184 (e.g. when running oldconfig). It selects
185 CONFIG_NETFILTER_XT_MATCH_HL.
187 config IP6_NF_MATCH_IPV6HEADER
188 tristate '"ipv6header" IPv6 Extension Headers Match'
189 default m if NETFILTER_ADVANCED=n
191 This module allows one to match packets based upon
192 the ipv6 extension headers.
194 To compile it as a module, choose M here. If unsure, say N.
196 config IP6_NF_MATCH_MH
197 tristate '"mh" match support'
198 depends on NETFILTER_ADVANCED
200 This module allows one to match MH packets.
202 To compile it as a module, choose M here. If unsure, say N.
204 config IP6_NF_MATCH_RPFILTER
205 tristate '"rpfilter" reverse path filter match support'
206 depends on NETFILTER_ADVANCED
207 depends on IP6_NF_MANGLE || IP6_NF_RAW
209 This option allows you to match packets whose replies would
210 go out via the interface the packet came in.
212 To compile it as a module, choose M here. If unsure, say N.
213 The module will be called ip6t_rpfilter.
215 config IP6_NF_MATCH_RT
216 tristate '"rt" Routing header match support'
217 depends on NETFILTER_ADVANCED
219 rt matching allows you to match packets based on the routing
220 header of the packet.
222 To compile it as a module, choose M here. If unsure, say N.
224 config IP6_NF_MATCH_SRH
225 tristate '"srh" Segment Routing header match support'
226 depends on NETFILTER_ADVANCED
228 srh matching allows you to match packets based on the segment
229 routing header of the packet.
231 To compile it as a module, choose M here. If unsure, say N.
234 config IP6_NF_TARGET_HL
235 tristate '"HL" hoplimit target support'
236 depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
237 select NETFILTER_XT_TARGET_HL
239 This is a backwards-compatible option for the user's convenience
240 (e.g. when running oldconfig). It selects
241 CONFIG_NETFILTER_XT_TARGET_HL.
244 tristate "Packet filtering"
245 default m if NETFILTER_ADVANCED=n
247 Packet filtering defines a table `filter', which has a series of
248 rules for simple packet filtering at local input, forwarding and
249 local output. See the man page for iptables(8).
251 To compile it as a module, choose M here. If unsure, say N.
253 config IP6_NF_TARGET_REJECT
254 tristate "REJECT target support"
255 depends on IP6_NF_FILTER
256 select NF_REJECT_IPV6
257 default m if NETFILTER_ADVANCED=n
259 The REJECT target allows a filtering rule to specify that an ICMPv6
260 error should be issued in response to an incoming packet, rather
261 than silently being dropped.
263 To compile it as a module, choose M here. If unsure, say N.
265 config IP6_NF_TARGET_SYNPROXY
266 tristate "SYNPROXY target support"
267 depends on NF_CONNTRACK && NETFILTER_ADVANCED
268 select NETFILTER_SYNPROXY
271 The SYNPROXY target allows you to intercept TCP connections and
272 establish them using syncookies before they are passed on to the
273 server. This allows to avoid conntrack and server resource usage
274 during SYN-flood attacks.
276 To compile it as a module, choose M here. If unsure, say N.
279 tristate "Packet mangling"
280 default m if NETFILTER_ADVANCED=n
282 This option adds a `mangle' table to iptables: see the man page for
283 iptables(8). This table is used for various packet alterations
284 which can effect how the packet is routed.
286 To compile it as a module, choose M here. If unsure, say N.
289 tristate 'raw table support (required for TRACE)'
291 This option adds a `raw' table to ip6tables. This table is the very
292 first in the netfilter framework and hooks in at the PREROUTING
295 If you want to compile it as a module, say M here and read
296 <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
298 # security table for MAC policy
299 config IP6_NF_SECURITY
300 tristate "Security table"
302 depends on NETFILTER_ADVANCED
304 This option adds a `security' table to iptables, for use
305 with Mandatory Access Control (MAC) policy.
310 tristate "ip6tables NAT support"
311 depends on NF_CONNTRACK
312 depends on NETFILTER_ADVANCED
315 select NETFILTER_XT_NAT
317 This enables the `nat' table in ip6tables. This allows masquerading,
318 port forwarding and other forms of full Network Address Port
321 To compile it as a module, choose M here. If unsure, say N.
325 config IP6_NF_TARGET_MASQUERADE
326 tristate "MASQUERADE target support"
327 select NF_NAT_MASQUERADE_IPV6
329 Masquerading is a special case of NAT: all outgoing connections are
330 changed to seem to come from a particular interface's address, and
331 if the interface goes down, those connections are lost. This is
332 only useful for dialup accounts with dynamic IP address (ie. your IP
333 address will be different on next dialup).
335 To compile it as a module, choose M here. If unsure, say N.
337 config IP6_NF_TARGET_NPT
338 tristate "NPT (Network Prefix translation) target support"
340 This option adds the `SNPT' and `DNPT' target, which perform
341 stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
343 To compile it as a module, choose M here. If unsure, say N.
347 endif # IP6_NF_IPTABLES
350 config NF_DEFRAG_IPV6