我怀疑,如果我能够让VPN完全不列出任何DNS服务器,NRPT规则就会只适用于example.local,而且一切都会正常工作。但我想不出办法让它不使用RRAS服务器提供的那些。
发布于 2018-08-20 00:49:04
我想出了解决办法。
将接口度量调整为比现有以太网/wifi适配器更大的数量将使它更喜欢本地网络上的DNS服务器,但NRPT规则仍然可以通过VPN将针对我自己域的DNS查询发送到我的服务器。
但是,无法在powershell、VBscript、.NET和VPNv2 CSP中调整VPN连接的接口度量。
如果VPN是连接的,则可以用Set-NetIPInterface cmdlet在powershell中更改度量,但是当VPN没有连接时,它根本就不会出现在那里。那里的变化不会在重新启动过程中持续存在。
更改它的唯一方法似乎是编辑C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk文件,并将IpInterfaceMetric和Ipv6InterfaceMetric行更改为更高的数字。我把它们都改成了100。
在此之后,结合NRPT规则,DNS按需要工作--对example.local的所有查询都被发送到我的and服务器。其他任何东西(包括example.com)都会被发送到本地网络的DNS服务器。
发布于 2018-08-15 14:06:52
您可以尝试的一个潜在的解决方法是站起来服务器2016 DNS服务器,并实现DNS策略进行拆分-dns与地理定位意识。这将允许您从设备VPN子网告诉DNS查询使用外部IP而不是内部IP。
powershell命令如下所示。
Add-DnsServerClientSubnet -Name "DeviceVPNSubnet" -IPv4Subnet "192.168.1.0/24" Add-DnsServerZoneScope -ZoneName "example.com" -Name "DeviceVPNZoneScope" Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "192.168.0.5"Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "203.0.113.5" -ZoneScope "DeviceVPNZoneScope" Add-DnsServerQueryResolutionPolicy -Name "Device VPN Policy" -Action ALLOW -ClientSubnet "eq,DeviceVPNSubnet" -ZoneScope "DeviceVPNZoneScope,1" -ZoneName "example.com" 发布于 2018-08-13 05:10:14
只是一个想法,但可能设置一个连接脚本.bat,在连接到主机文件时添加邮件服务器的正确公共IP地址,然后在断开连接时从客户端的主机文件中删除它?从理论上讲,我想您可以始终将其保存在主机文件中,然后即使在办公室,他们也可以从它的公共ip访问服务器。无论如何,这将覆盖来自RRAS服务器的任何DNS。
主机文件位于C:\Windows\System32 32\Driver\etc\host。
https://serverfault.com/questions/925901
复制相似问题