aboutsummaryrefslogtreecommitdiffstats
dnsfunnel - A small local DNS cache daemon

Software
skarnet.org

dnsfunnel

What is it ?

dnsfunnel is a small daemon listening to DNS client requests over UDP (typically from the libc's getaddrinfo() function) and forwards them to a list of DNS caches. It provides the client with the first answer it gets, trimming the answer so it fits in an UDP packet.

dnsfunnel is especially useful for distributions using the musl libc, which sometimes exposes bugs in common implementation of DNS caches. (Also, musl initially did not support TCP DNS transport, which was an additional argument for dnsfunnel that does.) dnsfunnel was originally written to be used in the Alpine Linux distribution.

A secondary use for dnsfunnel is to serve as a small forwarder for IPv6 addresses when your DNS cache doesn't listen to IPv6, which is the case with e.g. djbdns's dnscache. dnsfunnel can listen to ipv6, forward the queries to your IPv4 address where your real cache performs the resolution, and return the answer to your client.


Installation

Requirements

  • A POSIX-compliant system with a standard C development environment.
  • GNU make, version 3.81 or later
  • skalibs version 2.15.0.0 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the skalibs library.
  • s6-dns version 2.4.1.2 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the s6dns library.

Licensing

dnsfunnel is free software. It is available under the ISC license.

Download

Compilation

  • See the enclosed INSTALL file for installation details.

Upgrade notes

  • This page lists the differences to be aware of between the previous versions of dnsfunnel and the current one.

Reference

Commands

Related resources

  • dnsfunnel is discussed on the skaware mailing-list.