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
- The current released version of dnsfunnel is 0.0.3.2. You can access its checksum here.
- Alternatively, you can checkout a copy of the
dnsfunnel
git repository:
git clone git://git.skarnet.org/dnsfunnel
- There's also a Codeberg mirror, or a GitHub mirror, or a SourceHut mirror of the dnsfunnel git repository.
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.
