Help Us Beta Test FTLDNS

Help Us Beta Test FTLDNS

2018-03-24 Updates 26

In case you missed it, FTLDNS is Pi-hole’s Faster Than Light (FTL) daemon combined with a DNS/DHCP server (our fork of dnsmasq).  So instead of installing dnsmasq as a dependency, we will be distributing all services in a single binary.  This will allow us to hook into dnsmasq‘s functionality at a code- level, as well as ensuring that you are using the latest stable version of the resolver and receive, e.g., important bug fixes early on.

Today, we’re looking for some users to help us beta test the software.  If you are comfortable with troubleshooting issues, and if you’re interested, run these commands (after reading the details of this beta):

echo "FTLDNS" | sudo tee /etc/pihole/ftlbranch
pihole checkout core FTLDNS 
pihole checkout web FTLDNS

If you want to go back to the master branch at any time, the reversal process is fairly trivial:

# To Revert to master:
sudo rm /etc/pihole/ftlbranch
pihole checkout master

# To Revert to development:
sudo rm /etc/pihole/ftlbranch
pihole checkout dev


FTLDNS will disable existing installs of dnsmasq (because FTLDNS is dnsmasq with special sauce thrown in, so both cannot co-exist.  All of your custom configs will still work because we haven’t modified dnsmasq very much.

Verify You Have FTLDNS Installed

If FTLDNS installed correctly, dnsmasq should be disabled and replaced by pihole-FTL.  Verify with these commands:

sudo systemctl status dnsmasq
sudo systemctl status pihole-FTL

dnsmasq should be offline and pihole-FTL should be active.

Another way to verify you are now running FTLDNS is by checking the dashboard and looking for the nice new query types donut chart.

Finally, you can check your versions are all on the FTLDNS branches.

For Raspbian Jessie users

We have good news for you as FTLDNS (should™!) reinstate Pi-hole’s support for Debian Jessie! Note that, if you previously downgraded Pi-hole, you’ll need to run a few more commands to test out FTLDNS:

cd /etc/.pihole
sudo git fetch --all && sudo git checkout master
cd /etc/pihole
sudo git fetch --all && sudo git checkout master
echo "FTLDNS" | sudo tee /etc/pihole/ftlbranch
pihole checkout core FTLDNS 
pihole checkout web FTLDNS

The Details

Except in special scenarios, pihole-FTL can’t share a system with dnsmasq from v4.0 onwards, since both provide the same services (DNS and possibly also DHCP) and need to bind to the same ports.

Think of FTLDNS as dnsmasq with Pi-hole’s special sauce.  This allows us to easily merge any upstream changes that get added, while still allowing us to continue to develop Pi-hole as we have been.

What does this mean for you?  If you already have dnsmasq installed, it will be disabled and pihole-FTL will take its place.  If you have any custom config files made for dnsmasq, they will still all work (because as we mentioned, we use dnsmasq internally to provide the DNS/DHCP service). However, we do disable dnsmasq so pihole-FTL can run properly. If you have any custom scripts that use the binary name dnsmasq, they would need to be edited as pihole-FTL is your new DNS/DHCP service.

What’s New With FTLDNS?

Better performance

Since we have a closer integration with dnsmasq, we gain a performance boost by not having to read the log file.

No need for the log file

Many of you have been complaining that the heavy log writing may lead to SD card wearing-out. With FTLDNS, the log file is not needed any longer and hence this heavy disk writing is a thing of the past. However, note that during the beta phase, extensive logging actually stays enabled to ease possible debugging.

More Query Types

You’ll now be able to see all sorts of different DNS records.

and more details on the Query Log page (Reply Type, more to come)

Getting Help and Providing Feedback About The Software

We’d love to hear your feedback on the software and any bugs you may run into.  We’re available on GitHub, Discourse, Reddit and Twitter.

Please tag your issues with ftldns (where available) so we know it’s related to that and not a regular issue.

Notable Replies

  1. Updated with the two commands above with 0 problems.
    I'm on armbian 5.38 jessie (orange pi) with dnsmasq updated by hand to v2.76
    At the moment it is working fine.

  2. Installed it on my RPi3 running Raspbian Stretch.
    Both my Domain Controllers (simple home setup) use it as their only forwarder.
    Normally it's the Pi-hole running in a CentOS VM.

    No weird issues so far. Feels faster resolving wise, so that's good :slight_smile:

  3. Avatar for c1zz c1zz says:

    works like a charm. have to play around with up and downgrade-procedure but.... nothin. :smile:
    clean and small - like it!

  4. So far the beta version works fine on my Pi.

    It even solves the bug between dnsmasq < 2.78 and DNScrypt-proxy (see here), so I can use FTLDNS with DNSSec enabled on Pi side (which is not possible with the "master" branch), perfect !

  5. Avatar for c1zz c1zz says:

    pihole + openvpn workz perfect - "jezuz - this FTL-thing is quick"
    its time to donate......


    the log looks good:
    [2018-04-25 10:50:11.489] Notice: Increasing overTime struct size from 400 to 500 (788.61 KB)
    [2018-04-25 15:52:44.864] ########## FTL started! ##########
    [2018-04-25 15:52:44.864] FTL branch: FTLDNS
    [2018-04-25 15:52:44.864] FTL version:
    [2018-04-25 15:52:44.864] FTL commit: 3656ba2
    [2018-04-25 15:52:44.864] FTL date: 2018-04-17 17:01:08 +0200
    [2018-04-25 15:52:44.864] FTL user: pihole
    [2018-04-25 15:52:44.864] Notice: Found no readable FTL config file
    [2018-04-25 15:52:44.864] Using default settings
    [2018-04-25 15:52:44.864] Starting config file parsing (
    [2018-04-25 15:52:44.864] SOCKET_LISTENING: only local
    [2018-04-25 15:52:44.864] AAAA_QUERY_ANALYSIS: Show AAAA queries
    [2018-04-25 15:52:44.864] MAXDBDAYS: max age for stored queries is 365 days
    [2018-04-25 15:52:44.864] RESOLVE_IPV6: Resolve IPv6 addresses
    [2018-04-25 15:52:44.864] RESOLVE_IPV4: Resolve IPv4 addresses
    [2018-04-25 15:52:44.864] DBINTERVAL: saving to DB file every minute
    [2018-04-25 15:52:44.864] DBFILE: Using /etc/pihole/pihole-FTL.db
    [2018-04-25 15:52:44.864] MAXLOGAGE: Importing up to 24.0 hours of log data
    [2018-04-25 15:52:44.864] PRIVACYLEVEL: Set to 0
    [2018-04-25 15:52:44.864] IGNORE_LOCALHOST: Show queries from localhost
    [2018-04-25 15:52:44.864] Finished config file parsing
    [2018-04-25 15:52:44.865] Database successfully initialized
    [2018-04-25 15:52:44.865] Notice: Increasing queries struct size from 0 to 10000 (640.15 KB)
    [2018-04-25 15:52:44.865] Notice: Increasing domains struct size from 0 to 1000 (672.15 KB)
    [2018-04-25 15:52:44.865] Notice: Increasing clients struct size from 0 to 10 (672.47 KB)
    [2018-04-25 15:52:44.865] Notice: Increasing forwarded struct size from 0 to 4 (672.66 KB)
    [2018-04-25 15:52:44.865] New forward server: (0/4)
    [2018-04-25 15:52:44.865] Notice: Increasing overTime struct size from 0 to 100 (680.68 KB)
    [2018-04-25 15:52:44.865] New forward server: (1/4)
    [2018-04-25 15:52:44.877] Notice: Increasing overTime struct size from 100 to 200 (704.60 KB)
    [2018-04-25 15:52:44.894] Imported 7848 queries from the long-term database
    [2018-04-25 15:52:44.894] -> Total DNS queries: 7848
    [2018-04-25 15:52:44.894] -> Cached DNS queries: 2707
    [2018-04-25 15:52:44.894] -> Forwarded DNS queries: 4344
    [2018-04-25 15:52:44.894] -> Exactly blocked DNS queries: 797
    [2018-04-25 15:52:44.894] -> Wildcard blocked DNS queries: 0
    [2018-04-25 15:52:44.894] -> Unknown DNS queries: 0
    [2018-04-25 15:52:44.894] -> Unique domains: 909
    [2018-04-25 15:52:44.894] -> Unique clients: 3
    [2018-04-25 15:52:44.894] -> Known forward destinations: 2
    [2018-04-25 15:52:44.894] Successfully accessed setupVars.conf
    [2018-04-25 15:52:44.896] Found no other running pihole-FTL process
    [2018-04-25 15:52:44.904] PID of FTL process: 16411
    [2018-04-25 15:52:44.904] Listening on port 4711 for incoming IPv4 telnet connections
    [2018-04-25 15:52:44.904] Listening on port 4711 for incoming IPv6 telnet connections
    [2018-04-25 15:52:44.904] Listening on Unix socket
    [2018-04-25 15:52:44.905] Gravity list entries: 121666
    [2018-04-25 15:52:44.905] No wildcard blocking list present
    [2018-04-25 15:52:54.125] Gravity list entries: 121666
    [2018-04-25 15:52:54.125] No wildcard blocking list present

    could it be that i dont run web-ui ?

    [SOLVED] update august '18

Continue the discussion

21 more replies