将 dnsmaqs 与 Consul 一起使用以及围绕递归的混淆

Using dnsmaqs with Consul and the confusion around recursive

我正在使用 dnsmasq,但我对在何处设置内容有点困惑。一切都按预期工作,但我不确定我的任何配置参数是否多余或会导致问题。

1 - 我需要在 Consul 的配置中设置 recusors 选项吗?

2 - 我还需要 /etc/resolv.conf 中的两个 nameservers 条目吗?

3 - 我需要在所有 Consul 客户端上使用 dnsmasq 还是仅在服务器上使用?

#/etc/dnsmasq.d/dnsmasq.conf`

server=/consul/127.0.0.1#8600

我的 Consul 配置如下所示:

{
    "server": false,
    "client_addr": "0.0.0.0",
    "bind_addr": "0.0.0.0",
    "datacenter": "us-east-1",
    "advertise_addr": "172.16.11.144",
    "data_dir": "/var/consul",
    "encrypt": "XXXXXXXXXXXXX",
    "retry_join_ec2": {
      "tag_key": "SOMEKEY",
      "tag_value": "SOMEVALUE"
    },
    "log_level": "INFO",
    "recursors" : [ "172.31.33.2" ],
    "enable_syslog": true
}

我的 /etc/resolv.conf 看起来像这样:

nameserver 127.0.0.1
nameserver 172.31.33.2 

1) 阅读文档:https://www.consul.io/docs/agent/options.html#recursors 如果您在 Consul 中注册了外部服务,那么拥有递归设置是很好的,否则它可能没有实际意义。您可能不希望 ALL 的 DNS 流量直接访问 consul,而只是特定于 consul 的 DNS 流量。

2 & 3:

由你决定。有些人在每台机器上 运行 dnsmasq。有些人将 dnsmasq 集中在他们的内部 DNS 服务器上。两者都是有效的配置。如果你 运行 它在每台机器上,那么你可能只需要 1 个名称服务器条目,指向本地主机。如果你 运行 它集中(即仅在你的内部 DNS 服务器上),那么你只需将每台机器指向你的内部 DNS 服务器。两者都是有效的选项。