Pi-hole FTL v5.19.1, Web v5.17 and Core v5.14.1 released

Pi-hole FTL v5.19.1, Web v5.17 and Core v5.14.1 released

As always, please read through the changelog before updating with pihole -up. (A new tag for docker image will arrive in due course.)

Highlights

We update the embedded dnsmasq to the next tagged version of dnsmasq. Highlights compared to the most recent version of dnsmasq (v2.87) released in FTL v5.18 are:

  • Allow domain names as well is IP addresses in server options – this will be especially helpful in situations where upstream destinations are primarily reachable by hostname (think of DHCP networks and docker compose, etc.) (Pi-hole patch)

  • use-stale-cache – when set, if a DNS name exists in the cache, but its time-to-live has expired, dnsmasq will return the data anyway and attempts itself to refresh the data with an upstream query after returning the stale data. This can improve speed as we can always reply immediately to known queries, even when cached content has expired, instead of having to wait for upstream replies to arrive. However, in certain edge-cases, these out-of-data replies can lead to (intermittent) incorrect behavior on websites as there is no way to inform a downstream client that an answer we provided before was wrong. The client may cache wrong data for a long time until it re-sends a query to get the updated information.
    It comes at the expense of sometimes returning out-of-date replies and less efficient cache utilization, since old data cannot be flushed when its TTL expires. The cache becomes strictly least-recently-used.

  • New fast-dns-retry option – gives dnsmasq the ability to originate retries for upstream DNS queries itself, rather than relying on the downstream client. This is most useful when doing DNSSEC over unreliable upstream network. Retries are generated when no reply was received for 1 second. Retries are repeated with exponential backoff until we give up after 10 seconds. Both values are configurable with millisecond accuracy.

  • New port-limit=<#ports> option – by default, when sending a query via random ports to multiple upstream servers or retrying a query dnsmasq will use a single random port for all the tries/retries.

  • New no-round-robin option – suppresses round-robin ordering of DNS records and ensures answers are always served in the same order.

  • Enhance hostsdir to remove outdated entries on changes. Before, this required a full dnsmasq restart (Pi-hole patch)

  • Improve hostsdir logging to log the HOSTS file used for generating a local reply (Pi-hole patch)

This release also includes a number of smaller improvements and bug fixes in all components.

And here is the full change log:

Pi-hole FTL changes:

What’s Changed

Full Changelogv5.18.2...v5.19

Pi-hole Web changes:

What’s Changed

New Contributors

Full Changelogv5.16...v5.17

Pi-hole Core changes:

What’s Changed

New Contributors

Full Changelogv5.13...v5.14