【问题标题】:How to properly point subdomain (w.example.com) to (ns1.w.example.com)如何正确地将子域(w.example.com)指向(ns1.w.example.com)
【发布时间】:2019-02-14 12:12:54
【问题描述】:

我想将我的子域 (w.example.com) 指向 (ns1.w.example.com)

NS  w.example.com directs to ns1.w.example.com.
A ns1.w.example.com directs to 192.0.2.139

>> dig w.example.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> w.example.com

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 20571
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;w.example.com.                        IN      A

;; Query time: 195 msec
;; SERVER: 67.207.67.3#53(67.207.67.3)
;; WHEN: Thu Feb 14 12:10:13 UTC 2019
;; MSG SIZE  rcvd: 43

为什么它会破坏 DNS 解析并让我知道将我的子域 (w.example.com) 指向 (ns1.w.example.com) 的正确方法

什么是正确的做法?

【问题讨论】:

  • 始终使用 dig@ 选项来指定您查询的名称服务器,否则在排除故障时,您可能会从其他名称服务器获得回复,而不是您期望的。而且您总是需要先检查您所在区域的权威名称服务器,然后再检查递归服务器。
  • A SERVFAIL 表示一个重大错误,如果它在您控制的名称服务器上,您应该首先查看它的日志文件并在那里阅读正在发生的事情。它也可能与 DNSSEC 相关,在这种情况下,将 +cd 添加到您的 dig 调用中,以确保在您的第一次测试中禁用 DNSSEC。
  • “点”是什么意思?要么将子区域委托给其他名称服务器(在这种情况下,您需要正确的 NS 记录,以及与 AAAAA 的潜在粘合)还是只解析特定的名称?在第二种情况下,您不需要委托,因为名称中的“点”与委托之间没有一对一的映射。在example.com 区域中,您可以毫无问题地直接拥有ns1.w.example.com IN A 192.0.2.139,而无需任何NS 记录(无委托)。
  • 如果你想用dig来分析问题,试试dig +trace @8.8.8.8 w.example.comdig +trace @8.8.8.8 ns1.w.example.com,然后你会看到它在哪里中断(前提是w只有一个NS)。跨度>
  • @Leo, No, dig@+trace 同时使用没有意义,因为@ 不会被考虑在内,因为+trace 强制正常分辨率进程从根名称服务器开始。首先需要测试的是直接在权威名称服务器上,然后才在递归名称服务器上进行测试。请记住,世界上不仅有8.8.8.8,还有1.1.1.19.9.9.980.80.80.8064.6.64.6 等等。无论如何,最好先测试本地递归的,特别是如果你可以控制它们(绕过任何缓存问题等)

标签: dns subdomain


【解决方案1】:

在 domain.com 区域,您需要委托和粘合记录。分别是forlast和last记录:

$ORIGIN example.com.
@      NS  auth.dns.example
@      NS  auth.dns.example
@      NS  auth.dns.example
...
w      NS  ns1.w
ns1.w  A   192.0.2.139

粘合记录是“区域外”数据,需要预先指示该名称服务器的地址 - 因为没有该信息,解析器无法猜测它。

在 w.example.com 的区域你需要拥有

$ORIGIN w.example.com.
@      NS  ns1
ns1    A   192.0.2.139

【讨论】:

  • 为什么三个NS记录一模一样?
  • OP 已经说过他有“一个 ns1.w.example.com 指向 192.0.2.139”所以这就是胶水,这并不能解释他的问题(当然无用的混淆不能帮助)
  • 问题已修改。我的答案也是如此。所以也不要怪我。
  • “三个相同的记录”表示当前的auth。
  • 混淆是为了让它尽可能清晰。相反是什么使不必要的复杂。而且添加一个不相关的 DNSSEC 主题就更没用了。
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
  • 2016-12-19
  • 2016-09-13
相关资源
最近更新 更多