EDNS 指定 IP 段未生效以及 DNS 分流解析的问题

2023-04-12 20:02:43 +08:00
 z5e56

想要在自建 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 地址

目前针对上述情况有两个问题,希望熟悉这块的各位高手不吝赐教!

  1. 为何指定了 subnet 仍然没有返回想要的国内 IP 地址?如果是使用方式不对,正确的使用方式应该是怎样的?
  2. 是否有其他方式可以实现分流解析的目的?目前的计划是使用 Adguard Home 作为前端转发到 mosdns 进行查询,自建 DNS 服务器位于海外,不想额外搭建位于国内的节点。请问是否有好的方法实现开头所提到的目的?
3823 次点击
所在节点    DNS
30 条回复
pagxir
2023-04-12 20:18:24 +08:00
因为 114 并不支持。如果支持的话,自然有效果。例如:
dig qiye.163.com +subnet=110.42.145.0/24 +short @ns3.nease.net
dig qiye.163.com +subnet=8.8.8.0/24 +short @ns3.nease.net
ztmzzz
2023-04-12 20:28:27 +08:00
要换支持 edns 的例如谷歌和 quad9
z5e56
2023-04-12 20:29:05 +08:00
@pagxir 感谢!是我没有了解测试得足够充分,才知道支持 EDNS 的不多
z5e56
2023-04-12 20:37:34 +08:00
@ztmzzz 刚把 Adguard Home 里面不支持 EDNS 的上游 DNS 移除后,目前来看解析正常了。不过就是不知道使用国外的上游 DNS 是否能保证国内域名不会被解析到国外 IP
tomac4t
2023-04-12 22:17:56 +08:00
建议使用这个测试 `dig TXT whoami.ds.akahelp.net +short`
missdeer
2023-04-12 22:23:20 +08:00
所以我是通过域名列表来分流的 https://github.com/missdeer/coredns_custom_build
z5e56
2023-04-12 22:31:44 +08:00
@missdeer 感谢推荐,我会试用一下的
tinkerer
2023-04-12 22:55:26 +08:00
推荐 http over dns 做反向代理,再加上 ip 证书。

自用的一个小工具,刚加了 README: https://github.com/tinkernels/doh-relay
Andim
2023-04-12 23:56:06 +08:00
看下 Adguard Home ,他也是支持国内外分流的,只是用的人不多也没人发攻略
loukky
2023-04-13 00:17:35 +08:00
建议用 alidns ,你用了就知道好不好用了
popzuk
2023-04-13 00:27:53 +08:00
adg 可以分流,建议分流白名单到阿里和腾讯,其它给 Google 。
charli
2023-04-13 00:44:38 +08:00
国内阿里和 dnspod 的 dns 支持 edns ,国外的谷歌支持。
zhatianbang
2023-04-13 03:06:30 +08:00
@Andim 怎么分流?
zhatianbang
2023-04-13 03:06:57 +08:00
怎么弄呢?
z5e56
2023-04-13 06:53:03 +08:00
@Andim
@popzuk
能否麻烦两位详细说明一下配置方法?
Andim
2023-04-13 07:47:14 +08:00
@z5e56
@zhatianbang
AdGuardHome.yaml 中定义一个域名列表列表,这个列表网上很多,比如 gfwlist

upstream_dns_file: "/opt/adguardhome/custom.conf"

然后在这个列表里编辑

223.5.5.5
119.29.29.29
https://223.5.5.5/dns-query
[/*.google.com/]8.8.8.8
[/www.youtube.com/]8.8.8.8
[/twitter.com/]9.9.9.11:9953
[/www.facebook.com/]9.9.9.11:9953
[/www.twitch.tv/]9.9.9.11:9953

就可以默认走阿里腾讯的 DNS ,自定放的走 google Quad9
xinglihua93
2023-04-13 09:29:06 +08:00
被运营商拦截了,能解决吗
z5e56
2023-04-13 09:33:25 +08:00
@Andim 非常感谢!确实是容易被忽略的一个选项
z5e56
2023-04-13 09:37:45 +08:00
@xinglihua93 被拦截是指的什么?通常自建的话使用 DoH, DoT 并限制可访问用户一般都能正常使用的
z5e56
2023-04-13 09:44:19 +08:00
@loukky
@charli
我计划便是分流后国内的使用阿里 DNS 进行解析

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/932038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX