Hi,
I'm currently playing with ip6tables and seeing some strange stuff which
I not expected.
I configure my servers with Ansible which is able to lookup my default
IPv6 address. Therefore it uses `ip route get 2404:6800:400a:800::1012`
and parses the output.
Currently there is no IPv6 configured on the system so the default v6
address should be a link local address.
This is the expected result without a firewall:
$ ip route get 2404:6800:400a:800::1012
2404:6800:400a:800::1012 from :: via fe80::1 dev eth0 src
fe80::d481:11ff:feee:4908 metric 0
cache hoplimit 64
Now I setup some basic ip6tables firewall settings.
1. Set the policy to drop
2. Allow everything, input and output, on loopback
3. Allow related and established connections for input and output
4. Allow every icmpv6 package with the flag new
$ ip6tables -nL
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all ::/0 ::/0
ACCEPT all ::/0 ::/0 state
RELATED,ESTABLISHED
ACCEPT icmpv6 ::/0 ::/0 state NEW
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all ::/0 ::/0
ACCEPT all ::/0 ::/0 state
RELATED,ESTABLISHED
ACCEPT icmpv6 ::/0 ::/0 state NEW
So far I thought this would work but what I get when I try to lookup now
my default IPv6 address is this:
$ ip route get 2404:6800:400a:800::1012
unreachable 2404:6800:400a:800::1012 from :: dev lo table unspec proto
kernel src fe80::d481:11ff:feee:4908 metric 4294967295 error -101
I played some time with different rules and added a new rule for icmpv6
without the state flag. And there it works again.
Uh? So lets look this up in conntrack. The results are pretty low...
There is nothing to see. No v6 package in any state.
So why is conntrack ignoring my icmpv6 traffic?
And another question is how can I flush the cached results from `ip
route get`? `ip route cache flush` is not working since I guess they
changed the caching in kernel version 3.6.
OS details:
$ uname -a
Linux mail 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03)
x86_64 GNU/Linux
$ dpkg-query -f "Package" -l iptables linux-image-* conntrack
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version
+++-======================================-=================
ii conntrack 1:1.4.2-2+deb8u1
ii iptables 1.4.21-2+b1
ii linux-image-3.16.0-4-amd64 3.16.36-1+deb8u1
ii linux-image-amd64 3.16+63
Cheers
Florian
Attachment:
signature.asc
Description: OpenPGP digital signature