我有一个 BIND 9.6 实例,它充当整个建筑物的缓存 NS,并且对内部区域也具有权威性(下面的“示例”):
zone "example" {
type master;
file "example";
update-policy { grant dhcp-update subdomain example. A TXT; };
};
Run Code Online (Sandbox Code Playgroud)
由于恶意交换机,我们失去了与世界其他地方的连接,NS 开始回答 SERVFAIL;令我惊讶的是,服务器也无法响应对示例域的查询。
这种行为的原因是什么?既然有权威数据,NS难道不应该能够回答吗?
编辑:其余的配置是 Debian 附带的标准配置:根服务器的提示以及本地主机和广播的区域。
我在 Bind 的主从配置中偶然发现了一个奇怪的错误。
该区域在主站上运行良好,但在从站上我收到了这些错误:
21-May-2014 19:06:07.573 general: info: zone example.com/IN: refresh: failure trying master 1.2.3.4#53 (source 0.0.0.0#0): unexpected end of input
Run Code Online (Sandbox Code Playgroud)
这是我的绑定文件的样子:
@ IN SOA ns1.example.com. admin.example.com. (
2014052116 ; Serial
28800 ; Refresh
180 ; Retry
604800 ; Expire
21600 ) ; Minimum
86400 IN A 1.2.3.4
86400 IN MX 10 mail.example.com.
86400 IN MX 20 mail2.example.com.
86400 IN NS ns1.example.com.
86400 IN NS ns2.example.com.
86400 IN NS ns3.example.com.
86400 IN NS ns1.example.net.
86400 IN NS ns2.example.net.
86400 IN …Run Code Online (Sandbox Code Playgroud) 在我们的一台从属 DNS 服务器 BIND 中,版本 bind910-9.10.0P2_3 不断被杀死,并显示以下消息/var/log/messages:
Jul 30 01:00:10 cinnabar kernel: pid 602 (named), uid 53, was killed: out of swap space
Run Code Online (Sandbox Code Playgroud)
该服务在 XenServer 6.2 中的 FreeBSD 10.0 VM 上运行,它有 512MB 的系统内存。
此时pstat -m -s返回:
Device 1M-blocks Used Avail Capacity
/dev/ada0p3 512 9 502 2%
Run Code Online (Sandbox Code Playgroud)
我不认为这是交换问题,它似乎是内存泄漏,但我不确定。
编辑:访问信息。
这是两个从 DNS 服务器之一,它们只存储来自权威服务器的区域,并充当内部用户到外部世界的递归服务器。客户端的数量介于 700-1500 个并发用户之间。由于我们有一个 /21 内部空间和一个 /23 公共 IPv4 空间并且没有来自外部世界的查询,因此端口 53 甚至在防火墙上被阻止到这些机器上。
我正在为我们的内部 HPC 集群环境设置一个新的 DNS 基础设施。这涉及提供从我们现有的 DNS 机构和域的迁移路径。
例如,假设我们有一个机构域example.edu. (我们实际上有一个真正的.edu域。)我们的组使用子域rc.example.edu。我已在 为该域设置了一个新的内部权限ns1.rc.example.edu,并且正在从我们的内部解析器转发到该权限。
zone "rc.example.edu" IN {
type forward;
forward only;
forwarders { 10.225.160.10; }; # ip address of ns1.rc.example.edu
};
Run Code Online (Sandbox Code Playgroud)
这按预期工作。我可以查询我的resolver1.rc.example.edu地址并获取该域中名称的地址。
[root@resolver1 ~]# host -t A ns1.rc.colorado.edu
ns1.rc.colorado.edu has address 10.225.160.10
Run Code Online (Sandbox Code Playgroud)
但是我们有一个旧的名称服务器xcatmn.rc.local,我希望在我们的迁移期间也能够解析它。所以我将这个添加到resolver1'snamed.conf以反映之前的转发配置:
zone "rc.local" IN {
type forward;
forward only;
forwarders { 10.16.0.5; }; # ip address of xcatmn.rc.local
};
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从该域查询记录时,我得到SERVFAIL.
[root@resolver1 ~]# host …Run Code Online (Sandbox Code Playgroud) 我有一个本地域 mydomain.local 的工作 DNS 服务器。我正在尝试将 bind9 配置为在默认配置下工作,除了这个区域,我想将查询转发到本地 DNS 服务器。这是我的配置(ubuntu 14.04):
/etc/bind/named.conf.local:
zone "mydomain.local" IN {
type forward;
forward only;
forwarders {
192.168.1.1;
};
};
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时,nslookup server.mydomain.local我在 syslog 中得到关注:
error (broken trust chain) resolving 'server.mydomain.local/A/IN': 192.168.1.1#53
Run Code Online (Sandbox Code Playgroud)
我的理解是这是因为 DNSSEC。我不想在全局范围内禁用 DNSSEC,但我确实想为此区域禁用 DNSSEC。是否可以?
请不要建议使用type slave;区域。我想通过前向区域实现这一目标
我在*我们的一个区域有一个记录,我改变了它。但是当我从公共 DNS 服务器查询该区域的某些随机名称时,我仍然收到旧的 IP 地址。
这对我来说毫无意义。我查询的服务器不知道名称的正确 IP 地址,除非他们知道有通配符记录。否则,他们将不得不询问我们的名称服务器。
当我查询我们自己的名称服务器以获得相同的名称时,它们会返回新的 IP 地址。
发生什么了?
我刚刚切换到bind9.9.5动态 DNS功能,具有 DNSSEC 条目的半自动管理,整个过程进行得很顺利,我的区域文件更新得很好,但现在我无法通过nsupdate工具更新或添加条目。
的/etc/bind/named.conf.local:
// 1
view "localhost_view" {
allow-query-on { 127.0.0.1; };
allow-query { localhost_acl; };
match-clients { localhost_acl; };
zone "somehost.tld" {
type master;
file "/etc/bind/db.somehost.tld_10";
};
zone "168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192.168.10";
};
// formerly named.conf.default-zones
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master; …Run Code Online (Sandbox Code Playgroud) 我将域的 DNS 服务器设置为注册商上的一组权威 DNS 服务器。但是,域的那些 DNS 服务器区域文件具有一组不同的 NS 记录。一些 DNS 服务器正在愉快地将请求传递到区域文件中设置的 NS 服务器;但是,其他一些(例如 Google、Level 3 和 OpenDNS 的公共 DNS 服务器)无法正确解析记录。它们返回正确的 NS 记录,但未返回对子委托 DNS 服务器上的 A 记录的请求。我在下面提供了大量输出;但它的要点是,请求没有被引用到我在 QUICKROUTEDNS.COM 为域设置的 NS 记录,这些 NS 记录是指向亚马逊云 DNS 的。相反,请求停止在 QUICKROUTEDNS.COM。
下面是一个例子:
域名在注册商处的 DNS 记录:
Name Server: NS1.QUICKROUTEDNS.COM
Name Server: NS2.QUICKROUTEDNS.COM
Name Server: NS3.QUICKROUTEDNS.COM
Run Code Online (Sandbox Code Playgroud)
拉取域的 NS 记录(权威 DNS,QUICKROUTEDNS.COM,将这些服务器设置为 NS 记录):
$ host -t NS domain.com
domain.com name server ns-1622.awsdns-10.co.uk.
domain.com name server ns-1387.awsdns-45.org.
domain.com name server ns-774.awsdns-32.net.
domain.com name server ns-48.awsdns-06.com.
Run Code Online (Sandbox Code Playgroud)
来自托管域的 Amazon DNS 服务器的 A …
这是我的反向 dns 文件。
$TTL 1D
@ IN SOA dns.prv.server.co.uk. root.prv.server.co.uk. (
2014090402 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
10800 ) ; minimum
; Name servers's
@ IN NS dns.prv.server.co.uk.
@ IN PTR prv.server.co.uk.
; Name server hostname to IP resolve.
dns IN A 10.100.48.51
2 PTR frontend.prv.server.co.uk.
4 PTR opennebula.prv.server.co.uk.
5 PTR bleakhouse.prv.server.co.uk.
6 PTR thebodyfarm.prv.server.co.uk.
7 PTR luther.prv.server.co.uk.
8 PTR atlantis.prv.server.co.uk.
51 PTR dns.prv.server.co.uk.
Run Code Online (Sandbox Code Playgroud)
我试过检查它:
sudo named-checkzone dns.prv.server.co.uk /etc/named/48.100.10.rev
Run Code Online (Sandbox Code Playgroud)
我收到错误:
zone dns.prv.server.co.uk/IN: NS 'dns.prv.server.co.uk' …Run Code Online (Sandbox Code Playgroud) 我正在从事一个项目,以在具有 255.255.252.0 子网的网络上设置 Bind9 DNS 服务器。
目前,它的设置方式使得无法在网关为 192.168.1.1/22 的 192.168.0.0/22 网络上从 192.168.1.101/22 到 ns1 @ 192.168.1.61/22 运行 nslookup。不要问我为什么从 192.168.1.1 而不是 192.168.0.1 开始寻址。我已经做了。更容易连续输入两个 1,但需要额外的地址空间。我将 dhcp wifi 客户端放在 .2.1-255 范围内,并在 .3.1-255 范围内运行 vms。关键是 Bind 似乎认为所有地址 @ 192.168.1.0-255 都来自一个单独的 /24 区域。
这值得质疑,0.168.192。反向区域在绑定中默认看起来像 /24 子网?168.192怎么样。反区?他们都是/16个区域要绑定吗?
这让我回到我原来的问题。
尽管我的 Bind 配置中有所有错误,知道我应该做什么来具体修复它们会很好,但我如何实现我想要做的?
您如何编写 Bind 以托管 /22、/21 或任何非标准位区域?
这是我的原始反向区域文件。
$ttl 38400
0/22.0.168.192.in-addr.arpa. IN SOA ns.fqdn.com. user.emai.com. (
1489024990
10800
3600
604800
38400 )
61.1.168.192.in-addr.arpa. IN NS ns.fqdn.com.
61.1.168.192.in-addr.arpa. IN PTR ns.fqdn.com.
1.1.168.192.in-addr.arpa. IN PTR fw.fqdn.com.
62.1.168.192.in-addr.arpa. IN PTR …Run Code Online (Sandbox Code Playgroud) bind ×10
dns-zone ×2
dnssec ×2
ddns ×1
dns-hosting ×1
dns-server ×1
dynamic-dns ×1
freebsd ×1
kill-process ×1
linux ×1
nameserver ×1
nsupdate ×1
reverse-dns ×1
swap ×1