将子域与绑定一起使用

use*_*271 5 linux dns debian bind

可以用bind在主域中放置多级子域吗?

我有一个名为的区域example.com,我想创建一个子域,如host01.nyc.us.example.com. 我可以在example.com区域中进行这样的输入吗?

; A Records
host01.nyc.us.example.com.   IN   A   1.1.1.1
Run Code Online (Sandbox Code Playgroud)

或者我需要/还是创建另一个名为 的区域更好nyc.us.example.com

; NS Records
     IN   NS   ns1.example.com.
     IN   NS   ns2.example.com.

; A Records
host01   IN   A   1.1.1.1
Run Code Online (Sandbox Code Playgroud)

dav*_*dgo 6

您应该获取一份“DNS 和 BIND 简述”的副本,并使用它来了解 DNS 的工作原理(因为这是您提出的第二个问题 - 没关系,我们希望您正在学习!)

您可以在主区域中放置多个子域。事实上,至少有两种方法可以实现这一目标。

The simpler way would be this
; NS Records
     IN   NS   ns1.example.com.
     IN   NS   ns2.example.com.

; A Records
host01   IN   A   1.1.1.1
host01.nyc.us IN A  2.2.2.2
Run Code Online (Sandbox Code Playgroud)

更复杂的方法是创建一个具有自己的区域记录的子域。在上面提到的情况下,您可能不想这样做,但是如果您想将请求发送到不同的名称服务器或将它们置于其他人的控制之下,那么它很有用 - 事实上,这几乎就是 root 完成事情的方式域名服务器来委托您的域名!

为此,您需要为子域创建一个带有 NS 记录的区域,例如

; NS Records
     IN   NS   ns1.example.com.
     IN   NS   ns2.example.com.

; A Records
host01   IN   A   1.1.1.1
us       IN  NS   ns.nameserver.com
us       IN  NS   ns2.nameserver.com
Run Code Online (Sandbox Code Playgroud)

然后为“us.example.com”创建一个区域文件,您可以在其中拥有 nyc.us.example.com(并再次将其委托给新的名称服务器)或拥有一条记录“host01.nyc”(因为它将与我们相关。示例.com)

关键是域名是从右向左解析的,用“.”分隔。字符,因此您可以向下委派相当长的距离。