Bryan Boreham
503546d2a9
Return DNS no-error with empty answer if we have a matching name
...
but the query is for a record type we don't support.
2016-05-03 17:33:51 +01:00
Adam Harrison
f64f63f675
Handle truncated responses from upstream servers
2015-11-02 15:00:02 +00:00
Tom Wilkie
58ae0cd113
Pass docker bridge ip to dns server, and filter it out of upstream dns ips.
2015-08-24 16:00:26 +00:00
Tom Wilkie
8516ab7c69
Unify logic to tell if DNS response is too big.
2015-08-21 12:39:12 +00:00
Matthias Radestock
2284bc2120
move error response construction to handler
...
and implement it in terms of existing functions, plus provide a
convenience method for sending the rather common NameError.
2015-08-21 12:09:22 +01:00
Matthias Radestock
0b5f5fd74e
extract response writing
2015-08-20 20:24:12 +01:00
Matthias Radestock
9a7abe68fd
optimise response construction when no truncation is required
...
no need to do a binary search if all the answers fit
2015-08-20 20:18:56 +01:00
Matthias Radestock
2ea27ec08f
simplify response truncation
2015-08-20 19:55:19 +01:00
Matthias Radestock
322441d5c8
inline truncateResponse
2015-08-20 19:55:19 +01:00
Matthias Radestock
7c7c302920
extract response construction
2015-08-20 19:17:03 +01:00
Matthias Radestock
69986e77dd
cosmetic
2015-08-20 18:46:55 +01:00
Matthias Radestock
8182022d52
refactor dns handlers
...
introduce a handler struct, which
- enables lifting of all the handle* closures to methods
- eliminates the passing around of defaultMaxResponseSize
- reduces the number of free-floating functions
2015-08-20 18:27:58 +01:00
Tom Wilkie
4f00dab4c4
Compress recursive answers if they are too big.
2015-08-17 18:25:26 +01:00
Matthias Radestock
755a949f6d
Merge pull request #1277 from weaveworks/1275-negative-dns
...
Return NXDOMAIN when we don't have entries
and drop the non-authoritative special case for recursive dns.
Fixes #1275 .
2015-08-10 17:19:44 +01:00
Tom Wilkie
c2d5b35cd6
Add test for negative DNS queries
2015-08-10 13:13:12 +00:00
Tom Wilkie
073836905a
Return NXDOMAIN when we don't have entries, and drop the non-authoritative special case for recursive dns.
2015-08-10 12:19:21 +00:00
Matthias Radestock
fd2a59417d
cosmetic
2015-08-10 12:39:00 +01:00
Tom Wilkie
db6ee9954c
Allow users to set dns listen address so we can run the weave router in the host net namespace.
2015-07-28 14:49:09 +00:00
Tom Wilkie
91395d6728
Use Msg.Copy!
2015-07-15 11:05:36 +00:00
Tom Wilkie
fa73240812
Copy dns requests and give them a fresh id when doing recursive queries.
2015-07-14 16:44:21 +00:00
Tom Wilkie
361ed1b4a6
Resolve unqualified domains in the weave.local domain.
2015-07-14 16:05:41 +00:00
Tom Wilkie
8b061fd555
Gossip-based DNS embedded in the router.
...
- Nameserver holds a sorted list of (hostname, peer, container id, ip) tuples.
- Entries are gossiped using topology gossip / broadcast - only new/updated entries
are propogated as expected.
- Entries for a given peer are removed when the connection to the peer is lost.
- Entries are tombstoned when containers die. Tombstones are kept for 10mins,
as they do not need to survive partition, only gossip propagation delay.
2015-07-14 16:00:38 +00:00
Tom Wilkie
01f7201a9e
Remove legacy WeaveDNS code.
2015-07-14 16:00:28 +00:00
Matthias Radestock
18032015b9
Revert "Resolve unqualified names in the local WeaveDNS domain"
2015-07-14 16:06:05 +01:00
Alvaro Saurin
efb0ead9ad
Resolve unqualified names in the local WeaveDNS domain
...
Unit tests
2015-07-14 10:46:41 +02:00
Alvaro Saurin
858a6dd253
Make the TTL returned for local answers configurable.
2015-05-29 12:50:18 +02:00
Alvaro Saurin
6d2317d60e
Silence "golint" errors
...
Silence "go vet" errors
Run goimports
2015-05-28 10:05:22 +02:00
Alvaro Saurin
954c5cb394
Limit the number of answers we provide to users.
2015-05-27 14:54:29 +02:00
Alvaro Saurin
c4b07fd44e
Shuffle all the replies, not only the ones from the cache...
2015-05-26 21:24:28 +02:00
Alvaro Saurin
07d15092aa
Do not invoke the mDNS lookups from the server: they are used from the Zone database now...
...
Improved DNS server:
- simplify the handlers code, removing duplicated code
- more configuration parameters (eg, we can now disable the cache)
- we can now bind to port 0 and let the server get a free port (so we can get rid of the mess we had in the unit tests...)
2015-05-26 21:20:42 +02:00
Alvaro Saurin
ba98135e03
Return NOTIMP for some unimplemented query types, NXDOMAIN otherwise
2015-05-05 21:31:11 +02:00
Alvaro Saurin
58c8945b32
Support "insistent" queries in the mDNS client, used for obtaining all possible responses from mDNS servers.
...
Support for multiple responses from Lookup*() methods
Support for multiple records when building packets with make*() methods
Use a common "ZoneRecord" interface for structs that contain names and IPs
2015-04-23 13:01:29 +02:00
Matthias Radestock
1ad950f177
cosmetic: more linting
2015-03-27 01:12:16 +00:00
Matthias Radestock
2d83fcc398
oops
2015-03-26 18:37:37 +00:00
Matthias Radestock
44a4dd9888
cosmetic: go vet
2015-03-26 18:36:00 +00:00
Adam Harrison
efb7c0f1bc
gofmt
2015-03-26 10:54:46 +00:00
Alvaro Saurin
9dcec8ca16
basic DNS cache
...
unit tests
2015-03-24 12:44:01 +01:00
Matthias Radestock
fda412a151
refactor: rename badly named function
...
makeAddressReply handles both A and AAAA records
2014-11-17 12:06:06 +00:00
Michael Bridgen
822ec90606
Rename weavedns package to nameserver, and fix up
2014-10-29 11:41:58 +00:00
Michael Bridgen
8469fea215
Move files around in preparation for melding into weave code
...
* library code will go in weave/nameserver/
* main.go for the server goes in weavedns/ with the containerising
2014-10-29 11:34:56 +00:00