TL:DR DNS server on VLAN Infra, client on VLAN LAN. Why do IPv6 dns and IPv6 ping not work when using ULA unless making LAN firewall 'Input' ACCEPT)?
Hi,
I am in the middle of setting up IPv6 on my home router. I have a /56 PD from my ISP and am setting up DHCPv6 and RA, with SLAAC enabled for some VLANs and not others.
My VLANs are configured REJECT,ACCEPT,REJECT in the firewall, so previously when it was an IPv4 only network, I have rules for each VLAN to allow UDP port 67 to the router for DHCP and TCP/UDP port 53 to a DNS server on one of the VLANs for DNS.
Since adding IPv6 ULA and PD, I have added UDP port 547 to the DHCP rules, so clients can get a DHCPv6 address from the router, but I can't get DNS to work. I have added the DNS server's IPv6 address to the firewall rule, but the result of nslookup -type=AAAA bing.com *dns_IPv6_address* results in Server UnKnown. I also couldn't ping the DNS server by it's IPv6 address using ping -6 dns, so I added rules to allow ICMP from VLAN to the VLAN with the DNS server in, but that still doesn't work.
The only thing that works, is if I adjust the firewall zone of the VLAN that is trying to reach the DNS server, to be ACCEPT,ACCEPT,REJECT which I don't want to do.
All the while, IPv4 ping and nslookup work to 192.168.26.53, regardless of whether Input is set to ACCEPT or REJECT
What am I missing?
The wiki IPv6 configuration page doesn't have any firewall recommendations.
In case it helps
2 relevant VLANs are LAN (br-lan.31) and Infra (br-lan.26)
The DNS server is a pi-hole on Infra with the IPv4 address 192.168.26.53 and the IPv6 address fd18:a7e8:6f9b:26::53. The Infra firewall zone is currently set to ACCEPT,ACCEPT,ACCEPT and the LAN firewall zone is REJECT,ACCEPT,REJECT
I have a firewall rule that says Allow IPv4 and IPv6, protocol UDP from LAN to this device on ports 67 and 547, for DHCP (this works)
I have a firewall rule that says Allow IPv4 and IPv6, (protocol TCP & UDP) from LAN to Infra, IP 192.168.26.53, fd18:a7e8:69fb:26::53 on port 53, for DNS (this only works for IPv4)
I have a firewall rule that says Allow IPv4 and IPv6, protocol ICMP from `LAN' to any zone
EDIT: I enabled logging the filter table for LAN to a logfile on the nvme drive in the router and can see that ICMPv6 messages of type 134,135,136 are being rejected 'IN=br.lan.31'. These are the ICMP types for Router Advertisement, Neighbor Solicitation etc., so presumably that's why I'm having problems. But I have an accept ICMP rule?
EDIT2: Might be relevant, but I'm troubleshooting from LAN via an OpenWrt Dumb AP which is connected via a TP-Link L3 switch (all trunked/tagged). The Dumb AP doesn't have a LAN6 DHCPv6 interface and the TP switch doesn't appear to have IPv6 enabled. If this is relevant, I'm all the more confused why setting the firewall on the router to Input ACCEPT, makes any difference
MORE EDIT2: took this out of the equation by using an ethernet lead to reach VLAN LAN. VLAN Infra works just fine with the infrastructure (i.e. if my client is on Infra, I can v6 ping and v6 DNS the DNS server on Infra)