【发布时间】: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]
【问题讨论】: