【问题标题】:DNS SOA response: googleDNS returns endless loopDNS SOA 响应:googleDNS 返回无限循环
【发布时间】:2019-07-17 06:36:01
【问题描述】:

我正在编写自己的 dns 服务器(它靠近 pi hole 项目,但具有一些不同/附加功能),现在我面临一个(对我而言)奇怪的问题:

基本上我想对外部 dns 服务器的 IP 进行 PTR 请求(尝试使用 208.67.222.222 和 8.8.8.8)

问题是,通过获得 SOA 响应,我最终陷入了无限循环,其中主名称服务器与请求的域相同(我猜屏幕截图更精确)

正如我已经提到的,我的基本想法是获取给定 IP 地址的所有/某些域。因此,我向(启动)DNS 服务器发送了一个 PTR 请求,其中查询是“[IP 地址(反向)].in-addr.arpa”。正如预期的那样,答案是 SOA 答案,它应该给我关于哪个名称服务器可能有知识来回答这个问题的信息。好吧,这个名称服务器被解析为一个 CNAME 并且要查询他,我需要他的 IP 地址。因此,我查询(启动)DNS 以解析新 DNS 服务器的域。这正是我的问题:我最终陷入了无限循环,导致(启动)DNS 仅以 SOA 响应进行响应,其中目标名称服务器与请求的域相同......我错过了什么吗? (嗯,我猜是这样,但是什么?)

我期待它应该是这样的:

[dns1] -> SOA response (a.doma.in) -> [me]
[me] -> CNAME (a.doma.in) -> [dns1]
[dns1] -> CNAME response (a.doma.in: 123.123.123.123) -> [me]
[me] -> PTR -> [123.123.123.123]
[123.123.123.123] -> PTR answer -> [me]

但现实是这样的:

[dns1] -> SOA response (a.doma.in) -> [me]
[me] -> CNAME (a.doma.in) -> [dns1]
[dns1] -> SOA response (a.doma.in) -> [me]

【问题讨论】:

    标签: dns soa


    【解决方案1】:

    您可能遇到的问题是 SOA 中的 dns 地址是 A 记录,而不是 CNAME。您正在通过查找 CNAME 来创建循环

    您要求针对您尝试解析其名称服务器的域解析名称服务器。 (正如你已经看到的)

    SOA 名称服务器总是是一条 A 记录。

    希望使用 dig 解析 www.example.com,流程如下 -

    
       dig soa example.com
       dig A sns.dns.icann.org.
       dig www.example.com @192.0.32.162
    

    编辑添加

    在 dig 中查询时 DNS SOA 记录如下所示

    example.com. 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2019041059 7200 3600 1209600 3600

    这些被分解为this

    Name
    retry interval
    zone class
    name server
    email address of administrator (with @ replaced with .)
    serial number
    refresh
    retry
    expire
    TTL 
    

    您应该直接在名称服务器记录中查询名称服务器列表,然后选择其中之一。

    【讨论】:

    • 感谢您的回答,但我不确定我是否理解正确,SOA 响应不包含任何 IP 地址(这不是 A 类记录吗?),因此我必须查找SOA 响应“主名称服务器”的域,但谁能解析主名称服务器的 ip?顺便说一句,我在一些网页上看到 soa 响应的主名称服务器的 IP 地址在 dns 响应的“additionalRR”部分中解析,但我自己从未见过,有没有办法请求这个?
    • 抱歉,没有互联网的假期...我仍然不确定您的意思,是的,SOA 响应看起来像这样,这就是问题所在,我没有任何 IP地址;只有一个名称服务器。我需要解析名称服务器以查询他以获得我所要求的答案,如果我在您的示例中查询“名称服务器”部分,我会再次获得带有“名称服务器”的 SOA 答案......显然我'我错过了一些东西,但我仍然看不到什么......
    • @Svhorsch 在上面的示例中,sns.dns.icann.org。是主域名服务器的地址。这被列为 FQDN,因此您需要解析该 A 记录,然后才能解析 NS 记录列表。
    猜你喜欢
    • 2016-02-21
    • 2021-04-16
    • 2012-03-20
    • 2013-07-31
    • 1970-01-01
    • 2016-12-23
    • 2011-05-28
    • 2018-07-03
    • 2018-03-24
    相关资源
    最近更新 更多