如何生成 GCP DNS 日志
How To Generate GCP DNS Logs
我是 GCP 新手,很好奇如何在 GCP 日志浏览器中生成 DNS 日志。我不熟悉 GCP,看过他们的 DNS 日志记录网站,我知道必须制定政策。但是在配置了DNS策略之后,什么样的DNS请求会产生日志,需要怎样配置DNS记录才能保证有日志呢?
然后我需要哪些外部命令来运行获取 GCP 日志以显示 DNS 查询结果?
我不知道 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 地址(记录 -t
ype A
)
结果:
...
;; ANSWER SECTION:
a.root-servers.net. 421290 IN A 198.41.0.4
...
dig -t AAAA a.root-servers.net.
这请求一个 IPv6 地址(记录 -t
ype 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 日志记录:
- 点击 Cloud DNS 中的“DNS 服务器策略”。
- 单击要从中获取日志的策略的名称,然后单击“编辑策略”。
- 在日志下,select“开启”选项,然后点击保存。 (如果“打开”选项已经 selected,则表示您的日志记录已启用。)
这将允许在 Cloud Logging 中生成来自内部 VPC DNS 查询的日志。
或者,您可以 运行 在云中执行以下命令 shell 以启用特定 DNS 服务器策略的日志记录 -
gcloud dns policies update [policy name] --networks=[VPC network’s name] --enable-logging
替代 John 的建议,要查看 DNS 查询生成的日志,您可以按照以下步骤操作:
- 在控制台的搜索栏中搜索“日志资源管理器”,点击“日志资源管理器”。
- 在资源下,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 查询生成的日志。
我是 GCP 新手,很好奇如何在 GCP 日志浏览器中生成 DNS 日志。我不熟悉 GCP,看过他们的 DNS 日志记录网站,我知道必须制定政策。但是在配置了DNS策略之后,什么样的DNS请求会产生日志,需要怎样配置DNS记录才能保证有日志呢?
然后我需要哪些外部命令来运行获取 GCP 日志以显示 DNS 查询结果?
我不知道 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 地址(记录 -t
ype A
)
结果:
...
;; ANSWER SECTION:
a.root-servers.net. 421290 IN A 198.41.0.4
...
dig -t AAAA a.root-servers.net.
这请求一个 IPv6 地址(记录 -t
ype 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 日志记录:
- 点击 Cloud DNS 中的“DNS 服务器策略”。
- 单击要从中获取日志的策略的名称,然后单击“编辑策略”。
- 在日志下,select“开启”选项,然后点击保存。 (如果“打开”选项已经 selected,则表示您的日志记录已启用。)
这将允许在 Cloud Logging 中生成来自内部 VPC DNS 查询的日志。
或者,您可以 运行 在云中执行以下命令 shell 以启用特定 DNS 服务器策略的日志记录 -
gcloud dns policies update [policy name] --networks=[VPC network’s name] --enable-logging
替代 John 的建议,要查看 DNS 查询生成的日志,您可以按照以下步骤操作:
- 在控制台的搜索栏中搜索“日志资源管理器”,点击“日志资源管理器”。
- 在资源下,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 查询生成的日志。