我有一个域名,由 Cloudflare 托管。其中一个 A 记录(test.lan.my_domain.com
)指向部署在内网里的一个服务,IP 地址 10.0.0.235 。我在家里的某台机器上部署了一个本地 DNS 解析服务器用于去广告,DNS IP 为 10.0.0.230 。我在路由器上设置 DHCP 分配的 DNS 为 10.0.0.230, 8.8.8.8, 8.8.4.4 。
我本地的最终 DNS 如下:
resolver #1
search domain[0] : hsd1.xx.comcast.net
nameserver[0] : fe80::6a1:xxxx:xxxx:xxxx%11d <<<=== IPv6 分配来的
nameserver[1] : 10.0.0.230
nameserver[2] : 8.8.8.8
nameserver[3] : 8.8.4.4
以上为背景。最近我发现在启用 IPv6 之后我无法在 MacOS 里ping
这个域名了,具体错误为unknown host
,并且网页也打不开。但是通过nslookup test.lan.my_domain.com
是可以得到正确的解析。在ping
的时候我的 DNS 服务器上没有这条请求记录,但是可以看到经由nslookup
发出的解析请求。究其原因应该是nslookup
绕过系统直接向 DNS 发请求查询吧。
所以问题很奇怪,为什么系统拒绝向本地 DNS 查询一个域名呢?
1
usufu 2021-11-13 13:13:38 +08:00
走 ipv6 的 dns 服务器了,前几天搞 ad home 也弄了半天。
ipv6 的 dns 走的默认的拨号 dns ,所以不经过 ad guard home 。 我的 asus 路由器要把拨号那里的 dns 也手动指定。然后 ipv6 的设置里面吧 dns 选为手动指定,并且留空。 |
2
Kobayashi 2021-11-13 13:15:16 +08:00 via Android
1. nslookup 时要带上 DNS 地址: nslookup test.lan.my_domain.com 10.0.0.230
2. 路由器下发自己的 DNS 时为什么还要下发 8.8.8.8 ?你既然选择使用自己的 DNS 就不要下发公共 DNS 。 |
3
dangyuluo OP |
4
Remember 2021-11-13 13:28:06 +08:00
cloudflare 的 ns 很多年前就会被间歇性阻断了。
|
5
littlewing 2021-11-13 13:30:38 +08:00
RFC1918
|
9
cwbsw 2021-11-13 15:17:29 +08:00
没看懂楼主的描述。不过我自己踩过坑,内网地址的域名查询被 dns rebind protection 给过滤掉了。
|
10
xiaooloong 2021-11-13 16:58:40 +08:00
[我在家里的某台机器上部署了一个本地 DNS 解析服务器用于去广告,DNS IP 为 10.0.0.230 ]
是不是用 dnsmasq 搭建的?怀疑是开启了防止 dns rebind 攻击的功能。就是说域名解析出来的 ip 是内网 ip 的话会直接返回无解析。dnsmasq 的话设置是 rebind-domain-ok=/my_domain.com/[your_domain.com[/otherdomain/]] 给特定的域名设置允许解析结果为内网 IP 。 |
11
dangyuluo OP @xiaooloong
@cwbsw 好像还真有这个可能。我测试了一下如下三个记录,只有指向外网的 A 记录可以被解析。 ``` test3.mydomain.com 192.168.1.1 // Failed test4.mydomain.com 12.34.56.78 // Succeeded test.mydomain.com 10.0.0.1 // Failed ``` 接下来是研究如何在 Ad Guard Home 上关掉 rebind protection 谢谢思路 |