Cannot find the place where settings are set

I have my Pihole running in a container. Everything works as expected for years and I had a look at the logs. There is one repeating warning

2026-04-28 11:28:54.400 WARNING dnsmasq: Ignoring duplicate dhcp-option 6

The duplication comes from the fact that there is a default set of DNS provided by Pihole itself (from dnsmasq.conf, similar entries in pihole.toml):

# Advertise the DNS server multiple times to work around
# issues with some clients adding their own servers if only
# one DNS server is advertised by the DHCP server.
dhcp-option=option:dns-server,0.0.0.0,0.0.0.0,0.0.0.0
dhcp-option=option6:dns-server,[::],[::],[fd00::],[fd00::],[fe80::],[fe80::]

and the further down

#### Additional user configuration - START ####
all-servers
dhcp-option=6,192.168.10.2,192.168.10.102
#### Additional user configuration - END ####

The triple-zero configuration is added when selecting the multiple advertisement, which is OK.

In the past I set up the extra dhcp-option to send 192.168.10.2 and 192.168.10.102 as DNS servers, 192.168.10.102 being an extra Pihole for redundancy. After much thought I do not need it anymore and would be happy with what Pihole sends by defualy above (which in practice will be its own IP)

My problem: I cannot find where this dhcp-option is set! I know it is mine, as well as the all-servers option to send request to upstream servers in parallel.

I am desperate, here is where I looked.

First, the relevant part of the docker compose file:

   volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./etc-pihole:/etc/pihole
      - ./etc-dnsmasq-d:/etc/dnsmasq.d

Within these volumes I am looking for either of these settings (using all-servers below, as it is more unique):

root@srv /e/d/c/pihole# grep -r all-servers *
etc-pihole/dnsmasq.conf:all-servers
etc-pihole/config_backups/pihole.toml.4:    "all-servers",
etc-pihole/config_backups/pihole.toml.15:    "all-servers",
etc-pihole/config_backups/pihole.toml.12:    "all-servers",
etc-pihole/config_backups/pihole.toml.8:    "all-servers",
etc-pihole/config_backups/pihole.toml.11:    "all-servers",
etc-pihole/config_backups/pihole.toml.5:    "all-servers",
etc-pihole/config_backups/pihole.toml.3:  #  "all-servers",
etc-pihole/config_backups/pihole.toml.7:    "all-servers",
etc-pihole/config_backups/pihole.toml.6:    "all-servers",
etc-pihole/config_backups/pihole.toml.9:    "all-servers",
etc-pihole/config_backups/pihole.toml.2:  #  "all-servers",
etc-pihole/config_backups/pihole.toml.14:    "all-servers",
etc-pihole/config_backups/pihole.toml.13:    "all-servers",
etc-pihole/config_backups/pihole.toml.1:  #  "all-servers",
etc-pihole/config_backups/pihole.toml.10:    "all-servers",
etc-pihole/pihole.toml:    "all-servers",

For reference, the presence of the entries in the files referred above:

root@srv /e/d/c/p/etc-pihole# grep -C 5 all-servers dnsmasq.conf
# replies to ANY queries can be large) this defangs such attacks, whilst still supporting the
# one remaining possible use of ANY queries. See RFC 8482 para 4.3 for details.
filter-rr=ANY

#### Additional user configuration - START ####
all-servers
dhcp-option=6,192.168.10.2,192.168.10.102
#### Additional user configuration - END ####

root@srv /e/d/c/p/etc-pihole# grep -C 5 all-servers pihole.toml
  # "address=/example.net/192.168.0.3" ]
  #
  # Allowed values are:
  #     Array of valid dnsmasq config line options
  dnsmasq_lines = [
    "all-servers",
    "dhcp-option=6,192.168.10.2,192.168.10.102"
  ] ### CHANGED, default = []

  # Log additional information about queries and replies to pihole.log
  #

I am really hopeless - where can these settings hide??

Debug Token:

https://tricorder.pi-hole.net/YmWTGU4d/

If you want to add your own dhcp-option=6,... line, try to disable dhcp.multiDNS.

This option automatically adds the lines:

		if(conf->dhcp.multiDNS.v.b)
		{
			// The address 0.0.0.0 has the special meaning to take
			// the address of the interface on which the DHCP
			// request was received. Similarly, :: has the special
			// meaning to take the global address of the interface
			// on which the DHCP request was received for IPv6,
			// whilst [fd00::] is replaced with the ULA, if it
			// exists, and [fe80::] with the link-local address.
			fputs("# Advertise the DNS server multiple times to work around\n", pihole_conf);
			fputs("# issues with some clients adding their own servers if only\n", pihole_conf);
			fputs("# one DNS server is advertised by the DHCP server.\n", pihole_conf);
			fputs("dhcp-option=option:dns-server,0.0.0.0,0.0.0.0,0.0.0.0\n", pihole_conf);
		}


		if(conf->dhcp.ipv6.v.b)
		{
			// Add dns-server option only if not already done above (dhcp.multiDNS)
			if(conf->dhcp.multiDNS.v.b)
				fputs("dhcp-option=option6:dns-server,[::],[::],[fd00::],[fd00::],[fe80::],[fe80::]\n", pihole_conf);
			else
				fputs("dhcp-option=option6:dns-server,[::]\n", pihole_conf);
			fputs("# Enable IPv6 DHCP variant\n", pihole_conf);
			fprintf(pihole_conf, "dhcp-range=::,constructor:%s,ra-names,ra-stateless,64\n", interface);
		}

Thanks, but my problem is that I cannot find the place where this setting is. It is there, it is mine, but I cannot find it.

Like I said, you just need to disable dhcp.multiDNS option.

How did you enabled it?

You have many ways to disable it:

  • On the web interface, go to Settings > DHCP page.
    Find the "Advanced DHCP Settings" box and uncheck the Advertise DNS server multiple times checkbox.

    or

  • On the web interface, go to Settings > All Settings page.
    Select the "DHCP" tab and find dhcp.multiDNS. Uncheck the checkbox.

    or

  • On the command line, execute this command:

    sudo pihole-FTL --config dhcp.multiDNS false
    

    or

  • You can even manually edit the pihole.toml file.

Any of these options will disable the conflicting option.

Sorry if I was not clear, but I cannot find where all-servers or
dhcp-option=6,192.168.10.2,192.168.10.102 are set.

These are my settings, I simply cannot find where they are - browsing/grepping though the config files per my post.

I did set them up at some point (because I wanted to send two DNS servers, or becaise I wanted the upstream DNS calls to be sent in parallel) -- but where?? :slight_smile:

I know this sounds like I have no idea what I am doing but believe me, I am in IT for 35 years and have my fair share of "eureka" findings when I realized that what I was looking for is obvious. This is not one of these cases and I am hoping for some clues.

You added them using the Settings > All Settings page:

   [misc]
     dnsmasq_lines = [
       "all-servers",
       "dhcp-option=6,192.168.10.2,192.168.10.102"
     ] ### CHANGED, default = []

On the web interface:

  • go to Settings > All Settings page.
  • Select the "Miscellaneous" tab.
  • Find misc.dnsmasq_lines and delete its contents.
  • Click on the "Save & Apply" button to finish.

Oh, THANK YOU. I looked though "All Settings" but for some reason I thought that the tabs were only shortcuts and was Ctrl-F the string.

Thanks again, I learned something today :slight_smile: