Commit graph

63 commits

Author SHA1 Message Date
Miek Gieben
dd537b163d Document log replacements
Rename latency to duration.
2016-04-03 17:05:16 +01:00
Miek Gieben
3b25bfd7ae Fix Corefile parsing
Fix some file/secondary issues when parsing a Corefile, also allow

for multiple origins to be specified. Also don't fail on startup when

a zonetransfer fails.



Fixes: #54
2016-04-03 15:52:23 +01:00
Miek Gieben
e41e8683bd prometheus: add docs and fix varz a little 2016-04-03 09:15:55 +01:00
Miek Gieben
f58f1e4285 Add secondary support
Allow specifying a primary server and retrieve the zone's content.

Add tests and an Expired bool to zone struct, to stop server zones

that are expired. The zone is retrieved on Startup, no updates of

changed content are done. We also don't respond to notifies yet.
2016-04-03 09:02:34 +01:00
Miek Gieben
7fb959470e Rename Standard to Normalize
Some doc updates and tweaks.
2016-04-03 07:44:28 +01:00
Miek Gieben
6ecbdef112 Add notifies to master servers
This adds a bunch of supporting code to send notifies to a primary

name server.
2016-04-03 07:37:41 +01:00
Miek Gieben
2adbdf34d9 Use qname/qtype for lookups
Drop the use of dns.RR when in fact the only thing we use is the name

and type of the RR. Cleans up a bunch of stuff and also stops the weird

making of dns.RRs just for a lookup. Should safe some memory as well.



Fixes: #66
2016-04-02 17:49:13 +01:00
Miek Gieben
9b21646954 empty non-terminal support
When looking for a name in tree, return wether we got to a longer one -

if so we had an ent. Add tests + dnssec tests and refactor the tests as

well a bit.
2016-04-02 16:56:16 +01:00
Matt Layher
453a8a1982 middleware: change documentation filenames to README.md 2016-04-01 18:26:18 -04:00
Miek Gieben
b915393aa0 Add Benchmark functions
Add benchmark for normal and DNSSEC lookup. We can probably shave quite
a lot of these, but first lets actually get to something that is
serving.
2016-03-31 22:10:17 +01:00
Miek Gieben
09c94fa443 Positive wildcare replies
Reply to queries when you have a wildcard in the zone. This works
for DNS and DNSSEC. Thing missing is NODATA responses for that specific
wildcard.

Add wildcard_test.go as well.
2016-03-31 21:47:44 +01:00
Miek Gieben
3591e2a6aa Add nameerror proof 2016-03-30 20:47:38 +01:00
Miek Gieben
8feef98188 Fix closest encloser 2016-03-30 20:13:48 +01:00
Miek Gieben
bf6d90600b add closest encloser stuff 2016-03-30 16:45:02 +00:00
Miek Gieben
9ba31ceb87 Think about wildcards 2016-03-30 13:26:51 +00:00
Miek Gieben
ec69798ca2 Add the nsecs for nxdomain 2016-03-30 13:26:51 +00:00
Miek Gieben
b67ecb3e55 More nameerror stuff 2016-03-30 13:26:51 +00:00
Miek Gieben
b4242a7d5d fixes and a wildcard test file as well 2016-03-30 13:25:45 +00:00
Miek Gieben
4be4d92ccb Fix positive replies 2016-03-30 13:25:45 +00:00
Miek Gieben
547a4ab2a8 More stuff 2016-03-30 13:25:45 +00:00
Miek Gieben
48f7d55f27 Get positive dnssec stuff going 2016-03-30 13:25:45 +00:00
Miek Gieben
162dca6eeb Add canonical sorting
Add a low-allocation canonical sorting function that can be used in
middleware.

This implements the tests from rfc4034 correctly.
2016-03-30 13:12:27 +00:00
Miek Gieben
e56d206542 Support outgoing zone transfers
These can be enabled by adding "transfer out" to the Corefile. Without
it no AXFR is allowed.

For now only AXFR and no IXFR. No TSIG and no ACLs.
2016-03-28 18:23:17 +01:00
Miek Gieben
6324bb1fa7 Scrub the returned result 2016-03-28 11:29:50 +01:00
Miek Gieben
3541bc8b2a Add DNSSEC test already; but disable it 2016-03-28 11:28:47 +01:00
Miek Gieben
6eae17b0bd Add testing package
This already includes a bunch of helper functions that aid in testing.
Factor out etcd and file testing to use this package.

Fixes: #50
2016-03-28 10:49:28 +01:00
Miek Gieben
5a919198ac Merge pull request #45 from miekg/etcd-stub
Etcd stub
2016-03-28 10:18:08 +01:00
Miek Gieben
5387c162c9 Implement a DNS zone
Full implementation, DNS (and in the future DNSSEC). Returns answer in a
hopefully standards compliant way.
Testing with my miek.nl zone are included as well.
This should correctly handle nodata, nxdomain and cnames.
2016-03-28 10:15:05 +01:00
Miek Gieben
7a4ca687a2 Fix docs 2016-03-26 16:32:36 +00:00
Miek Gieben
ebef64280a Support SkyDNS' stubzones
This implements stubzones in the same way as SkyDNS. This
also works with multiple configured domains and has tests.
Also add more configuration parameters for TLS and path prefix and
enabling stubzones.  Run StubUpdates as a startup command to keep up to
date with the list in etcd.
2016-03-26 16:29:35 +00:00
Miek Gieben
b2c221c9cd Add test for CNAME ordering
Add a test for SkyDNS':
https://github.com/skynetservices/skydns/issues/217

Put the CNAME in front for both answer and extra sections. Note that
the etcd middleware seems to already to the correct thing though.
2016-03-26 13:26:46 +00:00
Miek Gieben
90f73c50cf Add Scrub function
This function will make the message fit for the client's buffer, or
set the TC bit.
2016-03-26 09:26:54 +00:00
Miek Gieben
a832ab696a bugfix: actually *use* the CH class 2016-03-25 20:30:38 +00:00
Miek Gieben
16e50ec5f8 Add state.SizeAndDo()
This methods returns an OPT record which can be used to create a new
message with the same bufsize and Do bit as the original one.
2016-03-25 17:23:06 +00:00
Miek Gieben
e8982dc99c Add tests for multi zone support
Working as intended and now tested.
2016-03-25 16:24:43 +00:00
Miek Gieben
e62eb2cde0 Bugfix: bx in etcd.go didn't get Key
Thus record only diffing in the Key were seen as identical and not
included in the end results. Of course this being a map when and if
this would happen was rather random.

Fixed by including Key. Further small tweaks and code refactors.
2016-03-25 15:30:44 +00:00
Miek Gieben
e408c81a8c Add more tests and include the forgotten chaos_test.go as well 2016-03-25 10:32:12 +00:00
Miek Gieben
5d70567f1c Implement chaos middleware
This allows for CH TXT queries that return some information about
the server and/or the authors (or whatever you put in there).
2016-03-25 08:36:32 +00:00
Miek Gieben
9712bade34 fix doc 2016-03-24 17:55:46 +00:00
Miek Gieben
2caddcf761 Small optimization in round robin load balancing 2016-03-24 17:51:28 +00:00
Miek Gieben
430f11a6d2 Add context.WithTimeout
Closes #41
2016-03-24 17:46:14 +00:00
Miek Gieben
4fe39f9e9e Port tests from SkyDNS
This adds *most* of the tests from SkyDNS, things lacking is
the stubzone checking, groups and the trim prefix. These
will be added in subsequent PRs and in separate test files.
2016-03-24 17:31:01 +00:00
Miek Gieben
78d2e31ec1 Add Stub resolving
SkyDNS can forward requests from one instance to another.
Add this base infrastructure for this feature to CoreDNS.

Add more tests as well.
2016-03-24 09:20:53 +00:00
Miek Gieben
163e5d8e71 fixed 2016-03-23 23:20:50 +00:00
Miek Gieben
55aa436234 more stuff 2016-03-23 23:06:16 +00:00
Miek Gieben
a655a5735b Slowly adding all the tests from skydns 2016-03-23 22:59:05 +00:00
Miek Gieben
18ef25e0d5 Merge pull request #33 from miekg/middleware/rewrite2
Rewrite the name of the query as well
2016-03-23 21:47:47 +00:00
Miek Gieben
e954332b9f Allow rewriting of the the name of the query as well. And improve
the docs a little.
2016-03-23 21:45:27 +00:00
Miek Gieben
b167411bba Add roundrobin middleware
This middleware allows you to round robin a/aaaa records in a reply and
maybe more in the future (i.e.) sort a packet?
2016-03-23 21:38:35 +00:00
Miek Gieben
7d834ce037 Remove reflect middleware - it was only a toy 2016-03-23 10:54:50 +00:00