More Home Networking Wrestling!
- Shannon
- 2 minutes ago
- 4 min read
One of the joys of running a homelab is the constant reminder that technology never sits still. I'm currently in the middle of a massive overhaul at home and I've heard that my posts have helped others explore technology at home to their benefit. This weekend’s last lesson (so far) came courtesy of Pi-hole v6, IPv6, and a DNS resolver that flat-out refused to update no matter what I threw at it.
I noticed something was wrong when ads started creeping back into places that should have been squeaky clean after my recent rebuild. A quick check showed some of my devices were using IPv6 lookups that completely bypassed Pi-hole, plus my Pi-hole was inaccessible via WiFi. Easy fix, I thought. Add a new DNS entry, reload the resolver, and get back to work.
Except nothing reloaded.
For years, the fix was simple:
pihole restartdns
That's been forever etched into my brain (probably burned as well by this point). Well guess what? That command is gone in Pi-hole v6. Thinking I can't be alone, I wanted to make sure everyone knew about these recent changes!
The Shift in Pi-hole v6
With the release of version 6, Pi-hole made some big changes:
Goodbye lighttpd and PHP: FTL now bundles its own lightweight web server and REST API. This cuts down dependencies and makes Pi-hole leaner.
Unified configuration: Instead of scattered files, everything now lives in a single pihole.toml. You can edit directly, use environment variables prefixed with FTLCONF_, or call the API.
Docker streamlined: The container is rebuilt on Alpine Linux, smaller and faster. But with no systemd inside the container, pihole restartdns was removed. Auto-reload is supposed to take its place.
Native HTTPS and modern UI: Out of the box support for HTTPS plus a split UI with “Basic” and “Expert” modes.
Filtering updates: Subscribed allowlists join subscribed blocklists, making filtering more flexible.
All of this is great. But the side effect is that the familiar workflow for restarting DNS has changed. On a system install with systemd, you can still run:
sudo systemctl restart pihole-FTL
In Docker, Pi-hole leans on auto-reload. In theory that should just work. In practice, it doesn’t always. When I added a new entry and expected instant results, the resolver ignored it. The only reliable fix was restarting the entire container.
IPv6 Adds Its Own Fun
Even with DNS restarts sorted, IPv6 is a wildcard (and I mention this as more of something to pay attention to). Many ISPs hand out IPv6 addresses alongside IPv4 (dual stack, baby), and if your router or clients prefer v6, they may skip Pi-hole entirely (thanks, new technology!). Unless you explicitly configure Pi-hole as the DNS provider for both IPv4 and IPv6, your devices can happily sidestep all that careful filtering.
I had already pointed my router’s IPv6 DNS toward Pi-hole, but with the resolver refusing to reload configs, it felt like IPv6 was laughing at me.
Wi-Fi vs LAN: The Orbi Surprise
Just as I got DNS behaving, another gremlin showed up (and honestly, it could've shown up after my recent Pi-hole rebuild, but I just didn't check it earlier). My Pi-hole GUI became unreachable from Wi-Fi. Wired LAN? Fine. But Wi-Fi clients on my Orbi mesh couldn’t reach it anymore.
Ever since I moved to Orbi a few years back, it was in router mode, living on its own 10.0.0.0/24 subnet while my UniFi LAN lived on 192.168.1.0/24. That double NAT setup used to allow traffic to pass, but a firmware update (or the recent Pi-hole update) quietly changed the rules. Suddenly, Wi-Fi devices were walled off from my LAN toys. Why the double NAT? Believe it or not, I used to get better performance in my house over Wi-Fi and I blame that on the spaghetti wire mess behind the walls + brick.
The fix? Flip the Orbi into Access Point mode. Now the whole house lives happily on 192.168.1.0/24, Pi-hole is visible everywhere, and I don’t need awkward static routes or firewall juggling to make Wi-Fi talk to LAN. I also may have found the sweet spot for all my satellites (finally). Lots of running around this weekend!
Lessons Learned
Pi-hole v6 is a big step forward. The new image is lighter, faster, and easier to configure once you adjust to the pihole.toml workflow. But if you expect the old restartdns magic to solve your problems, you are going to be frustrated.
On bare metal, restart the FTL service directly.
On Docker, be ready to restart the container when auto-reload fails.
Double-check that your router and clients are using Pi-hole for IPv6 DNS as well as IPv4.
Make sure you have your Wi-Fi satellites or access points in access point mode + don't be afraid to move the devices for better throughput in an older house (my home was builtin 1952).
Homelab tinkering is never static. Commands change, architectures evolve, and sometimes you have to relearn the basics. But when it is finally working again and the ads disappear, it reminds me why I keep at it.
At least until the next update (of which many are brewing).