22 Commits

Author SHA1 Message Date
Michael Stapelberg
36995097b9 make local name resolution case-insensitive
fixes #34
2019-07-20 12:07:30 +02:00
Michael Stapelberg
66942bd4f7 dns: steer traffic toward the most response upstream
There is not much of a difference between IPv4 and IPv6 on my fiber7 link, but
in other networks, there might well be.

For my connection, this commit results in hitting different upstreams all the
time because the list isn’t stable. But, this is the opposite of a problem: we
are spreading the DNS query load over all configured IPs, as good netizen do.
2019-02-19 09:37:38 +01:00
Michael Stapelberg
a05f027765 dns: fallback only once, i.e. prefer the working server next time 2019-02-19 08:49:40 +01:00
Michael Stapelberg
ccaf6ad452 dns: fallback to next upstream upon failure 2019-02-19 08:38:52 +01:00
Michael Stapelberg
bd8fc63b0e dns: implement per-DHCP-lease dyndns
The HTTP API is easy to use from the command line or from Go:

% curl --data "host=sub&ip=192.168.33.44" -4 http://router7:8053/dyndns
ok
% host sub.$(hostname)
sub.midna has address 192.168.33.44

This can be used in combination with https://github.com/gokrazy/gdns
2019-01-06 14:41:26 +01:00
Michael Stapelberg
92d995bf79 dns: return empty reply for non-A queries for DNS hostnames
instead of NXDOMAIN, which is incorrect
2019-01-01 17:21:50 +01:00
Michael Stapelberg
ac883da6a5 dns_test: xps → testtarget
This fixes running the tests on xps, where the entry derived from os.Hostname
would clash with the xps entries the testcase tries to install.
2018-11-22 17:03:51 +01:00
Michael Stapelberg
4288adec69 dns: don’t let clients override the hostname
fixes #11
2018-10-22 21:43:41 +02:00
Michael Stapelberg
5a5a748b9f dnsd: don’t serve expired leases
fixes #6
2018-08-05 11:30:58 +02:00
Michael Stapelberg
b347ed74c5 update import paths 2018-07-09 08:54:04 +02:00
Michael Stapelberg
ff7aa8f2cb add copyright notices 2018-06-28 20:08:23 +02:00
Michael Stapelberg
89e1276ad4 dns: simplify resolving code 2018-06-26 09:33:23 +02:00
Michael Stapelberg
10df129c1f dns: listen on all private IP addresses 2018-06-26 08:53:20 +02:00
Michael Stapelberg
08249aec6a dns: resolve localhost locally 2018-06-25 20:24:02 +02:00
Michael Stapelberg
60de127991 Describe all packages and binaries. 2018-06-25 20:12:51 +02:00
Michael Stapelberg
c96c683e43 dns: send NXDOMAIN for non-existant local names 2018-06-23 22:15:35 +02:00
Michael Stapelberg
4b6b5196b0 dns: correctly resolve PTR for hostname 2018-06-18 09:44:46 +02:00
Michael Stapelberg
c743091929 dns: track number of questions and which upstream was used 2018-06-18 09:35:14 +02:00
Michael Stapelberg
24e2d5de00 dnsd: serve prometheus metrics on port 8053 2018-06-18 08:04:56 +02:00
Michael Stapelberg
93eaab99cb dns: resolve own hostname, lock for concurrency 2018-06-14 20:42:53 +02:00
Michael Stapelberg
02c7fa7e0d dns: serve reverse lookup queries for all RFC 1918 reserved networks 2018-06-14 20:24:44 +02:00
Michael Stapelberg
6b9ce5728a Initial commit 2018-05-27 17:30:42 +02:00