Commit graph

356 commits

Author SHA1 Message Date
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
Miek Gieben
bae1fb7aa2 Add build tag to the tests 2016-03-23 10:46:33 +00:00
Miek Gieben
8f9f2cd1ab Add etcd middleware
This middleware acts in the same way as SkyDNS. We might add options
to allow it to be behave different, but for now it will suffice.

A Corefile like:
.:1053 {
    etcd miek.nl
    proxy . 8.8.8.8:53
}
will perform lookup in etcd and proxy everything not miek.nl to Google
for further resolution.

The internal etcd forwarding *also* uses the proxy infrastructure,
meaning you get health check and such for (almost) free
2016-03-23 10:41:40 +00:00
Miek Gieben
5229db0fe9 Dump rewrite.md here 2016-03-20 09:40:35 +00:00
Miek Gieben
2454d23cab only rewrite types when they are given in uppercase 2016-03-19 22:12:07 +00:00
Miek Gieben
c3e951818f Update docs 2016-03-19 20:59:10 +00:00
Miek Gieben
47fca9a8fc Proxy cleanups
Remove things not supported, fix docs.
2016-03-19 20:53:37 +00:00
Miek Gieben
ec84cb1270 Random fixes and make servfail the special return code 2016-03-19 20:17:44 +00:00