How to modify upstream server only via GUI on V6

Hey,
i finally wanna switch to V6 now.

Problem already for me is that i cant set Upstream Server via GUI:

According to the Github I should set the Upstreams via Docker Compose:

  FTLCONF_dns_upstreams: '8.8.8.8'

But once i set this, i cant modify it via GUI. And IF i remove the top env variable, the docker container doesnt start properly

Where is my mistake?
Thanks

EDIT: When i add ipv6 to my docker, i get an error:

FTLCONF_dns_upstreams: '1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001'

That connection error (Network unreachable) is expected, as Docker is IPv4 only by default.

You'd have to explicitly enable Docker's (still somewhat experimental) IPv6 support for your Docker daemon as well as any of your containers that should use IPv6.

Note, however, that commonly, IPv4 would be sufficient for Pi-hole's operation.

Not for your aspired use case - the documentation explicitly states (emphasis mine):

The existence of this environment variable assumes this as the sole management of upstream DNS.

So if you want to select upstream DNS servers via Pi-hole's admin UI, your docker configuration should not declare FTLCONF_dns_upstreams at all.

It's not clear what you refer to by 'top env variable'.
Please share your Docker compose file or run script.

This is weird, since i was using Pihole V5 WITH IPV6 in Docker without any issues. This only happens when I Switch to V6. I have realized that i needed V6 in some scenarios for some specific use cases, thats why im trying to get it back.


What i meant with the top env variable is that if i remove

FTLCONF_dns_upstreams: '1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001'

that the docker stack doesnt wanna start:


  [i] Starting docker specific checks & setup for docker pihole/pihole

  [i] Ensuring basic configuration by re-running select functions from basic-install.sh

  [X] No DNS upstream servers are set!

  [i] Recommended: Set the upstream DNS servers in the environment variable FTLCONF_dns_upstreams

  [i] Starting docker specific checks & setup for docker pihole/pihole

  [i] Ensuring basic configuration by re-running select functions from basic-install.sh

  [X] No DNS upstream servers are set!

  [i] Recommended: Set the upstream DNS servers in the environment variable FTLCONF_dns_upstreams

  [i] Starting docker specific checks & setup for docker pihole/pihole

  [i] Ensuring basic configuration by re-running select functions from basic-install.sh

  [X] No DNS upstream servers are set!

  [i] Recommended: Set the upstream DNS servers in the environment variable FTLCONF_dns_upstreams

Once i add the variable back, it starts up. Here is my docker stack:

version: "3"

services:
  pihole:
    image: pihole/pihole:development-v6  
    container_name: pihole6
    hostname: pihole6
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "1010:80/tcp"  
    environment:
      TZ: 'Europe/Berlin'
      FTLCONF_webserver_api_password: 'XXXXXXXXXXXXX' 
      FTLCONF_dns_upstreams: '1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001'
    volumes:
      - Pi-HoleConfig-V6:/etc/pihole
    restart: unless-stopped

volumes:
  Pi-HoleConfig-V6:
    external: true

v6 is just more verbose - v5 may just not have complained about an IPv6 upstream being unreachable, while DNS resolution would still work as long as there's at least one reachable upstream. The latter should also be true for a v6 container.

However, if your IPv6 address would be your Pi-hole's only upstream, you wouldn't be able to resolve public domains - they'd all be REFUSED.

Indeed, when pulling the latest development-v6 image, I do get that same error using my existing docker-compose.yml without any upstream DNS.

Before that pull, my development-v6 container (FTL version: vDev-8e9b1dc) started flawlessly without any upstream declarations.

Thanks for the heads up - I'll check with development whether that would be an intended change of behaviour.

Welp, looks like you right here :smiley: I went back to v5 and only enabled IPV6 Upstreams and boom the tail pihole logs showed only errors aka no DNS Resolution. I rly thought enable IPV6 had fixed an issue i had few months ago... :smiley:

But doesnt this mean that with pihole we can open any IPV6 Only websites? LIke https://ip6only.me/ ?
Cuz this doesnt work for me :smiley:

haha no problem, thought i was going crazy. For now i just set the Upstreams via docker compose directly, so its nothing high prio ^^
Thanks!

That site tries to give you information about the connection of the machine browsing to it. It doesn't tell you anything about DNS.

As far as DNS is concerned, even though that machine may talk to your Pi-hole container only via IPv4, Pi-hole would still answer requests for a domain's A or AAAA records with the respective IPv4 or IPv6 addresses, and Pi-hole will do so regardless whether its upstreams are IPv4 or IPv6.

It is your client that decides both whether it would request A and/or AAAA records, and whether it would like to communicate to that domain via IPv4 or IPv6.

Or in short: :wink:

When Pi-hole is installed on bare metal - the install guide asks the user to select some pre-defined suggestions for upstream DNS, or enter their own. Of course this can be adjusted in the web interface at a later date if the user has chosen to mash enter all the way through the installer and wants to tweak their settings.

For the container... As pihole-FTL does not have a default value for the upstream, we need to ensure that it is set before runtime. This can either be via environment variables or maybe even a pre-seeded /etc/pihole/pihole.toml via a volume mount. I guess we should add some verbiage to the Readme to clarify this.

If FTL had a default value for this setting (i.e 8.8.8.8;8.8.4.4) then we would not be having this conversation. But there are very good reasons why this setting does not have a default value - namely we probably don't want to infer support for one upstream over another (despite needing to be fairly explicit about it in a Readme as a suggestion to somewhat lower the barrier to entry)

In other words, if pihole v6 is being run via Docker Container, there is no way to configure the DNS Upstream Servers via GUI anymore.

Fine with me aslong it is documented that it is mandatory to set now upstreams via docker directly.
Thanks!

Preparing a commit that will default the value to 8.8.8.8,8.8.4.4 if nothing is explicitly set in the environment variable. Looking over the current state of the v6 Readme, I can see it infers that this is already the case anyway.

https://github.com/pi-hole/docker-pi-hole/pull/1608

Thank you!!