netfilter: conntrack: set icmpv6 redirects as RELATED
authorFlorian Westphal <fw@strlen.de>
Tue, 22 Nov 2022 15:00:09 +0000 (16:00 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 30 Nov 2022 22:01:20 +0000 (23:01 +0100)
commit7d7cfb48d81353e826493d24c7cec7360950968f
treeeb81aeddb0f57bb1c4e5de5961623ad5bb027693
parente9374524950512a1769f610a868fcdf89ea59b8e
netfilter: conntrack: set icmpv6 redirects as RELATED

icmp conntrack will set icmp redirects as RELATED, but icmpv6 will not
do this.

For icmpv6, only icmp errors (code <= 128) are examined for RELATED state.
ICMPV6 Redirects are part of neighbour discovery mechanism, those are
handled by marking a selected subset (e.g.  neighbour solicitations) as
UNTRACKED, but not REDIRECT -- they will thus be flagged as INVALID.

Add minimal support for REDIRECTs.  No parsing of neighbour options is
added for simplicity, so this will only check that we have the embeeded
original header (ND_OPT_REDIRECT_HDR), and then attempt to do a flow
lookup for this tuple.

Also extend the existing test case to cover redirects.

Fixes: 9fb9cbb1082d ("[NETFILTER]: Add nf_conntrack subsystem.")
Reported-by: Eric Garver <eric@garver.life>
Link: https://github.com/firewalld/firewalld/issues/1046
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Eric Garver <eric@garver.life>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_proto_icmpv6.c
tools/testing/selftests/netfilter/conntrack_icmp_related.sh