42 Commits

Author SHA1 Message Date
Timmy Welch
fc2e21cfd6 Fix nft run 2024-12-24 11:09:11 -08:00
Timmy Welch
971b8f2521 Use nextdns 2024-08-17 11:21:07 -07:00
Timmy Welch
ab5bce1356 updates 2024-01-20 11:41:04 -08:00
lordwelch
61b59517fc Act as the authority even though were not
letsencrypt needs to talk to the authoritative name server, but
I have all dns traffic redirected to here so we get the SOA using the
same request (probably only works by accident) and then make a request
to the address listed in the SOA

Fix typos in IPv6 addresses
2021-05-26 23:04:33 -07:00
lordwelch
e34b880a55 Final fix
Add the domain as it is needed (multiple domains on a home net is niche)
Only replace the record if a local one was found
Use proper slice updating
2021-05-23 19:34:59 -07:00
lordwelch
ac0ef71d9f Fix null check 2021-05-23 18:54:09 -07:00
lordwelch
9533787aac Fix err check
go mod tidy
2021-05-23 18:31:30 -07:00
lordwelch
29eaa11052 Update parameters for clarity
Hijack the final A record in a CNAME chain if it is in our records
2021-05-23 17:49:15 -07:00
lordwelch
ef50f7c2e4 Merge remote-tracking branch 'origin/master' 2021-03-15 22:44:39 -07:00
Robert Obryk
8de4eb7ba1
internal/dns: prevent upstreams from being lost during reordering (#63)
If upstreams were reordered between start of an upstream request and its
conclusion, the move-to-front operation would likely incorrectly reorder
upstreams: duplicate one and remove another. Instead, we abandon the
move-to-front operation if that was about to happen.
2020-11-23 09:34:04 +01:00
lordwelch
2dc11ce1e3 Add additional test cases and fix some failing tests 2020-08-10 18:12:34 -07:00
lordwelch
e421cff225 Fix the implicit lan domain
Includes test for setting a custom domain
2020-08-10 18:12:34 -07:00
lordwelch
fbd2facfa1 Set the recursion available flag 2020-08-10 18:12:34 -07:00
lordwelch
fbbfa568a8 Add JSON tags 2020-08-10 18:12:34 -07:00
lordwelch
169bc5c3e7 DNS changes
go mod tidy
2020-08-10 18:12:34 -07:00
lordwelch
3c451f06ca Add the ability to run router7 on a normal Linux distribution 2020-08-10 18:12:34 -07:00
Matt Layher
9f6257b046
internal/dns: fix staticcheck issues
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 17:02:33 -04:00
Michael Stapelberg
70edcab16b dns: return NXDOMAIN for DHCP leases once they expire 2019-09-07 19:27:12 +02:00
Michael Stapelberg
4cde5ec6fc dns: fix resolution of uppercase host names, add test 2019-08-07 18:18:51 +02:00
Michael Stapelberg
8fb81f90b1 dns: make more recent DHCP leases overwrite older ones
fixes #20
2019-07-20 12:23:48 +02:00
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