域名为互联网提供了更加用户友好的引用服务器的方式,但是你有没有想过它是如何在幕后工作的吗?
在阿帕网(ARPANET)开始时,只有少数几台主机可以保存在一个简单的主机名文本文件中。 多年来,随着互联网的爆炸性增长,需要一个系统来帮助组织无数的现有域名和地址。
为什么是DNS?
最初,域名系统(DNS是Domain Name System的缩写)是为了支持电子邮件通信的发展而创建的,第一个电子邮件地址只包括 user@host。 随着时间的推移,用户的增加,RFC 805(https://tools.ietf.org/html/rfc805)被创建来将电子邮件地址扩展到 user@host.domain,其中 domain 应该是一个主机层次结构。
DNS当前使用此模型在全球范围内支持互联网(Internet)。
IP和主机名
为了区分作为网络一部分的每个主机,将为每个主机分配一个主机名和一个唯一的数字地址。 主机名易于使用并为人类记住,而数字地址则由计算机所基于的内部二进制系统处理。
IP地址是一组数字,用于分层标识网络中设备的接口。 这种分组层次结构的形成方式称为寻址,例如192. 168. 1. 34。
这些组或段中的每一个都指示与它们进行通信所必需的路由机制。 DNS是双向执行翻译的系统,因此人类可以与主机进行通信,反之亦然。
DNS解析
域名系统有三个主要组成部分:
域名称空间(domain namespace),是域名树结构的规范。
名称服务器(name servers),是包含域树的结构信息的服务器程序。 这些服务器可以设置信息或将其缓存。
解析器(resolvers),是客户端程序,可响应用户请求从名称服务器提取信息。
域名解析(或DNS解析)是将IP地址与域名相关联的过程。 从用户的角度来看,解析器通过程序的简单调用来访问域名系统,该解析器与名称服务器联系并获取包含在域名空间中的信息。
域名和名称委托
域名称空间是树结构。 整个数据库可以看作是一棵倒置的树,其根在顶部。 树上的每个节点和叶子都对应一个资源集。 根名称是空字符串(“”),通常用点(.)表示:
·
|
+——–+——————+——-+
| | | | |
.net .edu .com .cc .gov
|
xu.com
|
+—————————+
| | |
cluster.xu.com www.xu.com mail.xu.com
|
node1.cluster.xu.com
域名标识一组资源,这些资源又与单独的资源注册表(RR)集成在一起。 RR的主要组成部分之一是标识存储该记录的资源,因此是信息的所有者或权威来源。
公共域名是通过ICANN(https://www.icann.org/)授权的注册商进行注册的,ICANN是一个非营利性实体,负责对其进行管理。 在大多数情况下,这些注册人提供接管域名管理的服务。 此过程称为域名委托。
互联网上最常用的DNS服务器,伯克利互联网名称域名(BIND是Berkeley Internet Name Domain的缩写),提供了许多查询和验证域名信息的工具。 这是系统管理员的主要任务之一,该系统管理员使用提供给Internet的服务来管理服务器。
要安装BIND及其工具,请运行:
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/”下载
要验证的最常见的RR类型为:
A-与域名关联的主机地址。
NS-域的权威名称服务器。
SOA-标识授权区域的开始。
CNAME-标识别名的规范名称。
PTR-标识与域名/主机名关联的IP地址。
TXT-用于将任意文本关联到域,一般指为某个主机名或域名设置的说明。最常见的是,TXT记录用于将SPF记录与域相关联,以提高电子邮件的可传递性,并防止垃圾邮件发送者在发送垃圾邮件时滥用域名。
例如,如果我们要验证baidu.com域的记录类型A:
~ dig baidu.com
; <<>> DiG 9.10.6 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com.INA
;; ANSWER SECTION:
baidu.com.578INA220.181.38.148
baidu.com.578INA39.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 SIZE rcvd: 70
PTR(或反向)记录查询用于验证IP地址是否已分配给在Mail eXchanger(MX)记录查询中解析的同一主机:
~ dig baidu.com -t MX
; <<>> DiG 9.10.6 <<>> baidu.com -t MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;baidu.com.INMX
;; ANSWER SECTION:
baidu.com.2328INMX20 jpmx.baidu.com.
baidu.com.2328INMX15 mx.n.shifen.com.
baidu.com.2328INMX20 mx1.baidu.com.
baidu.com.2328INMX20 mx50.baidu.com.
baidu.com.2328INMX10 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 SIZE rcvd: 143
当域管理自己的邮件服务时,此配置是必需的,因为否则,服务器可能会被列入黑名单(blacklisted)并且不受信任。
另一个有用的故障排除过程是检查查询路由留下的跟踪:
~ dig baidu.com @114.114.114.114 +trace
; <<>> DiG 9.10.6 <<>> baidu.com @114.114.114.114 +trace
;; global options: +cmd
.1501INNSm.root-servers.net.
.1501INNSc.root-servers.net.
.1501INNSj.root-servers.net.
.1501INNSe.root-servers.net.
.1501INNSf.root-servers.net.
.1501INNSg.root-servers.net.
.1501INNSi.root-servers.net.
.1501INNSd.root-servers.net.
.1501INNSa.root-servers.net.
.1501INNSl.root-servers.net.
.1501INNSk.root-servers.net.
.1501INNSb.root-servers.net.
.1501INNSh.root-servers.net.
;; Received 239 bytes from 114.114.114.114#53(114.114.114.114) in 88 ms
com.172800INNSa.gtld-servers.net.
com.172800INNSb.gtld-servers.net.
com.172800INNSc.gtld-servers.net.
com.172800INNSd.gtld-servers.net.
com.172800INNSe.gtld-servers.net.
com.172800INNSf.gtld-servers.net.
com.172800INNSg.gtld-servers.net.
com.172800INNSh.gtld-servers.net.
com.172800INNSi.gtld-servers.net.
com.172800INNSj.gtld-servers.net.
com.172800INNSk.gtld-servers.net.
com.172800INNSl.gtld-servers.net.
com.172800INNSm.gtld-servers.net.
com.86400INDS30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.86400INRRSIGDS 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.172800INNSns2.baidu.com.
baidu.com.172800INNSns3.baidu.com.
baidu.com.172800INNSns4.baidu.com.
baidu.com.172800INNSns1.baidu.com.
baidu.com.172800INNSns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 – CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS 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 – HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6 NS 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.600INA39.156.69.79
baidu.com.600INA220.181.38.148
baidu.com.86400INNSns7.baidu.com.
baidu.com.86400INNSns3.baidu.com.
baidu.com.86400INNSns4.baidu.com.
baidu.com.86400INNSns2.baidu.com.
baidu.com.86400INNSdns.baidu.com.
;; Received 240 bytes from 112.80.248.64#53(ns3.baidu.com) in 60 ms
在此查询中,我们可以看到它始于根DNS服务器,后者移至顶级域(TLD),直到找到请求的域名注册并返回与之标识的主机为止。
主区域和从属区域
从前面的示例中,我们可以注意到域名已分配给多个权威主机。 此设置类似于群集,以提供解析服务的可用性。
域名记录信息包含在区域文件中,可以将其配置为读/写或只读。 具有读/写的区域文件称为“主区域”。 一次在DNS服务器上只能有一个“主区域”文件。 必须在“主区域”中添加或修改所有DNS记录。
从属区域是从DNS主设备传输的主区域的只读副本,并且每隔一定时间进行同步,以保留域名记录中信息的完整性。
区域同步是一个可以由异步密钥保护的过程,用于加密通信和限制主机。
动态DNS
当将可变IP地址分配给设备时,需要DNS服务器的变体才能分配域主机名。 动态域名系统(DDNS)监视设备IP地址的更改,并在修改后更新注册表。
当您在局域网上有需要通过Internet访问的设备时,通常会使用DDNS。 Web上有多个提供此类服务的提供商,例如:FreeDNS,Securepoint DynDNS,Dynu,DynDNS服务,DuckDNS或No-IP,其中一些提供完全免费的计划或付费服务。
我们先前安装的工具包包含实用程序(nsupdate),用于将RFC 2136中定义的DDNS更新请求提交给名称服务器。
在以后的文章中,我将向您展示一种简单的方法来设置我们自己的DNS和DDNS服务器。
原文链接:https://blog.csdn.net/weixin_35599815/article/details/119239163?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168449620216800197011530%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168449620216800197011530&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-21-119239163-null-null.blog_rank_default&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90