【问题标题】:Consul dns round robin and pingConsul dns 循环和 ping
【发布时间】:2017-12-13 13:51:16
【问题描述】:

我设置了包含 3 台服务器的测试集群。 CentOS 7下的所有机器上都安装了Consul、dnsmask和NetworkManager。

我想测试简单的循环程序:

预期:ping consul.service.consul 必须将 icmp 请求发送到三个服务器之一。

实际:ping 总是将请求发送到一个 IP 地址 (10.82.5.6)

但是在 dig 命令的 answer 部分中更改了 ip 顺序:

[vagrant@localhost ~]$ dig consul.service.consul

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> consul.service.consul
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23466
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;consul.service.consul.         IN      A

;; ANSWER SECTION:
consul.service.consul.  0       IN      A       10.82.5.5
consul.service.consul.  0       IN      A       10.82.5.4
consul.service.consul.  0       IN      A       10.82.5.6

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 13 13:40:20 UTC 2017
;; MSG SIZE  rcvd: 98

如果我重新启动 10.82.5.6 节点,dig 返回 2 个节点,ping 开始正常工作 - 循环。但是当我重新启动节点 10.82.5.6 时,只有这个节点再次响应 ping 命令

【问题讨论】:

  • 请接受我的回答

标签: dns consul round-robin dnsmasq networkmanager


【解决方案1】:

根据https://www.consul.io/docs/agent/dns.html,DNS 接口将返回的节点随机化,因此它永远不会是循环的。

还有 DNS 缓存 https://www.consul.io/docs/guides/dns-cache.html 默认 TTL 为 0,但您可能有不同的内容和/或结果缓存在其他地方..

【讨论】:

    猜你喜欢
    • 2011-11-04
    • 2023-03-20
    • 2011-09-01
    • 2015-12-27
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多