我已在 Centos7 上成功设置 DNS 服务器。但是,仅配置了一个名称服务器“NS1”,并且想要为同一 IP 配置另一个名称服务器“NS2”。
在正向和反向区域已完成以下更改。
##########Forward zone############
$TTL 1D
@ IN SOA ns1.mydomain.in. root.ns1.mydomain.in. (
01 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.mydomain.in.
ns1 IN A 10.20.10.20
ns2 IN A 10.20.10.20
############## Reversed Zone ###################
$TTL 1D
@ IN SOA ns1.mydomain.in. root.ns1.mydomain.in. (
3 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.mydomain.in.
20 IN PTR ns1.mydomain.in.
20 IN PTR ns2.mydomain.in.
这些改变是否足够或者我是否需要做更多修改?
答案1
如果您在一个 IP 地址上运行了名称服务器,则无法在同一 IP 地址上运行另一个名称服务器。它们都希望使用相同的 UDP 端口,该端口仅适用于该 IP 地址上的一个服务(=程序)。这意味着您无法将它们专门路由到集群内的某个节点。
您也无法识别它被发送到哪个 DNS 服务器名称,正如您可能从 HTTP 中假设的那样。DNS 仅携带以下问题:“嘿 10.20.10.20,哪个 IP 属于 example.mydomain.in?” - 您可能会注意到它使用 IP 来询问服务器,而不是其名称。
最常见的两台 DNS 服务器设置是主服务器 + 辅助服务器(主/从)设置。这种设置由两台服务器组成,每台服务器都有自己的 IP 和 PTR 记录。
在另一个网站上,他们提供了有关同一 IP 地址的多个 PTR 记录的一些信息以及为什么要避免它们:为什么不建议 DNS 中有多个 PTR 记录?
如果您打算构建两个服务器设置,则需要 2 条 NS 线路和 2 条 A 线路以及 2 条 PTR 线路。假设它们有 21 和 22 个节点特定 IP,并共享 20 个用于此集群上提供的其他服务的外部表示。
@ IN NS ns1.mydomain.in.
@ IN NS ns2.mydomain.in.
ns1 IN A 10.20.10.21
ns2 IN A 10.20.10.22
每个服务器的 PTR 也是分开的:
@ IN NS ns1.mydomain.in.
@ IN NS ns2.mydomain.in.
21 IN PTR ns1.mydomain.in.
22 IN PTR ns2.mydomain.in
群集 DNS 服务器没有多大意义,因为 UDP 请求通过常规 DNS 请求处理得足够快,并且 DNS 客户端允许多个解析器。此外,还有一种称为区域传输(带通知)的方法,可以使两台服务器相互通信以保持记录相同。
bind 的一个配置示例:http://www.microhowto.info/howto/configure_bind_as_a_slave_dns_server.html
如果您仍然希望将它们集群化,那么您可以从条目中删除 ns2,并将服务器仅表示为 ns1.mydomain.in。但它们仍必须通过区域传输和通知系统或一些更复杂的脚本在内部同步记录。