想要在自建 DNS 实现防止污染、屏蔽广告、隐私保护和分流解析的目的。但是当前使用的位于海外的 Adguard Home 总是把一些国内服务解析到国外 IP 影响正常使用,即使启用了 EDNS 仍然如此
了解到 EDNS Client Subnet (ECS) 可以指定 subnet 进行解析,于是利用海外的服务器进行了如下测试
user1@localhost:~$ dig www.taobao.com @114.114.114.114 +subnet=36.111.64.0/21 ; <<>> DiG 9.16.33-Debian <<>> www.taobao.com @114.114.114.114 +subnet=36.111.64.0/21 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37668 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;www.taobao.com. IN A ;; ANSWER SECTION: www.taobao.com. 284 IN CNAME www.taobao.com.danuoyi.tbcache.com. www.taobao.com.danuoyi.tbcache.com. 31 IN A 8.38.121.234 www.taobao.com.danuoyi.tbcache.com. 31 IN A 8.38.121.233 ;; Query time: 20 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Wed Apr 12 19:37:52 CST 2023 ;; MSG SIZE rcvd: 123 切换了多个 DNS 服务器查询返回的都是这两个位于美国的 IP 地址
目前针对上述情况有两个问题,希望熟悉这块的各位高手不吝赐教!
- 为何指定了 subnet 仍然没有返回想要的国内 IP 地址?如果是使用方式不对,正确的使用方式应该是怎样的?
- 是否有其他方式可以实现分流解析的目的?目前的计划是使用 Adguard Home 作为前端转发到 mosdns 进行查询,自建 DNS 服务器位于海外,不想额外搭建位于国内的节点。请问是否有好的方法实现开头所提到的目的?

