跳转至

EDNS客户端子网

SmartDNS提供了设置edns-client-subnet的能力,edns-client-subnet原本功能是用于上游DNS服务器之间的一个扩展通信协议。一般情况下本地DNS无需配置。

但SmartDNS提供了测速和通过代理查询的能力,在下面的场景下,则可设置edns-client-subnet优化网络查询结果:

跨运营商的IP优化

运营商的DNS服务器都是将自己网络的网站或CDN服务器IP给客户端,比如qq.com,用联通的DNS,查询的就是联通网段的IP,用电信的DNS,查询的就是电信网段的IP。
运营商一般不会给你跨网IP,除非某个网站就只有在某个运营商的网络。但某些网站,运营商自己网络的ip可能要跨好几个省,时延比较大,不如同省跨运营商去访问。
这时可以通过edns-client-subnet能力,查询到一个异网的IP,然后再让smartdns测速后,返回时延较小的IP给客户端。

配置

假设你的宽带是广东联通。那么你可以配置如下:

server 8.8.8.8 -subnet [广东电信IP]

这样8.8.8.8就会返回网站为广东电信网段的IP地址,smartdns会根据测速结果返回IP给客户端。 -subnet ipv4,和ipv6都配置。

网段信息http://ipcn.chacuo.net/

通过代理查询

当smartdns通过代理查询时,对应的查询结果是根据代理服务器出口优化的查询结果,如果想要通过代理查询的结果和本地运营商优化,则可以通过配置edns-client-subnet来优化。

配置

假设广东电信的用户通过北京的代理查询DNS,那么可以配置如下

server 8.8.8.8 -proxy beijing -subnet [广东电信IP]

这样即使通过北京代理到8.8.8.8查询结果,但因为指定了客户端子网为广东电信IP,那么8.8.8.8就会返回合适广东电信网络的IP地址。