对特定域使用特定的 DNS 服务器

对特定域使用特定的 DNS 服务器

我在工作中使用 unblock-us.com dns 服务器访问 pandora.com。我们公司使用大量 *.mycompany.internal 域名来处理公司事务。当然,unblock-us 无法解析它们,我真的厌倦了将它们全部添加到 hosts 文件中。有没有办法将公司 dns 服务器用于 mycompany.internal 域名,将其他 dns 服务器用于其余域名?这是我的个人电脑,无法更改公司 dns 设置上的任何内容。

解决方案:

我最终使用了 Deadwood,这是 MaraDNS 的递归 DNS 服务器,感谢 Jens Ehrich。这是我的 Deadwood 配置文件 (dwood3rc.txt):

# Please note that each upstream_servers entry takes up space in Deadwood's
# cache and that maximum_cache_elements will need to be increased to store
# a large number of these entries.
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Google DNS as example

# To have Deadwood perform DNS queries for a small LAN and have the DNS server
#  on 192.168.1.111 resolve queries ending in "internal":
root_servers = {}
root_servers["internal."]="<my.company.dns.ip1>, <my.company.dns.ip2>"

# The IP this program has 
bind_address="127.0.0.1"

# The IPs allowed to connect and use the cache
recursive_acl = "127.0.0.1/16"

# The file containing a hard-to-guess secret
random_seed_file = "secret.txt" # created with mkSecretTxt.exe from MaraDNS

# By default, for security reasons, Deadwood does not allow IPs in the
# 192.168.x.x, 172.[16-31].x.x, 10.x.x.x, 127.x.x.x, 169.254.x.x,
# 224.x.x.x, or 0.0.x.x range.  If using Deadwood to resolve names
# on an internal network, uncomment the following line:
filter_rfc1918 = 0

然后就install.bat在 Deadwood 文件夹中使用。

答案1

你可以这样做DNS 区域委派。

首先,设置另一个 DNS 服务器(在您自己的机器上也可以),使用 unblock-us.com DNS 作为转发器。您可以使用 Simple DNS、MaraDNS 或运行 Linux 或 Windows Server 的本地虚拟机。

其次,为您公司的网络添加一个指向您公司 DNS 服务器的委托区域。

第三,配置您的网卡以使用新的 DNS 服务器作为主名称服务器。

答案2

您尝试过这个 PowerShell 命令吗?看起来简单多了。

Add-DnsClientNrptRule -Namespace "pqr.com" -NameServers "10.0.0.1"

参考:https://docs.microsoft.com/en-us/powershell/module/dnsclient/add-dnsclientnrptrule?view=win10-ps

答案3

回应@aoetalks 的回答,如果我把一个放在.命名空间中,它就会像魔法一样起作用。

Add-DnsClientNrptRule -Namespace ".example.local" -NameServers "10.0.0.1"

相关内容