LEDE + pi-hole works perfectly... need to understand why so I can configure TomatoUSB the same way

I have a pihole box on my LAN and setup LEDE to use it as described below. My goal is to mimic my LEDE setup on TomatoUSB (for LEDE unsupported hardware a friend is using), but to do that, I need to understand how the setup on LEDE is working.

On LEDE:
Network>Interfaces>LAN>edit>DHCP Server>Advanced>DHCP Options: 6,192.168.1.250

On pihole:
/etc/dnsmasq.d/01-pihole.conf
addn-hosts=/etc/pihole/gravity.list
addn-hosts=/etc/pihole/local.list
addn-hosts=/etc/pihole/black.list
localise-queries
no-resolv
cache-size=10000
log-queries
log-facility=/run/log/pihole/pihole.log
local-ttl=300
log-async
server=192.168.1.1
interface=eth0

This setup works properly to:

  1. Make new DHCP clients use pihole as their DNS
  2. Block ads via pihole
  3. Allow for local LAN ssh connections or ping command via the advertised hostname of that device

I think it's working like this:

  1. A request (say ping www.google.com) is made on a client.
  2. It gets forwarded to 192.168.1.250 (pihole) and if the request is bad, it's blocked, if good, it gets forwarded to 192.168.1.1
  3. On the router, the DNS request is processed.

What I don't understand is how to replicate this setup on TomatoUSB...

Wait... I think the solution to use a custom dnsmasq.conf on tomato containing just 6,192.168.1.250 and to keep all the DNS settings on that router defaulted (ie use ISP DNS servers and use internal DNS).

cant you just go to interfaces place dns as your pihole raspberry pi ip? wouldnt pihole be too much for the router to process?i mean even adblock can slow down my processing speed with my router a bit, i can only imagine pihole

My router is an R7800. Even with a few users actively browsing, I get no load:

# uptime
 07:44:33 up 9 days, 15:26,  load average: 0.00, 0.02, 0.00

whats the load look like on your pihole? i mean you could always just try copying the files from pihole for dnsmasq to your tomatoUSB, just make a backup of the old dnsmasq config file of your tomatoUSB as dnsmasq.old, but i would have thought running the pihole script on the tomatoUSB shell would automate all that for you anyways. i mean wget the script to your device via ssh, then running the pihole shell script.

My pihole box is an ODROID-C2:

% uptime
 19:17:51 up 8 days,  2:35,  1 user,  load average: 0.00, 0.01, 0.00

damn thats a nice board, id just use that as a router lol

Actually, it's been nothing but trouble. If you're considering one, I recommend an RPi3 over it... their officially supported kernel is old as hell and unmaintained upstream (3.14.79). Mine is running the 4.13.x series of kernels now but none of the video drivers work with it. As well, I use linux containers on it and bridging support with tools like netctl and systemd-networkd is not there. I had to write my own systemd solution for the bridge to work. As well, the max CPU frequency is not as fast as it was advertised. Long story short: RPi3.

so the armv8 is no better huh? what a let down, i have 4 rpi2's with mpi, and several other desktops with mpi cluster ability, so i love the raspberry pi, im planning on getting a pi3 here soon so ill get a chance to play with it for about a month before something new evolves. its a lot of fun though, my git hub has a multitorprivoxy shell script that automates as many tor relays as your device can handle, might be some use for testing whatever over http to socks, if youre interested.

OpenWRT supports both Pi 3B and Pi 3 B+; I recommend Pi 3 B+ for its ability to use 5Ghz wifi channel.