我正在为“example.com”域设置一个基本 DNS 系统,其中包含一个主服务器(1.1.1.1)和一个从属服务器(2.2.2.2)。
我不知道是否应该在主服务器中为从服务器添加 NS 记录,如以下示例所示:
; Records in MASTER server 1.1.1.1
; name servers
IN NS ns1.example.com. ; DNS Int 1 - MASTER
IN NS ns2.example.com. ; DNS Int 2 - SLAVE
; glue records
ns1 IN A 1.1.1.1 ; name server definition MASTER
ns2 IN A 2.2.2.2 ; name server definition SLAVE
是否为从服务器添加 NS 记录有什么区别?我理解 NS 记录意味着那些服务器对域(在本例中为“example.com”)具有权威性。但是,如果我不为主服务器添加 NS 记录,我仍然会从从服务器获得权威答案,因为它从主服务器获取了区域信息。
那么有什么区别呢?
谢谢!
答案1
鉴于你的例子,这里实际上有两个问题需要回答。
我需要多个名称服务器吗?
是的。千百遍都是。如果无法访问您域名的权威名称服务器,该域名就会从互联网上消失。您必须拥有多个名称服务器,并且它们必须是地理冗余的,即位于不同的物理位置。
- 服务器硬件会损坏。这是不可避免的。
- 站点级灾难时有发生。火灾、洪水、地震、电涌等。为了能够抵御意外灾难,您的 DNS 服务器不应位于同一物理站点。
- 路由问题时有发生。如果您的所有 DNS 服务器都共享一个共同的上游对等体,那么当该对等体完全中断时,它们将从互联网上消失。当该对等体和特定远程网络之间发生路由问题时,您的所有服务器都将无法供位于该路由路径后面的远程设备使用。拥有多个不共享上游对等体的服务器可以让您更有效地应对各种上游路由问题。
在 NS 记录中列出主服务器和从服务器有什么区别?
从 DNS 客户端的角度来看,没有任何区别。从服务器管理员的角度来看,最佳做法是仅将从属服务器暴露给互联网,并拥有一个“隐藏”的主服务器,只有从属服务器和您的专用网络可以与之通信。
- 主服务器停机不会影响面向互联网的冗余。从服务器可以与主服务器断开连接一段时间,而不会产生任何不良影响。最大时间长度
expiry
由SOA 记录在从属服务器上托管的每个区域。 - 面向互联网的名称服务器暴露的错误更少。重大语法问题不太可能在区域传输中传播。即使你犯了一个如此严重的错误,导致名称服务器进程自行终止,或整个域名被卸载,最糟糕的情况是,从服务器会暂时与主服务器失去联系。而客户端却不会察觉到任何事。
- 安全优势。如果主服务器被攻破,攻击者可以将更改推送到所有从属服务器。如果从属服务器被攻破,则只能对该服务器进行更改。(当然,如果您让他们进入一台服务器,其他服务器很可能有类似的漏洞可以利用……但降低配置文件仍然没有坏处)
答案2
是的,您应该在区域文件中为所有 DNS 服务器添加 NS 记录。
您应该能够询问所有 DNS 服务器:“example.com 的 DNS 服务器是什么”
例如:
$ host -t NS google.com
google.com name server ns3.google.com.
google.com name server ns1.google.com.
google.com name server ns2.google.com.
google.com name server ns4.google.com.
$ host -t NS google.com ns1.google.com
Using domain server:
Name: ns1.google.com
Address: 216.239.32.10#53
Aliases:
google.com name server ns3.google.com.
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns4.google.com.