hashicorp / hashicorp/consul

Support DNS push notifications (RFC8765) in DNS interface

Open
#8,201 3 comments 2 reactions 0 assignees View on GitHub
needs-discussion theme/dns type/enhancement
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
2d 6h
Merged PRs (30d)
43

Description

#### Feature Description

In order to provide near real-time updates to clients using the DNS interface, `DNS push notifications` specification has been published. It would be great if consul would support it.

Reference: https://www.rfc-editor.org/rfc/rfc8765.txt

At the time of writing, Consul doesn't seem to support it:
```
$ docker run --rm --net host consul
[...]
2020-06-29T08:52:13.979Z [DEBUG] agent.dns: request served from client: name=_dns-push-tls._tcp.consul.service.consul. type=SRV class=IN latency=375.744µs client=127.0.0.1:46788 client_network=udp
```

```
$ dig @127.0.0.1 -p 8600 SRV _dns-push-tls._tcp.consul.service.consul

; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> @127.0.0.1 -p 8600 SRV _dns-push-tls._tcp.consul.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46025
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_dns-push-tls._tcp.consul.service.consul. IN SRV

;; AUTHORITY SECTION:
consul. 0 IN SOA ns.consul. hostmaster.consul. 1593420733 3600 600 86400 0

;; Query time: 0 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Mon Jun 29 09:52:13 IST 2020
;; MSG SIZE rcvd: 119
```
#### Use Case(s)

This feature would enable DNS client libraries to be notified of changes in available service instances in a near real-time fashion. This would prevent clients from using stale DNS records in consul managed zone as services status change.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.