Mandriva 目录服务器 5.0 的 DNS 设置

Mandriva 目录服务器 5.0 的 DNS 设置

我刚刚接手了一个内部网,Mandriva 目录服务器5.0 作为内部 DNS 和 DHCP 服务器,基于 LDAP 服务器进行配置存储。

这个想法是,所有内联网主机都会获得一个 DNS 条目 name-ipdaddres,其中 IP 地址位于 NATted 私有空间中10.0.*.*

其中一些主机也在指向我们路由器公共 IP 地址的真实公共 DNS(互联网:-))上声明;它负责一些端口转发和 http 重定向,以允许一些内部网服务从办公室外部使用,而无需类似 VPN 或 SSH 隧道访问。

因此,MDS DNS 服务器仅覆盖私有 IP 地址,其余地址则依赖公共 DNS 服务器。

现在我有几个与此设置密切相关的问题;我不习惯 mandriva 配置文件,并且对这种“双”dns 设置的正确做法有点困惑

  1. 我可以在哪里修改 MDS 的“公共”名称服务器?

    是在/etc/sysconfig/network-scripts/ifcfg-eth0DNS1DNS2?从那时起它们就发生了变化。

  2. 让主机先检查 MDS DNS,然后使用公共 DNS,最佳做法是什么?主机是否应该仅使用 MDS DNS,而 MDS 转到公共 DNS 来获取缺失的条目,还是……?

编辑

虽然取得了进展,但主要问题似乎仍然相同。

请注意,服务器目前正在运行,大多数域名都已解析,但有些域名尚未解析,很可能是使用了旧的、过时的公共 DNS。

根据@TiZon 的建议,我进行了编辑/etc/resolvconf/resolv.conf.d/tail以添加公共名称服务器。

现在发生了以下情况。当主名称服务器发生故障时,它不会回退到公共名称服务器:

dig rueducommerce.com @10.0.0.10

; <<>> DiG 9.5.0-P2 <<>> rueducommerce.com @10.0.0.10
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55845
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;rueducommerce.com.             IN      A

;; Query time: 0 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Thu May 19 15:50:55 2011
;; MSG SIZE  rcvd: 35

如果不指定服务器,Dig(或 nslookup,行为相同)将获取失败代码并尝试 /etc/resolv.conf 中的下一个服务器并正确返回结果。

dig rueducommerce.com

;; Got SERVFAIL reply from 127.0.0.1, trying next server

; <<>> DiG 9.5.0-P2 <<>> rueducommerce.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;rueducommerce.com.             IN      A

;; ANSWER SECTION:
rueducommerce.com.      440     IN      A       178.251.201.141
rueducommerce.com.      440     IN      A       178.251.200.141

;; Query time: 279 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu May 19 15:51:51 2011
;; MSG SIZE  rcvd: 67

但 stackoverflow 有效

dig stackoverflow.com @10.0.0.10

; <<>> DiG 9.5.0-P2 <<>> stackoverflow.com @10.0.0.10
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40964
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:
;stackoverflow.com.             IN      A

;; ANSWER SECTION:
stackoverflow.com.      1800    IN      A       64.34.119.12

;; AUTHORITY SECTION:
stackoverflow.com.      38      IN      NS      ns3.serverfault.com.
stackoverflow.com.      38      IN      NS      ns2.serverfault.com.
stackoverflow.com.      38      IN      NS      ns1.serverfault.com.

;; Query time: 230 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Thu May 19 16:02:24 2011
;; MSG SIZE  rcvd: 117

我可以调试什么来了解为什么 stackoverflow 可以运行而 rueducommerce 却不运行?

我可以在 DHCP 中添加一个公共 DNS 作为辅助 DNS(怎么做?),客户端可能会表现得更好(与此命令行相同),但这是解决这个问题的正确方法吗?对我来说,这听起来像是客户端可能会开始从私有和公共服务器获得矛盾的结果。

有没有办法让 bind/named 去获取这些结果或告诉客户端去哪里获取它们?

希望问题足够清楚,如果我需要更清楚地说明或添加细节,请不要犹豫添加评论..谢谢!

答案1

DNS 设置存储在 中/etc/resolv.conf。服务器(或使用 DHCP 并获取相同列表的其他客户端)将使用第一个名称服务器(如果可用),只有当第一个名称服务器没有响应时,他才会回退(如果他不知道的话)。因此,您应该尝试配置第一个(私有)DNS 来中继公共DNS。

第一/etc/resolv.conf行应该是nameserver 127.0.0.1。将公共的放在第二行:nameserver 8.8.8.8

如果您正在运行 resolv.conf.d(检查文件夹 etc/resolvconf/resolv.conf.d 是否存在),在这种情况下,将公共名称服务器附加到 /etc/resolvconf/resolv.conf.d/tail

现在从网络中的另一台计算机进行测试:

nslookup serverfault.com 10.0.X.X

(其中 10.0.XX 应该是 MDS 服务器的 IP)

相关内容