想要在自建 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 服务器位于海外,不想额外搭建位于国内的节点。请问是否有好的方法实现开头所提到的目的?
