怎么让 Windows 的备用 DNS 生效

2022-09-29 16:34:53 +08:00
 hanssx

PVE 虚拟化 2 台电脑 Win+Linux ,把 Linux 作为 VPN Client ,同时在 Linux 开启 ipv4 forward 和 snat ,Win 通过route add添加一条静态路由,目前通过 ping+tcpdump 测试,ip 层已经走通。

路由器 192.168.0.1 ,使用得是硬路由,刷的 openwrt 。

但是 DNS 侧出现了问题,Win 解析不了相关内网域名比如wiki.corp.com,我在 VPN Client Linux 中查看 /etc/resolv.conf 里面多了一些内网 ip ,猜测应该是 vpn 推送过来的 dns ip (后面通过在 win 上 nslookup 指定 dns 的方式解析内网域名发现能够成功,证实确实是内网 dns ip ),于是我尝试把这 2 条 dns ip 添加到 Win 的 ipv4 网卡设置里面。

由于 win 已经有一条首选 dns 指向路由器 192.168.0.1 ,后面我又通过高级选项添加了 2 个备选 10.4.x 10.5.x ,结果它没有使用备选 dns ?

xiaopo@DESKTOP-XXX C:\Users\xiaopow
# nslookup www.baidu.com
服务器:  QWRT.lan
Address:  192.168.0.1

非权威应答:
名称:    www.a.shifen.com
Addresses:  110.242.68.3
          110.242.68.4
Aliases:  www.baidu.com


xiaopo@DESKTOP-XXX C:\Users\xiaopow
# nslookup wiki.corp.com
服务器:  QWRT.lan
Address:  192.168.0.1

*** 没有 wiki.corp.com 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)记录

后面我把首选设置为 10.4.x ,然后 IPv6 的问题又来了。我之前已经参考https://zhuanlan.zhihu.com/p/508790082改了注册表,使之优先使用 IPv4 dns ,nslookup 竟然显示路由器的 IPv6 ,索性我现在直接取消了网卡 IPv6 前面的勾

xiaopo@DESKTOP-XXX C:\Users\xiaopow
# nslookup wiki.corp.com
服务器:  QWRT.lan
Address:  fd22:xxxx:yyyy::1

*** 没有 wiki.corp.com 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)记录

期间我以“没有 wiki.corp.com 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)记录”作为条件去搜索相关资料,说是要关闭 openwrt dns 的重绑定保护,我尝试关闭没有效果,依然出现这样的文字。

目前想访问内网,只能是 IPv4 DNS 设置内网 DNS IP 10.4.x 为首选 DNS ,并关闭 IPv6 协议栈。 但是我想把路由器作为首选 DNS ,内网 DNS IP 10.4.x 为备选,IPv6 能开启最好,实在开启不了就算了。

4321 次点击
所在节点    DNS
13 条回复
PMR
2022-09-29 17:06:46 +08:00
192 。168 。0 。1

uci add_list dhcp.@dnsmasq[0].server="/corp.com/10.4.1.1"
uci commit dhcp
/etc/init.d/dnsmasq restart
gearfox
2022-09-29 17:07:11 +08:00
绕这么一大圈,直接 openwrt 里自建 dns ,指定好内网的 ip 和域名,是不是就好了?
hanssx
2022-09-29 17:13:21 +08:00
Windows 这备用 DNS 是个摆设吗?主 DNS 都 timeout 了,也不知道切换?
```
xiaopo@DESKTOP-XXX C:\Users\xiaopow
# nslookup www.baidu.com
DNS request timed out.
timeout was 2 seconds.
服务器: UnKnown
Address: 10.4.X.Y

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** 请求 UnKnown 超时
```
wwqgtxx
2022-09-29 17:21:25 +08:00
@hanssx #3 对 nslookup 这个命令的确不生效,你用 ping 测试一下会发现主 DNS 完全不可用的情况下是可以正常 fallback 到备用 DNS 解析出 IP 的
hanssx
2022-09-29 17:28:20 +08:00
@PMR 这个也是添加对应关系吧
@gearfox 这种添加对应关系的太费劲了,要维护一个列表
@wwqgtxx 确实,实际上是能解析到的。

如果在路由器添加上游 DNS 服务器,这是不是还要给路由器加 route 到 VPN Client ,https://github.com/pymumu/smartdns/issues/562
om2mo
2022-09-29 18:07:09 +08:00
nslookup 仅作用于住 DNS 服务器,你可以切换到 dig
eason1874
2022-09-29 18:12:35 +08:00
干脆在 Linux 开个 DNS 服务,比如 adguard home 或者 dnscrypt proxy ,然后把 Windows 的 DNS 指向 Linux 好了
hanssx
2022-09-29 21:32:39 +08:00
搜了下,1L 是做 DNS 转发“ 将请求转发到的 DNS 服务器列表”,不知道有没有解决能自动“切换”的目的,这种情况还需要给 openwrt 加路由到 VPN Client ,加完之后发现路由通了,但是设置没成功,后面换到上游去了,目前使用正常。
@eason1874 7L 也是一种思路,但是需要 linux 长期开机。。。
hanssx
2022-09-30 12:12:51 +08:00
更新一下,1L 兄弟的 DNS 转发也是可以的,同样也需要把“重绑定保护”前面的勾去掉。
hahaha777
2022-09-30 13:33:45 +08:00
只有在第一个配置挂了的时候,才会找备用的。如果没有挂,只是单纯的查询不到结果,它是不会走第二个的。
hanssx
2022-09-30 13:58:09 +08:00
@hahaha777 是的,和我理解的不一样。。
Opportunity
2022-10-05 22:49:24 +08:00
这两天也在试图研究 win 的 DNS ,结果看到这个被吓退了。。

https://learn.microsoft.com/zh-cn/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd197552(v=ws.10)

DNS Processes and Interactions
项目
2013/03/04
70 分钟可看完
Opportunity
2022-10-05 22:50:33 +08:00

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

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

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

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

© 2021 V2EX