Support DNS push notifications (RFC8765) in DNS interface
- 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
Assessment
This issue has not been assessed yet.