Commit Graph

115 Commits

Author SHA1 Message Date
Frank Schroeder 45a9c2be8b
agent: refactor DNS and HTTP server
* refactor DNS server to be ready for multiple bind addresses
* drop tcpKeepAliveListener since it is default for the HTTP servers
* add startup timeout watcher for HTTP servers identical to DNS server
2017-05-31 00:29:29 +02:00
Frank Schroeder 2b627b95dd
agent: fix logging
* use agent logger for consul/serf/raft/dns/agent/...
* support optional id for concurrent tests
2017-05-31 00:29:27 +02:00
Frank Schroeder 9d4529972e
dns: do not log socket close during shutdown 2017-05-31 00:29:27 +02:00
Frank Schroeder 6a40fe026e
agent: shutdown dns servers on error 2017-05-31 00:29:26 +02:00
James Phillips aba567273e Merge pull request #2690 from zeroae/f-simple-rfc2782
RFC 2782 support with optional .service tag
2017-03-02 14:49:36 -08:00
James Phillips 691aec917e
Fixes issue with missing CNAME for services with non-IP addresses set in SRV responses. 2017-01-31 20:57:50 -08:00
Patrick Sodré 5b68178dc1 Simple RFC 2782 support with optional .service tag
Add support for SRV queries of names matching:
_<service>._<protocol>.[.service][.datacenter]<.domain>
2017-01-30 19:46:02 -05:00
Kyle Havlovitz 1ffdf04bd7 Set MaxStale default to 10 years and add a stale counter (#2481)
Default MaxStale to 10 years and add a counter at `consul.dns.stale_queries` that tracks when an agent serves a query that's stale by at least 5 seconds. Previously, MaxStale defaulted to 5 seconds and DNS would become unavailable after a short period of time with no leader. This new default allows DNS requests to still be served in the event of a long outage.

Fixes #2460.
2016-11-08 14:45:12 -05:00
James Phillips 42de8f9800 Adds support for DNS recurse truncation. (#2467)
* Return message from recurse even if truncated

Signed-off-by: Evan Farrar <efarrar@pivotal.io>

* Tweaks unit test.
2016-11-03 12:21:16 -07:00
Kyle Havlovitz efb8f84922 Added tests for lookups on the 'addr.consul' domain 2016-10-27 21:04:06 -07:00
Kyle Havlovitz b72bccc1c4 Give the service address in SRV lookup when it differs from the node's 2016-10-27 21:04:06 -07:00
Kyle Havlovitz de308e75e1 Resolve Consul CNAME records on external services (#2444) 2016-10-26 19:23:51 -07:00
Pivotal DX129 2682410059 Merge remote-tracking branch 'upstream/master' 2016-09-01 10:15:32 -04:00
James Phillips 3304352272
Changes default DNS allow_stale to true. 2016-08-30 13:55:19 -07:00
Pierre Delagrave 3d5c2609e7 Renamed dns config parameter internal_client_timeout for recursor_timeout 2016-08-26 15:22:04 -04:00
Pierre Delagrave 17b6a18c37 Added a configurable timeout to the client making DNS queries to downstream name servers 2016-08-23 16:59:38 -04:00
James Phillips c066c2e70a
Factors translate out into a separate file and makes safe for in-memory RPCs. 2016-08-15 15:05:02 -07:00
David van Geest 360e196c93
Translate Address to tagged WAN address in HTTP API when appropriate. 2016-08-12 18:25:36 -07:00
James Phillips 4915790bdc
Runs `go fmt`. 2016-08-12 17:26:23 -07:00
Max Timchenko 90f49354d6
Corrects two issues with DNS prepared query failover
When DNS prepared query fails over to another datacenter and the datacenter
returns some nodes, the DNS result does not translate WAN addresses even when
translation is enabled for SRV and A queries, and returns the wrong datacenter
(the one that failed over) for SRV queries.
2016-08-12 17:06:43 -07:00
James Phillips a666dc44b3
Passes the index by reference so we can control the allocation. 2016-08-12 14:51:50 -07:00
James Phillips de95fe8638
Makes name compares case-insensitive. 2016-08-12 12:16:21 -07:00
James Phillips 45e2879eb5
Avoids allocations and function calls if no extra data is present. 2016-08-12 10:29:57 -07:00
James Phillips e05c77b9bf
Renames "seen" to "resolved". 2016-08-11 22:01:57 -07:00
James Phillips 6c22c48326
Fixes the DNS SRV trim bug. 2016-08-11 21:46:14 -07:00
James Phillips 086a5af5ff
Finishes up DNS compression by adding opt-out, tests, and documentation. Fixes trim routine. 2016-08-11 16:27:08 -07:00
epipho f31f1c04e9
Fix panic where r.Compress would be set before checking for errors. 2016-08-11 16:27:08 -07:00
epipho 6d17b4eb67
Compress all DNS responses to prevent them from going over the 512 byte
limit from RFC 1035
2016-08-11 16:27:08 -07:00
Ryan Uber ebacaa2d67 consul: send agent source data as separate query source 2016-06-30 16:51:18 -07:00
Ryan Uber ec8ade1800 agent: always pass local agent query source, allow override 2016-06-30 12:11:48 -07:00
Ryan Uber 270270a33a consul: send origin node + dc when executing prepared queries 2016-06-21 15:34:26 -07:00
Ryan Uber 89660879a0 agent: set origin during PQ execution 2016-06-20 14:24:42 -07:00
Sean Chittenden c3dcd9acfb Correctly detect that an answer has been truncated 2016-03-29 19:52:31 -07:00
Sean Chittenden 0ad4fab7d4 Remove dead and incorrect code
This functionality is handled further upstream in `trimUDPAnswers()`
2016-03-29 19:38:26 -07:00
Sean Chittenden d1166307aa Trim UDP responses per configuration 2016-03-29 19:27:21 -07:00
Sean Chittenden a29f6e8c8f Allow adjusting the number of DNS records in a response...
Based on work done by @fusiondog in #1583, extend the concept to use an integer instead of a boolean.

Fixes: #1583 && #1481
2016-03-29 19:23:56 -07:00
Patrick Feliciano e533f9bce1 Adding singleton option to DNS for getaddrinfo bug. 2016-03-29 19:23:07 -07:00
James Phillips b132e8f21b Tweaks algorithm so it's safe with an empty list and adds a PQ test. 2016-03-08 23:09:09 -08:00
Igor Dubinskiy f4edb28ef3 Make sure UDP DNS responses aren't larger than allowed 2016-03-07 16:41:17 -08:00
James Phillips a61a7403a7 Factors address translation into a single function. 2016-02-07 13:39:37 -08:00
James Phillips 79bd1fd4bb Sets up config for more address tags down the road, renames struct members. 2016-02-07 10:37:34 -08:00
Evan Gilman 71cf39b5f8 Use a map for additional node addresses 2016-02-06 23:01:45 -08:00
Evan Gilman d18dc81749 Consider WAN addresses during Node and SRV record lookup 2016-02-06 23:01:45 -08:00
Evan Gilman 0b741350b9 Implement `translate_wan_addrs` config option
This knob tells consul whether it should prefer the WAN address (if set)
when making service lookups in remote datacenters. This enables
reachability for remote services which are behind a NAT.
2016-02-06 23:01:45 -08:00
James Phillips 874d491ade Converts the DNS metric to a gauge which gives us a count and a time. 2015-12-21 18:25:09 -08:00
James Phillips 9e0ac674c3 Adds telemetry on number of DNS queries served, per-agent. 2015-12-21 17:01:28 -08:00
James Phillips a364a02da6 Avoids taking the length again when parsing DNS queries. 2015-11-17 08:40:47 -08:00
James Phillips 267c352c6d Adds a test to make sure a stale retry terminates. 2015-11-15 17:06:00 -08:00
James Phillips c9ef552385 Plumbs the service name back and uses agent-specific TTL settings as a fallback. 2015-11-15 17:06:00 -08:00
James Phillips cad6938474 Adds unit tests for prepared queries and DNS, using existing tests for equivalence. 2015-11-15 17:06:00 -08:00