进一步阅读

进一步阅读

为什么会dig -4返回 IPv6 地址?

% dig -v
DiG 9.16.5
%
% dig -4 @8.8.8.8 TXT o-o.myaddr.l.google.com | grep TXT
; <<>> DiG 9.16.5 <<>> -4 @8.8.8.8 TXT o-o.myaddr.l.google.com
;o-o.myaddr.l.google.com.       IN      TXT
o-o.myaddr.l.google.com. 54     IN      TXT     "2a0a:b640:1:5a::a07d"

不用担心,我正在使用 VPN。

这是 Google 域名服务器的错误吗? (如果是这样,我该如何举报?)

有趣的是,如果添加以下内容,输出会有所不同-c IN

% diff <(dig -4 -c IN @8.8.8.8 TXT o-o.myaddr.l.google.com) <(dig -4 @8.8.8.8 TXT o-o.myaddr.l.google.com)
2c2
< ; <<>> DiG 9.16.5 <<>> -4 -c IN @8.8.8.8 TXT o-o.myaddr.l.google.com
---
> ; <<>> DiG 9.16.5 <<>> -4 @8.8.8.8 TXT o-o.myaddr.l.google.com
6,7c6,7
< ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35377
< ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
---
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27019
> ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3
11c11
< ; COOKIE: ffdced2ffd1d8fb9ca1b1c3c5f53070accd8e6ece4fb266f (good)
---
> ; COOKIE: 8042de852de231e1242187435f53070bdddc4b80f19c7711 (good)
13c13
< ;TXT.             IN  A
---
> ;o-o.myaddr.l.google.com. IN  TXT
15,25c15,16
< ;; AUTHORITY SECTION:
< .         7956    IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2020090401 1800 900 604800 86400
< 
< ;; Query time: 66 msec
< ;; SERVER: 8.8.8.8#53(8.8.8.8)
< ;; WHEN: Sat Sep 05 10:33:31 +07 2020
< ;; MSG SIZE  rcvd: 135
< 
< ;; Got answer:
< ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16524
< ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
---
> ;; ANSWER SECTION:
> o-o.myaddr.l.google.com. 28   IN  TXT "2a0a:b640:1:5a::a07d"
27,31c18,26
< ;; OPT PSEUDOSECTION:
< ; EDNS: version: 0, flags:; udp: 4096
< ; COOKIE: ffdced2ffd1d8fb9e51dd6995f53070b3d32c82e71242836 (good)
< ;; QUESTION SECTION:
< ;o-o.myaddr.l.google.com. IN  A
---
> ;; AUTHORITY SECTION:
> google.com.       121655  IN  NS  ns1.google.com.
> google.com.       121655  IN  NS  ns4.google.com.
> google.com.       121655  IN  NS  ns3.google.com.
> google.com.       121655  IN  NS  ns2.google.com.
> 
> ;; ADDITIONAL SECTION:
> ns1.google.com.       340694  IN  A   216.239.32.10
> ns1.google.com.       340694  IN  AAAA    2001:4860:4802:32::a
33c28
< ;; Query time: 76 msec
---
> ;; Query time: 73 msec
36c31
< ;; MSG SIZE  rcvd: 80
---
> ;; MSG SIZE  rcvd: 229

答案1

这就是你做事没做好。 ☺

报告的-c IN效果是因为你没有做对。这两个查询都很清楚IN,因为无论如何这是默认的类。但请注意,失败的是查找域名TXT.,而不是域名o-o.myaddr.l.google.com.。您感到困惑dig并让它认为资源记录类型参数是域名。

请注意,对于不阅读手册的人来说,作为参数处理是一个拐杖,其中明确指出顺序是。 ☺(Knot DNS在其手册中的顺序略有不同,但也试图应对那些以错误方式提出论点的人。)type domain-namedigdomain-name type classkdigdomain-name class type

另请注意,该手册明确建议使用-t-q以避免与(顶级)域名产生任何歧义。

-4实际上与此无关。这只是让它与 DNS 服务器对话 IPv4。但是你的DNS服务器搞错了。

这是@8.8.8.8重要的因素。

该查询应该直接针对 Google 执行内容DNS 服务器。 (在撰写本文时)IPv4 世界中的这些是:

%dnsqr ns l.google.com。 | awk '/answer:/ {print $5}' | xargs dnsip
216.239.34.10
216.239.32.10
216.239.36.10
216.239.38.10
%

TXT当查询该域名时,这些内容 DNS 服务器会返回原始 IP 地址和任何 EDNS0 信息作为资源记录集。

您正在针对 Google 执行此操作公共解析代理而是使用 DNS 服务器。您正在获取 EDNS0 信息和原始 IP 地址所使用的特定代理服务器的后端(8.8.8.8 是任播)而不是您机器自己的 IP 地址。 Google 的公共代理 DNS 服务器是联系 Google 的内容 DNS 服务器的,因此它是 IP 地址和 EDNS0 信息资源记录集中的内容 DNS 服务器返回的事务,返回到 Google 代理,然后从代理返回给您。

事实上,TTL 是 54 秒,而不是 Google 的 60 秒内容DNS 服务器的使用是这里的一个重要线索,但事实上它不是你的IPv6 地址。

dig大多数 doco 中使用和给出的缩写形式host,在没有明确将事务定向到 Google 的内容 DNS 服务器的情况下,通常会起作用的原因是,它通过当地的解析代理 DNS 服务器在你自己的机器上,其后端查询当然源自你的机器的IP地址。拥有本地解析代理 DNS 服务器过去和现在都是 Unix 和 Linux 世界的常态。这不是(非服务器)Microsoft Windows。

但是:使用别人的解析代理 DNS 服务器,通过从您自己的代理 DNS 服务器转发,在 中配置其他人的服务器/etc/resolv.conf,或者(如此处)通过显式将查询定向到 8.8.8.8/1.1.1.1/9.9.9.9 等位置,您将得到有关其他人的代理 DNS 服务器后端的信息。

%DNSCACHEIP=1.1.1.1 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
105字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 36 TXT \0342400:cb00:63:1024::a29e:2192
%
%DNSCACHEIP=1.0.0.1 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
105字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 12 TXT \0342400:cb00:63:1024::a29e:2192
%
%DNSCACHEIP=9.9.9.9 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
71字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 60 TXT \0212620:171:fa:f0::7
%

CloudFlare 运行的解析代理 DNS 服务器的后端拥有 CloudFlare 分配的 IPv6 地址,这一点并不令人震惊。 ☺

其中一些甚至拥有多个后端 IP 地址,要么是因为它们确实拥有该地址,要么(更有可能)随着任播的移动而存在。 (我在其中一些之间停顿了一下。)

%DNSCACHEIP=8.8.8.8 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
114字节,1+2+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 59 TXT \01574.125.181.14
答案:oo.myaddr.l.google.com 59 TXT“edns0-client-subnet\040咳咳!
%DNSCACHEIP=8.8.8.8 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
124字节,1+2+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 59 TXT \0272a00:1450:400c:c01::106
答案:oo.myaddr.l.google.com 59 TXT“edns0-client-subnet\040咳咳!
%DNSCACHEIP=8.8.8.8 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
124字节,1+2+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 59 TXT \0272a00:1450:400c:c01::107
答案:oo.myaddr.l.google.com 59 TXT“edns0-client-subnet\040咳咳!
%
%DNSCACHEIP=9.9.9.10 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
71字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 60 TXT \0212620:171:fa:f0::3
%DNSCACHEIP=9.9.9.10 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
66字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 31 TXT \01474.63.26.248
%DNSCACHEIP=9.9.9.10 dnsqr txt oo.myaddr.l.google.com
16 oo.myaddr.l.google.com:
66字节,1+1+0+0条记录,响应,无错误
查询:16 oo.myaddr.l.google.com
答案:oo.myaddr.l.google.com 60 TXT \01474.63.26.250
%

dnsqrTXT在这里以一种稍微幼稚的方式转储资源记录。这些八进制转义符只是长度字节。我也许应该解决这个问题。 ☺

进一步阅读

相关内容