域名服务器简介
<p><img src="https://img2018.cnblogs.com/blog/695215/201912/695215-20191203151229257-154670566.png"></p><p>域名为互联网提供了更加用户友好的引用服务器的方式,但是你有没有想过它是如何在幕后工作的吗?</p>
<p>在阿帕网(ARPANET)开始时,只有少数几台主机可以保存在一个简单的主机名文本文件中。 多年来,随着互联网的爆炸性增长,需要一个系统来帮助组织无数的现有域名和地址。</p>
<h2 id="why-dns">为什么是DNS?</h2>
<p>最初,域名系统(<code>DNS</code>是<code>Domain Name System</code>的缩写)是为了支持电子邮件通信的发展而创建的,第一个电子邮件地址只包括 <code>user@host</code>。 随着时间的推移,用户的增加,<code>RFC 805</code>(https://tools.ietf.org/html/rfc805)被创建来将电子邮件地址扩展到 <code>user@host.domain</code>,其中 <code>domain</code> 应该是一个主机层次结构。</p>
<p>DNS当前使用此模型在全球范围内支持互联网(Internet)。</p>
<h2 id="ips-vs-hostnames">IP和主机名</h2>
<p>为了区分作为网络一部分的每个主机,将为每个主机分配一个主机名和一个唯一的数字地址。 主机名易于使用并为人类记住,而数字地址则由计算机所基于的内部二进制系统处理。</p>
<p>IP地址是一组数字,用于分层标识网络中设备的接口。 这种分组层次结构的形成方式称为寻址,例如192. 168. 1. 34。</p>
<p>这些组或段中的每一个都指示与它们进行通信所必需的路由机制。 DNS是双向执行翻译的系统,因此人类可以与主机进行通信,反之亦然。</p>
<h2 id="dns-resolution">DNS解析</h2>
<p>域名系统有三个主要组成部分:</p>
<ol>
<li>域名称空间(domain namespace),是域名树结构的规范。</li>
<li>名称服务器(name servers),是包含域树的结构信息的服务器程序。 这些服务器可以设置信息或将其缓存。</li>
<li>解析器(resolvers),是客户端程序,可响应用户请求从名称服务器提取信息。</li>
</ol>
<p>域名解析(或DNS解析)是将IP地址与域名相关联的过程。 从用户的角度来看,解析器通过程序的简单调用来访问域名系统,该解析器与名称服务器联系并获取包含在域名空间中的信息。</p>
<h2 id="domains-and-name-delegation">域名和名称委托</h2>
<p>域名称空间是树结构。 整个数据库可以看作是一棵倒置的树,其根在顶部。 树上的每个节点和叶子都对应一个资源集。 根名称是空字符串(“”),通常用点(.)表示:</p>
<pre class="wp-block-preformatted"> · <- root
|
+--------+------------------+-------+ <- Top Level Domains
| | | | |
.net .edu .com .cc .gov
|
xu.com
|
+---------------------------+ <- Second Level Domains
| | |
cluster.xu.com www.xu.com mail.xu.com <- subdomains
|
node1.cluster.xu.com <-host
</pre>
<p>域名标识一组资源,这些资源又与单独的资源注册表(RR)集成在一起。 RR的主要组成部分之一是标识存储该记录的资源,因此是信息的所有者或权威来源。</p>
<p>公共域名是通过ICANN(https://www.icann.org/)授权的注册商进行注册的,ICANN是一个非营利性实体,负责对其进行管理。 在大多数情况下,这些注册人提供接管域名管理的服务。 此过程称为域名委托。</p>
<p>互联网上最常用的DNS服务器,伯克利互联网名称域名(BIND是Berkeley Internet Name Domain的缩写),提供了许多查询和验证域名信息的工具。 这是系统管理员的主要任务之一,该系统管理员使用提供给Internet的服务来管理服务器。</p>
<p>要安装BIND及其工具,请运行:</p>
<pre class="wp-block-code"><code>yum install bind-utils -y # CentOS
sudo apt-get install bind # Ubuntu
brew install bind # macOS
# Windows用户 请前往“http://ftp.isc.org/isc/bind9/9.11.0rc3/”下载</code></pre>
<p>要验证的最常见的RR类型为:</p>
<ol>
<li>A-与域名关联的主机地址。</li>
<li>NS-域的权威名称服务器。</li>
<li>SOA-标识授权区域的开始。</li>
<li>CNAME-标识别名的规范名称。</li>
<li>PTR-标识与域名/主机名关联的IP地址。</li>
<li>TXT-用于将任意文本关联到域,一般指为某个主机名或域名设置的说明。最常见的是,TXT记录用于将SPF记录与域相关联,以提高电子邮件的可传递性,并防止垃圾邮件发送者在发送垃圾邮件时滥用域名。</li>
</ol>
<p>例如,如果我们要验证baidu.com域的记录类型A:</p>
<pre class="wp-block-code"><code>~ dig baidu.com
; <<>> DiG 9.10.6 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53035
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com. IN A
;; ANSWER SECTION:
baidu.com. 578 IN A 220.181.38.148
baidu.com. 578 IN A 39.156.69.79
;; Query time: 45 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Dec 03 14:24:25 CST 2019
;; MSG SIZErcvd: 70</code></pre>
<p>PTR(或反向)记录查询用于验证IP地址是否已分配给在Mail eXchanger(MX)记录查询中解析的同一主机:</p>
<pre class="wp-block-code"><code>~ dig baidu.com -t MX
; <<>> DiG 9.10.6 <<>> baidu.com -t MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31939
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;baidu.com. IN MX
;; ANSWER SECTION:
baidu.com. 2328 IN MX 20 jpmx.baidu.com.
baidu.com. 2328 IN MX 15 mx.n.shifen.com.
baidu.com. 2328 IN MX 20 mx1.baidu.com.
baidu.com. 2328 IN MX 20 mx50.baidu.com.
baidu.com. 2328 IN MX 10 mx.maillb.baidu.com.
;; Query time: 31 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Dec 03 14:26:18 CST 2019
;; MSG SIZErcvd: 143</code></pre>
<p>当域管理自己的邮件服务时,此配置是必需的,因为否则,服务器可能会被列入黑名单(blacklisted)并且不受信任。</p>
<p>另一个有用的故障排除过程是检查查询路由留下的跟踪:</p>
<pre class="wp-block-code"><code>~ dig baidu.com @114.114.114.114 +trace
; <<>> DiG 9.10.6 <<>> baidu.com @114.114.114.114 +trace
;; global options: +cmd
. 1501 IN NS m.root-servers.net.
. 1501 IN NS c.root-servers.net.
. 1501 IN NS j.root-servers.net.
. 1501 IN NS e.root-servers.net.
. 1501 IN NS f.root-servers.net.
. 1501 IN NS g.root-servers.net.
. 1501 IN NS i.root-servers.net.
. 1501 IN NS d.root-servers.net.
. 1501 IN NS a.root-servers.net.
. 1501 IN NS l.root-servers.net.
. 1501 IN NS k.root-servers.net.
. 1501 IN NS b.root-servers.net.
. 1501 IN NS h.root-servers.net.
;; Received 239 bytes from 114.114.114.114#53(114.114.114.114) in 88 ms
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com. 86400 IN RRSIG DS 8 1 86400 20191216050000 20191203040000 22545 . MVqSzDbsmBO7A5ZOZM+nsI6B/afLgrCqOMNCyfyPl5W8nBnv0VhpB1qr By6um9s9OgjJ/XRLtWfLYtIr5UPINMEbxY3OMyvdPCI4Tqe/kuG0hsCr iJM+X26kh+QTMQ4mpL1cj04SKek8f394KIAO0UeSeYvM/JQ9N4a0WdrT sHpDOUlssYvhnxR8LP1ZZGiCZz4ZRTpcdFJoRGBFyB4K3mSZDSpmoE7B fS3jz+ucDvZvXx39SO7kjvpQwhcaZRJBXauhY3AfCBH3PxZtRqZDzZrE BcOSXGu5+gXHA8YHxZ69ktZVRbGvOSEwGRr7vLYveeBIhitzf/V4Zn5z OHgUEw==
;; Received 1169 bytes from 193.0.14.129#53(k.root-servers.net) in 73 ms
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns1.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9ANS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20191209054950 20191202043950 12163 com. S9i2P8sKc5s+dCJwh/UR7HlyuiRL5Iz6cCd3oPPV71iyHoYlqq7Q8qFO OVZj5tJP0BTXw9po8arg1iBmd5yJ7mpHCaVCKmY+dssg3fyfPlSl/lXd a4YL4xoHWNCa0Ow5Ywds7/AqtqDfhN0dnP6i+eaFD9rgrmfO6CVoto6B UYrEQbB2Es6vyUvE/ITtkZUI8wfOQjmLXp3jnQ7PUcWSdw==
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN NSEC3 1 1 0 - HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6NS DS RRSIG
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN RRSIG NSEC3 8 2 86400 20191207055135 20191130044135 12163 com. IaSBRLbvBZR4FD6viNRV3ApdH9d64mA+QWTq5EFRzns1nlizGwD3nYKE p3Or+JtNAhZxILcU5g4jtfY7xRnxACI42fruWP+Z4W7XPTHY0DU94bwG sZE50s8Po/0aAXbKsRhLT4cTWUGlrPB+T9MWuHuxIX9dD+Dwm6+jTuYL 0jHPrL3OB8WsHzOsV8kEbGejPQITC2fRi9MdOIko5ELt0Q==
;; Received 757 bytes from 192.43.172.30#53(i.gtld-servers.net) in 245 ms
baidu.com. 600 IN A 39.156.69.79
baidu.com. 600 IN A 220.181.38.148
baidu.com. 86400 IN NS ns7.baidu.com.
baidu.com. 86400 IN NS ns3.baidu.com.
baidu.com. 86400 IN NS ns4.baidu.com.
baidu.com. 86400 IN NS ns2.baidu.com.
baidu.com. 86400 IN NS dns.baidu.com.
;; Received 240 bytes from 112.80.248.64#53(ns3.baidu.com) in 60 ms</code></pre>
<p>在此查询中,我们可以看到它始于根DNS服务器,后者移至顶级域(TLD),直到找到请求的域名注册并返回与之标识的主机为止。</p>
<h2 id="masters-and-slaves">主区域和从属区域</h2>
<p>从前面的示例中,我们可以注意到域名已分配给多个权威主机。 此设置类似于群集,以提供解析服务的可用性。</p>
<p>域名记录信息包含在区域文件中,可以将其配置为读/写或只读。 具有读/写的区域文件称为“主区域”。 一次在DNS服务器上只能有一个“主区域”文件。 必须在“主区域”中添加或修改所有DNS记录。</p>
<p>从属区域是从DNS主设备传输的主区域的只读副本,并且每隔一定时间进行同步,以保留域名记录中信息的完整性。</p>
<p>区域同步是一个可以由异步密钥保护的过程,用于加密通信和限制主机。</p>
<h2 id="dynamic-dns">动态DNS</h2>
<p>当将可变IP地址分配给设备时,需要DNS服务器的变体才能分配域主机名。 动态域名系统(DDNS)监视设备IP地址的更改,并在修改后更新注册表。</p>
<p>当您在局域网上有需要通过Internet访问的设备时,通常会使用DDNS。 Web上有多个提供此类服务的提供商,例如:FreeDNS,Securepoint DynDNS,Dynu,DynDNS服务,DuckDNS或No-IP,其中一些提供完全免费的计划或付费服务。</p>
<p>我们先前安装的工具包包含实用程序(nsupdate),用于将RFC 2136中定义的DDNS更新请求提交给名称服务器。</p>
<p>在以后的文章中,我将向您展示一种简单的方法来设置我们自己的DNS和DDNS服务器。</p>
<blockquote class="wp-block-quote">
<p>原文:https://xushanxiang.com/2019/12/dns-domain-name-servers.html</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/xusx2014/p/11976897.html
頁:
[1]