DNS 返回不存在的 URL 的 IP 地址

DNS 返回不存在的 URL 的 IP 地址

在“Ubuntu 20.04.4 LTS”上以及一个带有dnspython1.16.0 返回不存在的 URL 的 IP 地址。在 Windows 10 WSL 下使用“Ubuntu 20.04.4 LTS”时,不会发生这些错误。这些错误发生在运行多个 apache2.4 vhost 的专用服务器上。我得到例如:

ping akjdsla.com -c 1
  PING akjdsla.com.com (45.11.57.36) 56(84) bytes of data.
  64 bytes from comcomproxy1.com.com (45.11.57.36): icmp_seq=1 ttl=57 time=37.5 ms
  --- akjdsla.com.com ping statistics ---
  1 packets transmitted, 1 received, 0% packet loss, time 0ms
  rtt min/avg/max/mdev = 37.460/37.460/37.460/0.000 ms

nslookup akjdsla.com
  Server:         127.0.0.53
  Address:        127.0.0.53#53
  ** server can't find akjdsla.com: NXDOMAIN

nslookup akjdsla.com dns.google
   Server:         dns.google
   Address:        2001:4860:4860::8888#53
   ** server can't find akjdsla.com: NXDOMAIN

dig akjdsla.com
  ; <<>> DiG 9.16.1-Ubuntu <<>> akjdsla.com
  ;; global options: +cmd
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 33872
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
  
  ;; OPT PSEUDOSECTION:
  ; EDNS: version: 0, flags:; udp: 65494
  ;; QUESTION SECTION:
  ;akjdsla.com.                   IN      A
  
  ;; Query time: 0 msec
  ;; SERVER: 127.0.0.53#53(127.0.0.53)
  ;; WHEN: Thu Mar 17 16:17:49 CET 2022
  ;; MSG SIZE  rcvd: 40

所以nslookup按预期工作,同时dnspython失败。行为取决于查询的顶级域:如果为不存在的 URL 返回 IP,则对于某些 TLD,它将始终是相同的 IP。我得到:

com   45.11.57.36      comcomproxy1.com.com
de    54.153.56.183    ec2-54-153-56-183.us-west-1.compute.amazonaws.com
eu    54.153.56.183    ec2-54-153-56-183.us-west-1.compute.amazonaws.com
org   34.206.39.153    ec2-34-206-39-153.compute-1.amazonaws.com

另一方面:对于顶级域名, edu, fr, ca, biz,dnspython 识别当 URL 为不存在的. 如果 URL 中 TLD 不存在,dnspython 会崩溃被查询。

一位读者建议,应该考虑域名服务器可能会发布不存在的域名的“虚假 IP”来宣传自己的服务。在这种情况下,IP 应该随域名服务器一起更改,但事实并非如此。由于恶意软件风险,“comcomproxy1.com.com”背后的网站被“uBlock Origin”阻止。ec2-34-206-39-153.compute-1.amazonaws.com 被重定向到https://aws.amazon.com/ec2-54-153-56-183.us-west-1.compute.amazonaws.com 不会指向 HTTPS 站点。此外,这也不能解释不同 DNS 查询程序的不同行为。因此,广告假设在我看来似乎不太合理。

我们托管 .com、.de、.eu 和 .org 域名。因此我怀疑托管的 TLD 可能存在某种联系。然而, 我们还托管一个.net领域。

重启没有用。sudo systemd-resolve --flush-caches没有用。我注意到DNS缓存大小始终保持在1并且没有达到0。

有什么想法我可以在哪里寻找此错误的原因?

由于nslookup/挖掘一方面ping/dnspython另一侧的情况不同,可以假设在这些情况下使用了(至少略有)不同的 OS API 访问。任何有关这些差异的提示也会有所帮助。

相关内容