所以,我有一些 dns,我为我的域 yyy.com 设置了许多内部区域。而且我需要将记录添加到提供商服务器(主机 - 带有要下载的配置文件,这不是像 googleDNS 8.8.8.8 这样的 DNS)。因为他的设备请求使用域名 xxx.5060.com 或 xxy.5060.com 进行配置。我认为这很容易(在 BIND8 中是)。
所以我将配置添加到主区域文件:
xxx.5060.com. IN A a.b.c.d
xxy.5060.com. IN A a.b.c.d
但命名检查区返回警告:
ignoring out-of-zone data
当然 DNS 不希望接收 IP 请求域。所以我开始搜索并尝试新的配置,例如:
xxx.5060.com. IN CNAME helper
xxy.5060.com. IN CNAME helper
helper IN A a.b.c.d
警告是一样的,在谷歌中找到的另一个解决方案是编辑named.conf.local
并添加“区域”:
zone "xxx.5060.com" {
type forward;
forwarders {
a.b.c.d;
}
}
zone "xxx.5060.com" {
type forward;
forwarders {
a.b.c.d;
}
}
zone "yyy.com" {
type master;
file "/etc/bind/zones/db.yyy.com";
allow-transfer { 10.e.e.e;
10.e.e.f; };
...
但是DNS没有反应。
哦...我尝试添加到上层配置forward only;
。一样的反应。
有什么建议我做错了什么或设置了什么?
仅转发区域应指向能够回答有关给定区域的请求的名称服务器地址。
因此,如果您希望您的名称服务器解析
xxx.5060.com
,您需要指定一个指向 的名称服务器的转发区域5060.com
,如下所示:这里有一个小说明:我不知道该区域
5060.com
是否应该只是一个示例,还是您尝试解析的实际域。如果它只是一个示例,那么您很不幸,因为5060.com
确实存在,并且上面示例中的 IP 地址已注册为名称服务器。如果您尝试解析的主机确实存在,上面的示例应该可以工作。如果没有,那么这不是实现您想要的“好”方式。您不能将主机名“注入”到您不拥有的域中。您的选择如下:
您可以将您的名称服务器设置为
5060.com
.这样,您可以在该区域中定义您想要的任何主机。这有几个缺点:
定义一个虚拟域
您可以做的另一件事是定义一个以 开头
5060.com
但实际上是您的内部域的虚拟域,例如5060.com.ismine
. 在此域中定义您想要的主机,并将客户端计算机中的 DNS 搜索后缀设置为ismine
. 这样,如果通过“官方”DNS 服务器找不到主机,客户端将尝试保留带有.ismine
后缀的主机名,您的 DNS 服务器可以为他们提供您喜欢的主机名。这种方法也有一些缺点:如果我正确理解您的帖子,则您无法修改
hosts
设备上的本地文件,因此如果上述方法对您不起作用,那么您或多或少不走运。