我知道域名由 DNS 服务器解析为 IP 地址,然后使用该地址到达请求的服务器。我有点尴尬,因为我不知道其中的一些细节。
为了让我的计算机请求 DNS 服务解析域,我的计算机必须知道 DNS 服务器。我从未明确告知我的计算机任何 DNS 服务器,那么它如何知道应该使用哪个 DNS 服务器?是 ISP 以某种方式将此信息推送到我的计算机吗?
那么,这些 DNS 服务器位于何处?我的 ISP 是否在某处运行一些 DNS 服务器,供其 (ISP) 所有客户使用?
我的计算机使用的 DNS 服务器必须知道所有域才能解析它们,它的记录是如何更新/维护的?
是否存在某个中央实体/注册中心/...来向 DNS 服务器提供已经发生的变更?
如果我订购某个域名,卖家必须在 IP 地址和卖给我的域名之间建立联系。所有 DNS 服务器如何更新以了解此链接?换句话说,卖家采取什么行动来告知“互联网”此域名现在指向何处?
我知道这看起来像是一堆问题,但我认为它们只是同一个故事的不同方面。有人能告诉我这一切是如何协同运作的吗?
答案1
您的计算机有一个 DNS 服务器列表,可以查询这些服务器以获取更多信息。在 unix 或 linux 系统上,该列表存储在 中/etc/resolv.conf
。在 Windows 中,您可以在网络设置中配置它。通常,您的 DNS 服务器将由 DHCP 服务器提供,可能还会提供其他设置,例如默认域、代理服务器等。
您使用的 DNS 服务器的位置并不重要。只要您的计算机有 IP 地址和有效的默认路由(即您可以访问ping
DNS 服务器),您就应该能够进行 DNS 查询。
DNS 服务器不必知道“所有”域。它们只需要知道谁是“权威的”,它从一组“根”服务器中学习到这一点。每个 DNS 服务器都有一个“根”服务器列表,并且此列表很少更改。在我的其中一台 DNS 服务器上,配置了 18 个根服务器,此配置是在我两年前安装 DNS 服务器时配置的,如果根服务器列表从那时起发生了变化,那么其中很多服务器都是可访问的,以至于我没有注意到。
当我的 DNS 服务器被要求解析它不认识的域时,它会向根服务器发出查询,以找出该域的其他 DNS 服务器。它收到的响应可能包含额外的“NS”记录并被标记为非权威,在这种情况下,我的 DNS 服务器知道它必须“遵循链条”并向新服务器发出新的查询。最终,它会找到一个提供权威信息的 DNS 服务器,并且可以进行不仅仅是 NS 记录的查询。A(地址)和 MX(邮件交换)当然是最常见的两个。
每个 TLD(顶级域名)如 COM、NET、ORG、CA、UK 等都维护自己的子域名注册表。(“子域名”是另一个域名内的任何域名,因此“example.com”是“com”内的子域名,“com”甚至是“。”(“根”内的子域名。)每个注册表的规则仅适用于其管理的 TLD - 也就是说,每个国家代码 TLD 都有一套完全不同的标准,而“通用”TLD 由具有不同政策的不同组织管理。但他们都为其 TLD 维护 DNS 服务器,从命令行,您可以使用基本的 DNS 查询工具查看这些服务器:
[ghoti@pc ~]$ host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$
当你从注册员(有很多),该注册商将有关域名的信息提交给注册表(每个 TLD 只有一个)。每个注册中心负责维护其 TLD 内注册域名的列表,并维护向其他服务器提供此信息的 DNS 服务器。
答案2
DNS 服务器作为协议工作,是一组在私有网络内交换互联网数据的规则,如 TCP/IP 协议套件。它只是将用户友好的域名转换为互联网协议。它可以是网站所有者从任何可靠的域名提供商处购买的任何域名,例如域名否则。让我们以域名“myweb.com”为例,它将被转换为 IP,如 71.12.252.1,以便计算机通过网络识别。