Override DNS per client with IPv6 SLAAC

I'm using PiHole in my network and configure it on devices via DHCP(v6) like this:

# /etc/config/dhcp
config dhcp 'guest'
        option leasetime '12h'
        option interface 'guest' 
        option start '2' 
        option limit '253' 
        option ra 'server' 
        option dhcpv6 'server' 
        option ra_management '1' 
        list dhcp_option '6,192.168.178.2' 
        list dns 'fd3b:2815:be50:4::967' 

I want to override this for some clients. This works fine with DHCP and DHCPv6:

# /etc/config/network

config host 
        option name 'foobar' 
        option mac 'XX:XX:XX:XX:XX:XX' 
        option tag 'openwrt_dns' 

config tag 'openwrt_dns'
        list dhcp_option '6,192.168.178.1'
        list dns 'fd3b:2815:be50:2::1'

This doesn't work with Android devices since they don't use DHCPv6 but SLAAC only. The problem is that those devices will receive the OpenWRT IPv4 DNS via DHCPv4 but also the default PiHole IPv6 DNS via SLAAC. This causes all sorts of weird issues (mostly suddenly blocked things that worked before because the device randomly decides to use the IPv6 DNS).

Is there some way around this? I want to avoid creating a separate VLAN/SSID just for two devices that need this.

Setting router as DNS for only selected device? - #3 by vgaetera

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.