Diagnoses and fixes DNS resolution issues in the network infrastructure including Pi-hole not resolving locally, router DNS configuration, and DNS record verification. Use when services can't be...
Systematic diagnosis and resolution of DNS resolution issues in the Pi-hole DNS infrastructure.
Run quick diagnostic to identify DNS issues:
# Check DNS resolution
dig @192.168.68.136 pihole.temet.ai
# Check Pi-hole is running
docker ps | grep pihole
# Check DNS records configured
docker exec pihole nslookup pihole.temet.ai 127.0.0.1
Explicit Triggers:
Implicit Triggers:
Debugging Triggers:
docker ps | grep pihole
Expected: Container status "Up" (not "Restarting" or "Exited")
If not running:
cd /home/dawiddutoit/projects/network && \
docker compose up -d pihole && \
docker logs pihole --tail 50
Verify FTLCONF_dns_hosts environment variable is set:
docker exec pihole env | grep FTLCONF_dns_hosts
Expected output should include:
FTLCONF_dns_hosts=192.168.68.136 pihole.temet.ai
192.168.68.136 ha.temet.ai
192.168.68.136 jaeger.temet.ai
...
If missing or incorrect: Edit docker-compose.yml to add/update FTLCONF_dns_hosts environment variable.
Test that Pi-hole itself can resolve the domain:
# Test single domain
docker exec pihole nslookup pihole.temet.ai 127.0.0.1
# Test all configured domains
for domain in pihole ha jaeger langfuse sprinkler code webhook; do
echo "=== Testing $domain.temet.ai ==="
docker exec pihole nslookup $domain.temet.ai 127.0.0.1
echo
done
Expected: Shows "Address: 192.168.68.136" for each domain
If "NXDOMAIN" or "can't find":
Fix:
# Reload Pi-hole DNS
docker exec pihole pihole reloaddns
# Or restart Pi-hole
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml restart pihole
Check router is configured to use Pi-hole as DNS server:
Router should point to: 192.168.68.136 (Pi-hole IP)
How to verify:
Common router interfaces:
From your computer or device:
# Check what DNS server you're using
scutil --dns | grep "nameserver\[0\]"
# Test resolution using system DNS
dig pihole.temet.ai
# Test resolution using Pi-hole directly
dig @192.168.68.136 pihole.temet.ai
Expected:
If using wrong DNS server:
Fix:
# Flush DNS cache (macOS)
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Renew DHCP lease (macOS)
sudo ipconfig set en0 DHCP
# Linux
sudo systemd-resolve --flush-caches
Verify DNS records are configured in docker-compose.yml:
grep -A20 "FTLCONF_dns_hosts" /home/dawiddutoit/projects/network/docker-compose.yml
Expected format:
FTLCONF_dns_hosts: |
192.168.68.136 pihole.temet.ai
192.168.68.136 ha.temet.ai
192.168.68.136 jaeger.temet.ai
192.168.68.136 langfuse.temet.ai
192.168.68.136 sprinkler.temet.ai
192.168.68.136 code.temet.ai
192.168.68.136 webhook.temet.ai
If missing domains: Add them to FTLCONF_dns_hosts and restart Pi-hole.
Fix A: Pi-hole Not Running
cd /home/dawiddutoit/projects/network && \
docker compose up -d pihole && \
docker logs pihole --tail 50
Fix B: DNS Records Not Configured
nano /home/dawiddutoit/projects/network/docker-compose.yml
FTLCONF_dns_hosts: |
192.168.68.136 newservice.temet.ai
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml up -d pihole
Fix C: Client Using Wrong DNS
Fix D: Pi-hole DNS Not Reloaded
# Reload DNS without restart
docker exec pihole pihole reloaddns
# Or full restart
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml restart pihole
| File | Purpose |
|---|---|
references/reference.md |
Complete DNS configuration reference, Pi-hole v6 FTL details |
examples/examples.md |
Example DNS configurations, common scenarios |
Success:
Partial Success:
Failure Indicators: