Configuring the Pi Hole with Asus Routers (Merlin or John’s Fork)

Introduction

This is a quick and easy tutorial for those that are struggling to get this to work. I started by reading the Pi Hole documentation: https://github.com/pi-hole/pi-hole#one-step-automated-install

This is sadly not optimal for those of us that have the Asus Router, but fortunately after breaking my internet a few times, I was able to find simple settings that allow:

  • Easy setup
  • No mucking around with the command line
  • All the benefits the Pi Hole can offer you

Instructions – Asus Router

Step 1: Follow the Pi Hole install instructions as provided on the link above, you can use the automated install, and just accept all defaults. Note the IP address assigned to the Pi Hole

Step 2: Open the Asus Admin interface (usually 192.168.1.1)

Step 3: Go to the WAN tab, and specify DNS servers for your router. This is very important, otherwise you will end up getting a lot of queries from your router o the Pi for the heartbeat. In my case, I’m using Cloudflare’s DNS:

Asus WAN DNS Setting for Pi Hole

Step 4: Go to the LAN tab, and under DHCP server, configure the following fields:

Pi Hole Asus Merlin Configuration

Domain Name: This will make it easier to identify your devices on the Pi Hole Interface later on! Choose something nice 🙂

DNS Server 1: The IP Address of the Pi Hole

Advertise router’s IP in addition to user-specified DNS: Disable, otherwise the router will also be advertised as a DNS server, and will not make the Pi Hole work properly. We will configure something on the Pi Hole later on to ensure that local DNS queries are handled by the router

Forward local domain queries to upstream DNS: Your upstream DNS is the Pi Hole, you want local queries to stay on the router (as these will be coming from the Pi Hole, so if you enable this, you likely create a DNS loop! lol)

Manually Assigned IP: Very important to set the Pi Hole Mac / IP here, this ensures the IP address of the Pi Hole never changes

Instructions – Pi Hole

Step 1: Under the Pi Hole Admin GUI, go to Settings -> DNS

By default Google is selected, but some benchmarks from the web show that Cloudflare performs better: https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5
Pi Hole Advanced DNS Settings for Asus Merlin
The most important setting is the conditional forwarding, as it will ensure you can still resolve local names on your network, and also will make the Pi Hole display stats with names, instead of just the IP addresses

Step 2: Save and reboot everything! Wait for a few minutes, and check your Pi Hole interface to see the queries coming in!

Step 3: Experiment! I plan on trying to enable DNSSEC, and see how much performance impact I end up having. Post comments if you disagree with any of the instructions above! What worked for me might not work for you! 🙂

Join the Conversation

2 Comments

    1. Hi Rick,

      I did not get a chance to test performance impact yet, good reminder as I forgot about it! I’ll look into it and update the post!

      Cheers,
      Carlos

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.