$ORIGIN example.com. ; not necessary, using this to self-document
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
1970010100 7200 1800 1209600 300)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 198.51.100.1
ns1 IN A 198.51.100.2
ns2 IN A 198.51.100.3
sub1 IN NS ns1.example.edu.
sub2 IN NS ns1.sub2
ns1.sub2 IN A 203.0.113.1 ; inline glue record
Run Code Online (Sandbox Code Playgroud)
NS 记录在域顶点下的作用是众所周知的。它们的存在是为了将子域的权限委托给另一个名称服务器。上面的例子应包括的NS记录sub1和sub2。这些允许名称服务器为它认为自己不具有权威性的域部分分发引用。
在NS的目的,记录在一个域的顶点,ns1而ns2在这种情况下,似乎较少地受到互联网的大了解。我的理解(可能不是整体的)如下:
这个问题最初是在这里问的: 为什么 DNS 区域文件需要 NS 记录?
总结一下:“当我去我的注册商购买 example.com 时,我会告诉我的注册商我的域名服务器是 ns1.example.org 和 ns2.example.org”。
但请有人澄清以下几点:
注册后,.com 注册中心现在会有一条记录,告诉解析器需要访问 ns1.example.org 或 ns2.example.org 以找出 example.com 的 IP 地址。IP 地址位于 ns1.example.org 上的区域文件中的 A 记录中,并且在 ns2.example.org 上具有相同的副本。
但是,在此文件中,还必须有 2 个 NS 记录,其中将 ns1.example.org 和 ns2.example.org 列为名称服务器。但是由于我们已经在其中一台服务器上,这似乎是重复的信息。
最初给出的问题的答案是区域文件中列出的名称服务器是“权威的”。如果名称服务器不匹配,则权威名称服务器将优先。这一切都很好,但是解析器使用.com 注册表中列出的名称服务器到达名称服务器,如果名称服务器不匹配,那么解析器将在错误的名称服务器上查找区域文件,并且不会找不到它。
还是 .com 注册表从区域文件 ns 记录中提取名称服务器信息的情况?(但是我想如果您在不告诉注册表的情况下更改 ns 记录区域文件,那么它将无法知道在哪里查看。)
谢谢
是否允许将 NS 记录设为 CNAME?例如:
subdomain.example.com. IN NS ns1.example.com.
ns1.example.com. CNAME foo.example.com.
foo.example.com. IN A 10.1.1.1
Run Code Online (Sandbox Code Playgroud)
尽管这(当然)确实如此,但这似乎在绑定中不起作用:
subdomain.example.com. IN NS foo.example.com.
foo.example.com. IN A 10.1.1.1
Run Code Online (Sandbox Code Playgroud)
任何指向禁止此设置的 RFC 的指针将不胜感激。
我已经与 BIND 打交道多年,这一直困扰着我。
$ dig google.com ns
;; QUESTION SECTION:
;google.com. IN NS
;; ANSWER SECTION:
google.com. 87046 IN NS ns3.google.com.
etc...
;; ADDITIONAL SECTION:
ns1.google.com. 87274 IN A 216.239.32.10
etc.
Run Code Online (Sandbox Code Playgroud)
我明白,至少在理论上,根服务器处理 .,并将 .com.、.gov. 等任何内容交给正确的服务器(尽管实际上这都缓存了几个级别),但在某些时候,有人要知道向216.239.32.10 的服务器询问whatever.google.com 的A 记录。但是解析器首先是如何解决这个问题的,因为您需要知道 NS 的 A 才能做到这一点?(就此而言,既然我们知道它是一个 Internet NS 而不是 Chaos 或其他东西,为什么您必须使用名称而不是 NS 记录的地址?)
我的域名服务器总是有一些上游人可以找到的名字(例如,我在 foo.com 上托管了 bar.com 的 DNS,而我的上游处理了 foo.com),但我从来没有完全理解像 Google 这样的人是如何克服以 google.com 的名义托管 google.com 的 DNS 的鸡与蛋问题。
您好,已为域创建了一个记录集:
懒猫主题.com
在 Route 53 上(域是通过 route 53 购买的)并为其提供 Route 53 告诉我配置的 4 个 NS 设置:
ns-368.awsdns-46.com
ns-1963.awsdns-53.co.uk
ns-848.awsdns-42.net
ns-1332.awsdns-38.org
Run Code Online (Sandbox Code Playgroud)
当我使用 nslookup 工具在其中任何一台 DNS 服务器上检查它时,它可以工作:
nslookup lazycatthemes.com ns-1963.awsdns-53.co.uk
Server: UnKnown
Address: 205.251.199.171
Name: lazycatthemes.com
Address: 54.154.51.71
Run Code Online (Sandbox Code Playgroud)
但这不会传播。我已经等了 36 个小时,但我仍然得到这个:
nslookup lazycatthemes.com 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
*** google-public-dns-a.google.com can't find lazycatthemes.com: Server failed
Run Code Online (Sandbox Code Playgroud)
我不知道接下来要做什么?
我在本地托管一个递归名称服务器,因此我不需要我的服务提供商或其他公共 DNS 服务器来进行名称解析。尽管根名称服务器 IP 地址在配置文件(在绑定/etc/bind/db.root文件中)中进行了硬编码,但是当我nslookup为根名称服务器运行多个连续命令时,.TTL 字段仍然会减少。
为什么 TTL 在配置文件中被硬编码时会减少?
为什么在硬编码时首先需要根级别的 TTL?
好吧,我对 DNS 有点陌生,但我在找到这个问题的答案时遇到了一些困难。我在 google 域名注册了一个域名。与其他注册商一样,您可以访问他们的免费 DNS,虽然我知道您可以更改这些,但我也注意到为个人输入“NS”记录(与其他类型相反,例如 A、CNAME 等)的选项子域(区域?)——甚至对于裸域(例如 example.com)。这与注册商的名称服务器有何不同?如果您没有更改裸域的 NS 记录,那么输入这些记录是否会与注册商的名称服务器发生冲突?或者 NS 记录优先于注册机构记录吗?有人可以向我解释一下吗?
另外,如果我只想对一个子域使用 cloudflare,我是否可以输入 cloudflare 的 dns 服务器作为该子域的多个 NS 记录,或者我是否必须更改主 DNS 服务器(即远离 google)?非常感谢。
跟进:
我刚刚做了一个dig example.com any,注意到注册商的名称服务器显示为裸域的 NS 记录。我认为注册商的 DNS 服务器设置在某种程度上与普通资源记录(A、CNAME 等)是分开的。我想我错了。
如果我们有example.com,我们将设置如下内容:
$ORIGIN example.com.
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; nxdomain ttl
)
IN NS ns1.example.com.
IN NS ns2.example.com.
Run Code Online (Sandbox Code Playgroud)
因为在父区域.com 中。example.com已经有 NS 记录。ns1.example.com 的子区域和 A 胶水记录。我们在子区再次声明 NS 记录的目的是什么?
此外,我们是否需要为子区域本身的名称服务器声明 A 记录?
我一直在尝试从 Cloudflare 设置中配置 Github Pages + Universal SSL,不幸的是,虽然 Jekyll/Github Pages 部分进展顺利,但 DNS 配置并不顺利。
我已经从 Amazon/AWS/Route 53 ( http://oblio360.com )购买了一个域,现在我的情况与这里的情况类似:
更改 Cloudflare 的名称服务器后出现 DNS 错误
我所做的是:
www.whatsmydns.net/#TXT/oblio360.com
=> 世界各地的一些名称服务器将 SOA 视为前 AWS 名称服务器,有些则将其视为 CloudFlare。我应该更新 AWS …
domain-name-system ns-record amazon-web-services cloudflare amazon-route53
假设我拥有example.com.
然后我创建一个A记录test.example.com到1.1.1.1.
然后我创建一个NS记录test.example.com到ns1.anotherdnshost.com.
在另一个 DNS 主机上,我将A根 ( test.example.com)的记录添加到2.2.2.2.
客户端查询时test.example.com,A会返回哪条记录?哪个是更“主导”的A记录?这样的设置有效吗?
我正在尝试了解 DNS 的工作原理。即使经过大量的搜索,我仍然不清楚 NS 记录是如何工作的。现在我有两个事实。
事实1(基于本文第一段)
NS 记录或(名称服务器记录)告诉递归名称服务器哪些名称服务器对区域具有权威性。
事实 2(此处,在权威名称服务器部分下)
权威名称服务器包含特定于其所服务的域名(例如 google.com)的信息,并且它可以为递归解析器提供在 DNS A 记录中找到的该服务器的 IP 地址...
Now, say I choose company A for my domain name provider - I've bought my domain name from A
while I'm hosting my web app at the server of company B.
So based on fact 1 and 2 my question are -
(1) Will company A (from where I bought the domain name) will work for …
networking domain-name-system ns-record nameserver dns-record
我有一个来自 1and1 的专用服务器。
假设我有一个名为example.com. 我可以将其指向ns1.example.com并ns2.example.com用于其他域吗?
我在想,通过放弃通常的委托设置而不是为我的域操作 DNS,而是仅依赖 TLD 根中的胶水记录,我可能能够简化 DNS。
当然,如果我这样做,就不可能有很多子域、优先 MX 记录、委派子域等,但它会起作用吗?
更新
我对此进行了测试,但它不起作用(我不记得我最初从哪里获得这些信息)。为什么?
ns-record ×13
nameserver ×4
dns-zone ×2
glue-record ×2
a-record ×1
cloudflare ×1
cname-record ×1
delegation ×1
dns-record ×1
domain ×1
ip ×1
networking ×1
nslookup ×1
subdomain ×1