GCE DNS 转发

GCE DNS 转发

我正在尝试为 VPC 网络设置本地 DNS 转发器,以使用运行 DNS 服务器的 LDAP 控制器。我有几个 GCP 项目,它们应该能够使用 DNS 名称通过已构建的 VPN 隧道相互通信。我已经在 GCP 上激活了 Cloud DNS,创建了 DNS 服务器策略以将请求转发到内部 DNS 服务器,并将此策略分配给我的自定义网络设置,但 GCE VM 仍然无法解析主机。但如果我在 VM 上编辑 /etc/resolv.conf 文件并将名称服务器选项放在 GCP 元数据服务器 (169.254.169.254) 之前 - 一切都运行正常。这种解决方案并不可取,因为在大量 VM 的情况下,我需要分别为每个 VM 部署这些更改。我还尝试为内部域部署转发规则 - 结果是一样的。根据 GCP DNS“操作方法”,您可以使用下一个命令来检查所有网络的 DNS 解析器设置:

gcloud compute address list \ --filter="purpose=DNS_RESOLVER" \ --format='csv[no-heading](address, subnetwork)' .... 192.168.14.4,cloud-vpn-14 .... 此 IP 由“dns-forwarder-....”保留,我能够使用 dig test.1.com 发出请求,但它不会将查询转发到 DNS 转发策略使用的 DNS 服务器。

所以我的问题是如何克服 /etc/resolv.conf 文件的手动覆盖?或者如何使 DNS 转发正常工作?

答案1

我设置了,但没有指定内部 ip DNS 服务器。

我进行了实验并设法发现了以下内容:为了成功工作,--forwarding-targets可以只添加外部 DNS 服务器的 IP,而不能添加内部 DNS 服务器的 IP。因此,为了使此规则起作用,您需要将 nat 重定向 53 udp 端口​​从公司网络的外部 IP 重定向到 DNS 服务器的内部 IP。并允许对 35.199.192.0/19 范围的 IP 进行此重定向,google 使用该范围来代理 DNS 查询(文档https://cloud.google.com/dns/zones/#creating-forwarding-zones),但在我的实验过程中,也很明显需要添加 172.217.0.0/16 的范围。

满足这些条件后,一切都会开始顺利运行。

例子:

gcloud beta dns managed-zones create example-forwarding-zone \
    --dns-name="cluster.example.com" \
    --description="A zone" \
    --networks="default,my-network" \
    --visibility=private \
    --forwarding-targets="ext_ip_of_your_corporate_network"

此后解析主机test.cluster.example.com就开始工作。

相关内容