它是互联网技术的关键协议之一。无论是上网还是编程、开发、设计,都要掌握它的一些专业知识。
本文详细讲解了DNS的基本原理,以及如何使用软件工具观察其运行。我的梦想是,看完这篇文章,你也会对DNS有一个透彻的了解。
1.什么是DNS?
DNS(域名系统的简称)的功能比较简单,就是根据域名找到IP地址。你可以把它想象成一本巨大的电话簿。
例如,如果你需要浏览域名math.stackexchange.com,你应该首先根据DNS找到它的IP地址是151.101.129.69。
如果你不知道为什么一定要找出IP地址才能启动通信网络,建议你先看看我写的《互联网协议导论》这篇文章。
二、探究的全过程
虽然只需要返回一个IP地址,但是DNS查询的整个过程比较复杂,可以分成几个过程。
Dig这个软件工具,可以展示信息的整个查询过程。
$挖math.stackexchange.com
上面的命令将输出六条信息。
第一段是查询主要参数和统计分析。
第二段是查询的内容。
以上结果表明,在查询域名math.stackexchange.com的A记录时,A是address的缩写。
第三段是DNS服务器的响应。
以上数据显示,math.stackexchange.com有四个A记录,即四个IP地址。00是TTL值(生存时间的简称),表示缓存文件时间,即600秒内不需要再次查询。
第四段显示stackexchange.com(域名服务器的简称)的DNS记录信息,即哪个服务器部门管理stackexchange.com的DNS记录。
以上数据显示,stackexchange.com有4个NS记录,即4个域名服务器。你可以通过查询其中任何一个来找到math.stackexchange.com的IP地址。
第五段是上面四个域名服务器的IP地址,和上一段一起返回。
第六段是DNS服务器传输的一些信息。
以上数据显示,该设备的DNS服务器为192.168.1.253,查询端口号为53(DNS服务器默认设置端口号),其回复长度为305字节。
如果不想看那么多内容,可以应用short的主参数。
$挖短math.stackexchange.com
151.101.129.69
151.101.65.69
151.101.193.69
151.101.1.69
上述指令只返回与math.stackexchange.com匹配的四个IP地址(即A记录)。
三。DNS服务器
根据前面的例子,我们一步一步来恢复。设备是如何获得域名math.stackexchange.com的IP地址的?
第一,设备必须知道DNS服务器的IP地址,否则无法上网。根据DNS服务器,可以知道一个域名的IP地址是什么。
DNS服务器的ip地址,可能是动态的,每次上线都是由网关IP分配的,称为DHCP系统;可以,也可能是事先特定的固定地址。在linux系统软件中,DNS服务器的IP地址存储在/etc/resolv.conf文件中。
上例中的DNS服务器是192.168.1.253,这是一个内部网地址。也可以使用一些外部网络地址的DNS服务器,其中最著名的有Google的8.8.8.8和Level3的4.2.2.2。
设备只查询自己的DNS服务器,dig命令有一个@main参数,显示向其他DNS服务器查询信息的结果。
$dig@4.2.2.2math.stackexchange.com
上述指令专门查询DNS服务器4.2.2.2。
第四,域名的级别
为什么DNS服务器知道每个域名的IP地址?回答分层查询。
请仔细看前面的例子。每个域名的末尾都多了一个点。
例如,域名math.stackexchange.com显示的信息为math.stackexchange.com。不是不小心,只是所有域名的末尾其实都有一个根域名。
例如,www.example.com的真实域名是www.example.com.root,缩写为www.example.com。因为根域名。root对于所有域名都是一样的,通常会被省略。
根域名的下一级称为“顶级域名”(简称TLD),如。com和。网;;下一级称为“二级域”(简称SLD),比如。以www.example.com为例,这是客户可以申请注册的域名;下一级是IP地址(主机),比如www.example.com的www,也叫“三级域名”。是客户分配给自己域内服务器的名称,客户可以随意分配。
综上所述,域名的层次结构如下。
IP地址。次级线圈域名。顶级域名。根域名
#那就是
主机.sld.tld.root
动词(verb的缩写)根域名服务器
DNS服务器根据域名的等级进行分级分类查询。
必须确立每个级别域名都有自己的NS记录,且NS记录偏向该级别域名的域名服务器。这种服务器知道下一级域名的各种记录。
说白了,“分级分类查询”就是从根域名开始,依次查询每一级域名的ns记录,直到找到最后一个IP地址。整个过程大概如下。
从"根域名服务器"查到"顶尖域名服务器"的NS记录和A记录(IP地址) 从"顶尖域名服务器"查到"次级线圈域名服务器"的NS记录和A记录(IP地址) 从"次级线圈域名服务器"查出来"IP地址"的IP地址仔细看上面的整个过程,你大概会注意到,没有提到DNS服务器如何判断“根域名服务器”的IP地址。响应“根域名服务器”的NS记录和IP地址一般不容易更改,所以内置在DNS服务器中。
以下是嵌入式根域名服务器IP地址的示例。
在上面的目录中,根域名的三个NS记录(。root)列出了:A.ROOT-SERVERS.NET、B.ROOT-SERVERS.NET和C.ROOT-SERVERS.NET,以及它们的IP地址(即A记录):198.41.0.4、192.228.79.201和192.33.4.12。
另外,能看到所有记录的TTL值是3600000秒,相当于1000小时。也就是说,每1000小时查询一次根域名服务器的目录。
目前,从A.ROOT-SERVERS.NET到M.ROOT-SERVERS.NET,全世界有十三组根域名服务器。
注:阅读相关网站基本建设方法的文章,请移至网站建设教程频道栏目。
强烈推荐:使用性能优秀的云服务器的稳定网址,可以赚更多的钱。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)