Even though there is a rule to match mld-listener-query in a "nexhdr
ipv6-icmp" packet, the packets still get rejected and the following
message shows up in the logs:
[INPUT]: ... SRC=fe80:0000:0000:0000:0000:0000:0000:0001
DST=ff02:0000:0000:0000:0000:0000:0000:0001
LEN=76 TC=0 HOPLIMIT=1 FLOWLBL=0
PROTO=ICMPv6 TYPE=130 CODE=0
By looking at the packet dump it looks like the packet come after
a Hop-by-Hop header:
Internet Protocol Version 6, Src: fe80::1, Dst: ff02::1
0110 .... = Version: 6
...
Next Header: IPv6 Hop-by-Hop Option (0)
Hop Limit: 1
Source: fe80::1
Destination: ff02::1
...
IPv6 Hop-by-Hop Option
Next Header: ICMPv6 (58)
...
Internet Control Message Protocol v6
Type: Multicast Listener Query (130)
...
and so "ip6 nexthdr" does not really matches it.
Use "hbh nexthdr" instead.
} ip6 hoplimit 255 accept
# Allow multicast listener discovery on link-local addresses.
- ip6 nexthdr ipv6-icmp icmpv6 type {
+ # RFC2710 specifies that a Hop-by-Hop Options header is used.
+ hbh nexthdr ipv6-icmp icmpv6 type {
mld-listener-query,
mld-listener-report,
mld-listener-reduction