google public dns 和对 edns 的支持

google public dns and support for edns

当我使用 dig(使用 eDNS 补丁编译)查询权威名称服务器时:

dig @ns1.google.com www.youtube.com +client=59.155.255.200

;; ANSWER SECTION:
www.youtube.com.    86400   IN  CNAME   youtube-ui.l.google.com.
youtube-ui.l.google.com. 900    IN  CNAME   youtube-ui-china.l.google.com.

我得到youtube在中国的IP地址

但是如果我使用与上述相同的客户端子网查询 google public 的 youtube.com dns: 挖@8.8.8.8 www.youtube.com +client=59.155.255.200/32

我得到了一个不同的 IP 列表(基本上这个列表与我从连接到欧洲 ISP 的本地机器上得到的相同)

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; CLIENT-SUBNET: 59.155.255.200/32/0
;; QUESTION SECTION:
;www.youtube.com.       IN  A

;; ANSWER SECTION:
www.youtube.com.    21599   IN  CNAME   youtube-ui.l.google.com.
youtube-ui.l.google.com. 299    IN  A   193.51.224.148
youtube-ui.l.google.com. 299    IN  A   193.51.224.154

我的问题是: 在这种情况下,eDNS 支持如何工作? google public DNS 不应该将我的查询转发到我指定的客户端子网吗?

谢谢

这取决于 "what" 递归名称服务器(在本例中为 8.8.8.8)转发给授权名称服务器的 IP 地址。

通常,递归器会选择从客户端作为 EDNS 扩展发送到权威名称服务器的 UDP 数据包 中提交 源 IP 地址。