如何生成 GCP DNS 日志

How To Generate GCP DNS Logs

我是 GCP 新手,很好奇如何在 GCP 日志浏览器中生成 DNS 日志。我不熟悉 GCP,看过他们的 DNS 日志记录网站,我知道必须制定政策。但是在配置了DNS策略之后,什么样的DNS请求会产生日志,需要怎样配置DNS记录才能保证有日志呢?

然后我需要哪些外部命令来运行获取 GCP 日志以显示 DNS 查询结果?

GCP Link:https://cloud.google.com/dns/docs/monitoring

我不知道 GCP 日志,但你可以诊断 where/how DNS 请求是 handled/directed:

dig -t A a.root-servers.net.

此命令要求主机 a.root-servers.net(众所周知的 DNS 服务器 IIRC - 参见 https://www.iana.org/domains/root/servers)的 IPv4 地址(记录 -type A

结果:

...
;; ANSWER SECTION:
a.root-servers.net. 421290  IN  A   198.41.0.4
...
dig -t AAAA a.root-servers.net.

这请求一个 IPv6 地址(记录 -type AAAA

结果:

...
;; ANSWER SECTION:
a.root-servers.net. 464385  IN  AAAA    2001:503:ba3e::2:30
...

知道 a.root-servers.net. 是一个 DNS 服务器,我们可以查找为另一台服务器存储的记录(从其中一个根 DNS 服务器开始)...

dig @198.41.0.4 -t AAAA a.root-servers.net.

在这里我们向 DNS 主机 198.41.0.4 询问别名的地址 a.root-servers.net. 我们得到一个 IPv6 响应和一些额外的细节

如果我们有一个要查找的主机名,我们可以通过以下方式通过 DNS 服务器检查到它的路由:

ping google.com
PING google.com (142.250.178.14): 56 data bytes
64 bytes from 142.250.178.14: icmp_seq=0 ttl=117 time=20.805 ms

查找解析 IP 地址的 DNS 服务器

host 142.250.178.14
14.178.250.142.in-addr.arpa domain name pointer lhr48s27-in-f14.1e100.net.

我们可以访问任何公开列出的 DNS 服务器 - 例如google 的 8.8.8.8(IIRC 8.8.4.4 也是 google 的 DNS 服务器 运行) - 我们可以查找 ANY 记录来导航DNS 服务器找出哪个 DNS 服务器存储了我们感兴趣的 DNS 条目的记录,以查看它是如何解析的。

dig @8.8.8.8 -t ANY 14.178.250.142.in-addr.arpa

此 returns 负责域名开头的域名服务器列表 14.178.250.*

结果:

...
;; ANSWER SECTION:
14.178.250.142.in-addr.arpa. 21599 IN   PTR lhr48s27-in-f14.1e100.net.
...

PTR这里只是指指针。

再次进行相同的查找:dig @8.8.8.8 -t ANY lhr48s27-in-f14.1e100.net.

我们得到 A 条记录(IPv4 条目)的结果。

...
;; ANSWER SECTION:
lhr48s27-in-f14.1e100.net. 21599 IN A   142.250.178.14
...

这是 Google.com 的 IP 地址(可能是负载均衡器)。

您可以通过其他 DNS 服务器(有很多)向下导航初始 DNS 服务器,直到到达 A / AAAA 记录。

配置 DNS 服务器策略后,请按照以下步骤确保启用 DNS 日志记录:

  1. 点击 Cloud DNS 中的“DNS 服务器策略”。
  2. 单击要从中获取日志的策略的名称,然后单击“编辑策略”。
  3. 在日志下,select“开启”选项,然后点击保存。 (如果“打开”选项已经 selected,则表示您的日志记录已启用。)

这将允许在 Cloud Logging 中生成来自内部 VPC DNS 查询的日志。

或者,您可以 运行 在云中执行以下命令 shell 以启用特定 DNS 服务器策略的日志记录 -

gcloud dns policies update [policy name]    --networks=[VPC network’s name] --enable-logging

替代 John 的建议,要查看 DNS 查询生成的日志,您可以按照以下步骤操作:

  1. 在控制台的搜索栏中搜索“日志资源管理器”,点击“日志资源管理器”。
  2. 在资源下,select“云 DNS 查询”,然后 select 您的首选 DNS 区域名称,然后 select 您的首选接收查询的位置,单击添加。

或者您可以 运行 在日志资源管理器中执行以下查询以查看所需的日志:

resource.type="dns_query" 
resource.labels.target_name="[preferred Zone’s name]" 
resource.labels.location="[preferred location to receive queries]"

现在您将能够看到为所做的 DNS 查询生成的日志。