为什么 NRPT 规则不影响我的 Windows 10 机器上的 DNS 查询?

mar*_*rkb 7 windows dns openvpn

我的家庭 LAN(子网 10.88.0.0/24)上有一些可用的网络服务,该 LAN 上有内部 DNS(由路由器提供,10.88.0.1),域后缀为my.lan. 在本地网络上我可以通过IP或域名访问这些服务。

我通过 OpenVPN 服务器远程连接到该 LAN。我可以通过 IP over OpenVPN 访问所有服务。OpenVPN 设置为推送 DNS 解析区域,my.lan该区域应使用路由器作为该域的 DNS 提供商(OpenVPN 服务器选项:push "dhcp-option DNS 10.88.0.1"; push "dhcp-option DOMAIN my.lan")。

这会导致系统上安装 NRTP 规则,如下所示:

PS C:\WINDOWS\system32> Get-DnsClientNrptPolicy


Namespace                        : .my.lan
QueryPolicy                      :
SecureNameQueryFallback          :
DirectAccessIPsecCARestriction   :
DirectAccessProxyName            :
DirectAccessDnsServers           :
DirectAccessEnabled              :
DirectAccessProxyType            : NoProxy
DirectAccessQueryIPsecEncryption :
DirectAccessQueryIPsecRequired   : False
NameServers                      : 10.88.0.1
DnsSecIPsecCARestriction         :
DnsSecQueryIPsecEncryption       :
DnsSecQueryIPsecRequired         : False
DnsSecValidationRequired         : False
NameEncoding                     : Utf8WithoutMapping
Run Code Online (Sandbox Code Playgroud)

但是,此规则似乎并未用于实际的 DNS 客户端查询。像这样的域www.my.lan仍然可以在我的常规网络接口(我的以太网卡或 wifi)给出的 DNS 上得到解析(或者更确切地说无法解析),具体取决于我当时的连接方式(nslookup + WireShark 确认了这一点)。我能够通过提供 DNS 服务器来使用 nslookup 解析 LAN 上的名称:nslookup www.my.lan 10.88.0.1通过 VPN 连接正确解析。我还尝试通过设置来启用QueryPolicyNRPT QueryBoth

PS C:\WINDOWS\system32> Set-DnsClientNrptGlobal -QueryPolicy "QueryBoth" -PassThru

EnableDAForAllNetworks QueryPolicy SecureNameQueryFallback
---------------------- ----------- -----------------------
Disable                QueryBoth   Disable
Run Code Online (Sandbox Code Playgroud)

这似乎没有效果(禁用或 QueryBoth)。该对象上的其他参数似乎适用于 DirectAccess 客户端,以及应该“安全”的 DNS 查询的后备选项,它们是否也需要处于活动状态?

导致名称解析策略表影响 DNS 查询的正确方法是什么?