【问题标题】:How To Generate GCP DNS Logs如何生成 GCP DNS 日志
【发布时间】:2021-06-09 16:24:07
【问题描述】:

我是 GCP 新手,很好奇如何在 GCP 日志资源管理器中生成 DNS 日志。我不熟悉 GCP,并且看过他们的 DNS 日志记录网站,并且了解必须创建策略。但是配置完 DNS 策略后,什么类型的 DNS 请求会创建日志,我需要如何配置 DNS 记录以确保有日志?

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

GCP 链接:https://cloud.google.com/dns/docs/monitoring

【问题讨论】:

  • 您在问题中链接的文档回答了您的问题。重写您的问题,具体说明您需要解决的问题。
  • @JohnHanley,谢谢。我想你不会有更多关于如何配置 GCP DNS 日志的信息?寻找一个好的指南来帮助在 GCP 中生成 DNS 日志。
  • 启动虚拟机并对 VPC 的 DNS 解析器进行 DNS 查询。列出 VPC 中 DNS 解析器的 IP 地址:gcloud compute addresses list --project PROJECT_ID --filter="purpose = 'DNS_RESOLVER'" --format="csv(address, region, subnetwork)"
  • 注意:您说的是what external commands ...。 DNS 日志记录用于内部 VPC DNS 查询,而不用于来自公共 Internet 的查询。

标签: google-cloud-platform google-cloud-logging google-cloud-dns


【解决方案1】:

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

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

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

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

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    我不了解 GCP 日志,但您可以诊断 DNS 请求在何处/如何处理/定向:

    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
    

    这将返回负责以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 名称解析的好答案,但根本不适用于所提出的问题。
    • 道歉我误读了 Q。以为它是在询​​问如何生成日志来解决 DNS 问题。我的错。会留下它,以防它帮助别人。主要取自我对这个主题的笔记:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多