[Dnsmasq-discuss] override DNS server for particular hosts on IPv6
M. Buecher
maddes+debian at maddes.net
Thu Mar 25 15:52:31 UTC 2021
On 2021-03-25 15:14, Erik Edwards via Dnsmasq-discuss wrote:
> The line "enable-ra" is directing dnsmasq to act as a "router
> advertising daemon". The advertisement sent will include the RDNSS
> default address(es). This is how IPv6 works.
>
> If the __client__ can ignore the RDNSS in the RA packet then the
> DHCPv6 might have a chance of doing what you want. In Fedora, using
> NetworkManager, use the option to do IPv6 "Automatic (Address only)",
> then using dhcp6c, would be something to investigate. IIRC Windows can
> also do "Address only" via automatic/SLAAC configuration then use
> DHCPv6 for all the other info. Android still has a ways to go to live
> happily in the IPv6 world, as of Android 10 - too many show stopping
> bugs. (keeps dropping and reconnecting to the WiFi). If your Android
> version will allow the granularity, the "Automatic (address only)"
> option may help.
> On 3/25/21 3:50 AM, Hamish Moffatt wrote:
>
>> I'm attempting to override the DNS server for a few hosts on both
>> IPv4 and IPv6. I've tagged the hosts and applied dhcp-option to that
>> tag and it's working correctly for IPv4, but I'm not having much
>> luck with IPv6.
>>
>> I'll admit right now that I don't fully understand the use of DHCPv6
>> and how DNS servers are discovered, so it might be that this is just
>> not possible, at least for all types of clients.
>>
>> My dnsmasq is at ::1, and I want to use the DNS server at ::18 on
>> the same prefix. What I have is:
>>
>> dhcp-option=tag:adblock,6,192.168.42.18
>> dhcp-option=tag:adblock,option6:dns-server,[<MY ULA>::18],[<MY
>> GLA>::18]
>>
>> dhcp-range=set:lan,192.168.42.20,192.168.42.239,255.255.255.0,12h
>> ra-param=br-lan,0,7200
>>
> dhcp-range=set:lan,::1000,::ffff,constructor:br-lan,slaac,ra-names,12h
>>
>> dhcp-option=lan,option6:dns-server,[::]
>>
>> enable-ra
>> quiet-ra
>>
>> What I see is that Android just has the <MY GLA>::1 address as its
>> DNS server. A Linux client using NetworkManager has <MY GLA>::1 as
>> well as the two override servers. Even when I set <MY GLA>::18 as
>> the server in the dhcp-option clause for the whole network, the
>> devices still learned the <MY GLA>::1 address.
>>
>> If I remove the dhcp-option clause for the whole network then
>> Android shows it's using the link local address for ::1 instead.
>>
>> How is Android always learning of the dnsmasq server itself as the
>> DNS server, and can I fix it?
>>
>> Thanks
>>
>> Hamish
Android to my knowledge does not support DHCPv6, therefore it only
retrieves DNS servers via RDNSS of RAs.
RAs are generic and not per client, therefore assigning different DNS
servers via RDNSS/RA is not possible.
Even if dnsmasq could disable RDNSS for RAs you will still fail with
Android as long as it does not support DHCPv6.
Only idea I have is to use a separate ULA in a separate WLAN/LAN network
for those devices, and for this ULA use the adblock settings as
defaults.
Kind regards
Maddes
More information about the Dnsmasq-discuss
mailing list