Hi,

actually, if all the additional DNS servers are on the same device (where also DNSmasq runs on), you can simply assign one or more ULAs (I use fd53::1) to the device's interface and announce it to all devices as DNS. The clients will see that the device is in another network and send it out for routing to your router. The Router device will forward it to the other local interface automatically.

So basically easiest ist to assign addition ULA address to one of the router's interfaces and let listen alternative DNS on it. You don't need to announce ULA outside.

This type of configuration is used by most consumer routers (e.g., by AVM's FritzBOX) for the same reason like described by you. Here is my own "iflan" ethernet interface on my Ubuntu-Router:

   iflan: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.1  netmask 255.255.255.0  broadcast
   192.168.1.255
            inet6 2a00:c380:xxxxxxxxxxxxxx::1  prefixlen 64 scopeid
   0x0<global>
            inet6 fe80::1  prefixlen 64  scopeid 0x20<link>
   *inet6 fd53::1  prefixlen 128  scopeid 0x0<global>*
            ether 76:35:3b:ae:7b:ba  txqueuelen 1000  (Ethernet)
            RX packets 54020105  bytes 15416441867 (15.4 GB)
            RX errors 0  dropped 534516  overruns 0  frame 0
            TX packets 92451209  bytes 137807353683 (137.8 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

Clients don't use ULA at all. Its just there. In dnsmasq it is sent out like this:

dhcp-option=option6:ntp-server,fd53::1
dhcp-option=option6:sntp-server,fd53::1
dhcp-option=option6:dns-server,fd53::1

Clients don't deal with the address prefix at all, they only have a global address and contact the router for routing:

   Ethernet-Adapter ThinkDock Ethernet:

       Verbindungsspezifisches DNS-Suffix: home
       IPv6-Adresse. . . . . . . . . . . : 2a00:c380:xxxxxxxxxxxxxx:5c7c
       Temporäre IPv6-Adresse. . . . . . : 2a00:c380:xxxxxxxxxxxxxx:73cd
       Verbindungslokale IPv6-Adresse  . : fe80::4a2a:e3ff:fe43:5c7c%21
       IPv4-Adresse  . . . . . . . . . . : 192.168.1.103
       Subnetzmaske  . . . . . . . . . . : 255.255.255.0
       Standardgateway . . . . . . . . . : fe80::1%21
                                           192.168.1.1

    > tracert fd53::1

   Routenverfolgung zu sirius.home [fd53::1]
   über maximal 30 Hops:

      1     1 ms     1 ms     1 ms  sirius.home [fd53::1]

   Ablaufverfolgung beendet.

Uwe

Am 03.07.2024 um 09:56 schrieb Nomad Chen:
Dear Dnsmasq Committe,

I hope this message finds you well. I am a Dnsmasq user and I have a question concerning the IPv6 Recursive DNS Server (RDNSS) configuration that I'm hoping you can help with. I've built a router using Debian 12, employing Dnsmasq for DHCP and DNS services. In my network, there are two separate DNS servers, also built on Debian 12, each configured with static IPv4 addresses. Due to my ISP providing a dynamic IPv6 prefix, network devices obtain IPv6 addresses via SLAAC in Dnsmasq, which prevents setting a fixed IPv6 Global Unicast Address (GUA) on the internal DNS servers. To keep the network configuration simple, I have not used IPv6 Unique Local Addresses (ULA). For certain network devices, I need to specify gateways and DNS servers, which I have accomplished for IPv4 using Dnsmasq's static address binding and DNSv4 options. However, I am encountering issues with the IPv6 configuration.
According to the man page:

> --enable-ra
> By default, the relevant link-local address of the machine running dnsmasq is sent as a recursive DNS server. If provided, the DHCPv6 options dns-server and domain-search are used for the DNS server (RDNSS) and the domain search list (DNSSL).

I have tried various methods to remove DNS information from the RA announcements to prevent network devices from receiving an IPv6 DNS server address, thus avoiding conflicts with the specified IPv4 DNS servers. While I understand that clients can use both IPv4 and IPv6 DNS servers simultaneously, I have DNS configurations tailored for different scenarios. The reason for specifying different DNS servers for different network devices is to ensure DNS service isolation and prevent clients from receiving incorrect DNS query results. Unfortunately, I have not yet found a way to independently disable IPv6 RDNSS when the 'enable-ra' option is configured in Dnsmasq. This issue causes my network devices to always receive the Dnsmasq-advertised Link-Local Address (LLA) as their DNS server.
Here is my current IPv6-related Dnsmasq configuration:

interface=bridge1
ra-param=bridge1,900,2700
enable-ra
dhcp-range=::,constructor:bridge1,slaac,45m

I have tried changing the 'slaac' parameter in 'dhcp-range' to 'ra-only', but this still does not prevent network devices from acquiring an IPv6 DNS. I would greatly appreciate any advice or solutions you might have regarding this matter.

Best regards,
Nomad

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

--
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail:u...@thetaphi.de
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to