我最近“继承”了一个小型的 bind9 DNS 服务器(仅运行 bind9+ssh 的 64MB RAM),其中区域是使用 GUI 应用程序制作的,然后以 root 身份 scp 进入服务器。我并不真正介意那部分,但结果是 GUI 应用程序在每次编辑时都会生成不一致的序列号,导致序列号为 1245486432 而不是“常见”(?)YYYYMMDDSS。
有没有一种“安全”的方法来增加/减少序列号而不会导致 DNS 服务器和缓存之间的任何不一致?
对于我的特定设置,我可以控制 BIND 9 区域文件,例如example.com. 此区域中有多个主机,例如www.example.com和mail.example.com。我希望公共互联网能够像您期望的那样查询这些主机并检索它们的 IP。
是否可以将某些主机标记为“私有”,因为除了特定 IP 范围的用户之外,大多数公共互联网用户无法查询有关这些主机的信息?例如,我可以制作第三台主机,secret.example.com只能由该192.168.0.x范围内的用户查询吗?
我知道我可以在 BIND 中使用单独的区域来做到这一点,但这似乎并没有提供我所需要的。example.com在这种情况下,这里的关键是公共主机和私有主机都需要属于同一个父级。这也可以通过/etc/hosts少数私有机器上的文件来实现,但这样记录将无法集中管理。
这是可能的,还是我忽略了不同的解决方案?
我正在尝试在 Ubuntu Server 机器 (10.04) 上设置 DNS 服务器。我在 named.conf.local 中配置了一个条目来测试它,但是在尝试重新启动 bind9 时出现以下错误:
* Starting domain name service... bind9 [fail]
Run Code Online (Sandbox Code Playgroud)
所以我检查了 syslog 的输出,这就是我得到的。
May 20 18:11:13 empression-server1 named[4700]: starting BIND 9.7.0-P1 -u bind
May 20 18:11:13 empression-server1 named[4700]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
May 20 18:11:13 empression-server1 named[4700]: adjusted limit on open files from 1024 to 1048576
May …Run Code Online (Sandbox Code Playgroud) 是否可以获得 yum 包的编译选项?在这种特殊情况下,我正在尝试使用 CentOS 为标准 BIND 安装获取它们,但是如果 YUM 包有一个通用的方法,那也是很好的了解。
所以要清楚这将是在编译过程中 yum 包中的绑定二进制文件的构建过程中传递的所有选项。
如何处理一个域在多个子网中的地址?
EG: (bob.com)
joe.bob.com A 14400 10.20.0.10
jim.bob.com A 14400 10.20.0.11
mary.bob.com A 14400 10.20.1.10
susan.bob.com A 14400 10.20.1.11
Run Code Online (Sandbox Code Playgroud)
(0.20.10.in-addr.arpa)
0.20.10.in-addr.arpa 14400 NS bob.com
0.20.10.in-addr.arpa 14400 PTR blahblahblah
10 14400 PTR joe
11 14400 PTR jim
Run Code Online (Sandbox Code Playgroud)
(1.20.10.in-addr.arpa)
1.20.10.in-addr.arpa 14400 NS bob.com
1.20.10.in-addr.arpa 14400 PTR blahblahblah
10 14400 PTR mary
11 14400 PTR susan
Run Code Online (Sandbox Code Playgroud)
我有我的“正向”区域文件设置——不过似乎我需要多个“反向”文件。
zone "bob.com" {
type: master;
etcetc
};
zone "0.20.10.in-addr.arpa" {
type: master;
etcetc
};
zone "1.20.10.in-addr.arpa" {
type: master;
etcetc
};
Run Code Online (Sandbox Code Playgroud)
我可以将这两个条目放在同一台机器上的 named.conf 中,还是必须在多个文件/机器之间以某种方式分解它?
我想设置一个只包含数字的 DNS 记录,例如:
www1 A 1.2.3.4
1 CNAME www1
Run Code Online (Sandbox Code Playgroud)
但是,纯数字似乎不起作用。
我知道有些网站在其主机名中使用整数,例如 400.5432.somefax.com,所以我想也许我应该转义这些数字?
编辑
似乎 BIND 确实支持纯数字的标签:
$ dig @localhost 1.example.com
...
1.example.com. 43200 IN CNAME www1.example.com.
www1.example.com. 43200 IN A 1.2.3.4
...
Run Code Online (Sandbox Code Playgroud)
但是,当我使用 Google DNS 服务器(8.8.8.8)时,它失败了。
; <<>> DiG 9.7.3 <<>> 1.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20866
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;1.example.com. IN A
;; AUTHORITY SECTION:
example.com. …Run Code Online (Sandbox Code Playgroud) 我有三个IP。我正在尝试将 Apache 绑定到我的两个 IP 地址,以便将第三个地址免费用于其他用途(Node.js)。目前,Apache 正在侦听所有 IP 地址。httpd.conf:
Listen 80
Run Code Online (Sandbox Code Playgroud)
我只希望 Apache 绑定到我的两个地址。我曾尝试遵循此文档并将上述Listen 80内容替换为以下内容:
Listen XX.XX.XX.XX:80
Listen XX.XX.XX.XX:80
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试重新启动 Apache 时,出现以下错误:
Stopping httpd: [FAILED]
(99)Cannot assign requested address: make_sock: could not bind to address XX.XX.XX.XX:80
no listening sockets available, shutting down
Run Code Online (Sandbox Code Playgroud)
我不明白端口 80 是如何免费用于所有 IP 地址的,但是当我指定单个 IP 时,它会出错。有没有人有任何想法?
谢谢你。
我最近在我的 DNS 服务器上升级了 BIND,现在 DNS 不适用于我的任何网站。nslookup在超时中执行结果并dig在不同的服务器上使用告诉我查询中没有返回权威部分。dig但是,在服务器上本地使用会产生预期的结果。
我尝试了在DNSsy.com上找到的工具,它告诉我我的名称服务器没有 A 记录,根据我的区域文件,这似乎是不正确的。下面是我配置的区域文件之一(实际域名和 IP 地址被替换/屏蔽):
$ORIGIN example.com.
$TTL 1W
@ IN SOA ns.example.com. example.example.com. (
2011060701 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire - 1 week
10800 ) ; Minimum
IN NS ns
IN MX 10 mail
localhost IN A 127.0.0.1
@ IN A x.x.x.x
ns IN A x.x.x.x
mail IN A x.x.x.x
www IN CNAME @
Run Code Online (Sandbox Code Playgroud)
acl "xfer" { …Run Code Online (Sandbox Code Playgroud) 我想让 www-data 用户能够使用此命令重新启动 bind9
服务 bind9 重启
目前,他们可以执行它,它将停止 bind9 但不会再次重新启动它,抱怨权限不允许对“named”文件进行 chmod。
你能指出我需要做的事情的方向吗
更新
好的,所以我按照要求将该行添加到 sudoers。
www-data ALL=NOPASSWD: /etc/init.d/bind9
Run Code Online (Sandbox Code Playgroud)
它仍然存在一些问题:
root@LAMPREY:~# su www-data
$ service bind9 restart
* Stopping domain name service... bind9 rndc: error: none:0: open: /etc/bind/rndc.key: permission denied
rndc: could not load rndc configuration
[ OK ]
* Starting domain name service... bind9 chmod: changing permissions of `/var/run/named': Operation not permitted
$ exit
Run Code Online (Sandbox Code Playgroud)
然后我还尝试运行另一个命令
/etc/init.d/bind9 restart
* Stopping domain name service... bind9 rndc: error: none:0: open: /etc/bind/rndc.key: permission denied …Run Code Online (Sandbox Code Playgroud)