一、理解IP和域名
我们首先要了解域名和IP地址的区别。
IP地址是互联网上计算机唯一的逻辑地址。
通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。
但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。
基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识/一组有意义的字符,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的,都可以访问其Web网站。
二、理解DNS域名系统(DomainName System)
DNS是互联网的一项服务。
DNS在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务。
DNS将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS 的分布式机制支持有效且可靠的名字到 IP 地址的映射。多数名字可以在本地映射,不同站点的服务器相互合作能够解决大网络的名字与 IP 地址的映射问题。单个服务器的故障不会影响 DNS 的正确操作。
DNS命名系统采用层次的逻辑结构, 如同一棵倒置的树,这个逻辑的树形结构称为域名空间,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。
三、理解域和域名
3.1、域
DNS树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构。域名空间的每个域的名字,通过域名进行表示。
3.2、域名
通常由一个完全合格域名(FQDN)标识。FQDN能准确表示出其相对于DNS域树根的位置也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“.”分隔,对于DNS域baidu来说,其完全正式域名(FQDN)为 baidu.com。
四、域名结构树
五、DNS和域名有什么关系
域名只是一个标识,DNS是域名解析系统,当您输入一个域名时,DNS开始工作,向域名对应的IP地址请求,找到域名对应的IP(服务器)后,返回结果给访问者,你就看到了这个域名对应的网页。这些DNS系统是不公开的。
六、主域名服务器与辅助域名服务器的关系
6.1、理解
用户在访问某一个域名的时候实际不是直接访问到这个承载业务的这个服务器而是先解析获取到这个域名对应的公网IP地址,再用这个IP发送请求,这个解析会先在电脑本地缓存查询在没有的场景下会到上级的DNS服务器请求。
当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变。如果改变了,它就启动一次数据更新传输。
设置DNS服务器时,服务器管理员可以选择是将DNS服务器指定为主服务器还是辅助服务器(也称为从服务器)。
在某些情况下,服务器可以是一个区域的主要服务器,也可以是另一个区域的辅助服务器。但是每个区必须有主服务器,另外每个区至少要有一台辅助服务器,否则如果该区的主服务器崩溃了,就无法解析该区的名称。
6.2、DNS主服务器
主服务器托管控制区域文件,该文件包含域的所有权威信息(这意味着它是重要信息的可信源,例如域的IP地址)。这包括重要信息,例如域的IP地址以及负责该域管理的人员。主服务器直接从本地文件获取此信息。只能在主服务器上更改区域的DNS记录,然后主服务器才能更新辅助服务器。
6.3、DNS辅助服务器
辅助服务器包含区域文件的只读副本,它们通过称为区域传输的通信从主服务器获取其信息。每个区域只能有一个主DNS服务器,但它可以有任意数量的辅助DNS服务器。无法在辅助服务器上更改区域的DNS记录,但在某些情况下,辅助服务器可以将更改请求传递到主服务器。
6.4、为什么要有辅助DNS服务器 / 辅助服务器的优点
6.4.1、容错能力
配置辅助服务器后,在该区主服务器崩溃的情况下,客户机仍能解析该区的名称。一般把区的主服务器和区的辅助服务器安装在不同子网上,这样如果到一个子网的连接中断,DNS客户机还能直接查询另一个子网上的名称服务器。
6.4.2、减少广域链路的通信量
如果某个区在远程有大量客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机
配置成先查询这些服务器,这样就能防止远程客户机通过慢速链路通信来进行DNS查询。
6.4.3、减轻主服务器的负载
辅助服务器能回答该区的查询,从而减少该区主服务器必须回答的查询数。
主DNS服务器包含所有相关资源记录,并且可以处理域的DNS查询,(许多注册商需要)通常至少具有一个辅助DNS服务器。这些辅助服务器的好处是它们在主DNS服务器关闭时提供冗余,并且它们还有助于将请求的负载分配到域,以便主服务器不会过载,这可能导致拒绝服务。他们可以使用循环DNS来实现这一点,循环DNS是一种负载平衡技术,旨在为群集中的每个服务器发送大致相等的流量。
七、DNS服务器与缓存
7.1、DNS服务器
运行DNS服务器程序的计算机,储存DNS数据库信息。
DNS服务器会尝试解析客户机的查询请求。
在解答查询时,如果DNS服务器能提供所请求的信息,就直接回应解析结果
如果该DNS服务器没有相应的域名信息,则为客户机提供另一个能帮助解析查询的服务器地址。
如果以上两种方法均失败,则回应客户机没有所请求的信息或请求的信息不存在。
7.2、DNS缓存
DNS服务器在解析客户机请求时
如果本地没有该DNS信息,则可以会询问其他DNS服务器
当其他域名服务器返回查询结果时
该DNS服务器会将结果记录在本地的缓存中,成为DNS缓存。
当下一次客户机提交相同请求时
DNS服务器能够直接使用缓存中的DNS信息进行解析。
八、本地DNS服务器
8.1、观点一
通过域名访问Internet上的网站或服务器需要使用DNS来进行解析。客户端电脑使用的DNS就是本地DNS服务器,本地DNS服务器会向权威DNS获取解析记录返回给用户,并按照解析记录TTL值缓存到自己服务器。本地DNS服务器一般是网络服务商提供的DNS,也可以自己修改为常用的公共DNS。
8.2、观点二
在通过浏览器缓存及host文件都无法解析域名的情况下,OS会将这个域名发送给计算机网络配置中DNS对应的地址(LDNS),即本地区的域名服务器。这个DNS通常都提供给你本地互联网接入的一个DNS解析服务,假如是在学校接入的互联网,那么这个本地区的域名服务器基本上是在学校中;如果是在小区接入的互联网,那么这个本地区的域名服务器就是提供给你接入互联网的应用服务上,也就是电信或联通。
--《深入分析java web 技术内幕》 许令波著
8.3、观点三
本地域名服务器(查询代理和DNS查询结果缓存): 只是一个查询代理
8.4、观点四
而我们电脑上设置的DNS,是指当我们本地电脑访问域名时,率先进入哪台服务器,进入哪些DNS系统。
什么叫本地DNS服务器?这里的本地具体什么意思呢?_百度知道
九、DNS域名解析过程
9.1、从浏览器缓存中查询。
浏览器会存储一定时间的DNS记录,操作系统不会告诉浏览器每个DNS记录的保存时限,不同浏览器设置保存时限为一个固定值(不同浏览器情况不同,一般在2-30分钟)。检查在是否有相应的域名、IP对应关系,如果有,则向其IP地址发送请求。
9.2、从操作系统缓存中查询。
如果浏览器中没有包含想要的缓存记录,那浏览器就会发起操作系统请求,继续查询操作系统缓存。(hosts文件)
9.3、从路由器中查询DNS缓存。
请求持续发送到你的路由,它通常会有自己的DNS缓存。
9.4、从ISP中查询DNS缓存。
下一个被查询地方是ISP缓存DNS的服务器。
9.5、域名服务器迭代查询,根据返回的地址逐级向上查询。
浏览器客户端向本地DNS服务器发送一个含有域名https://www.baidu.com的DNS查询报文
本地DNS服务器把查询报文转发到根DNS服务器
根DNS服务器注意到其com后缀,于是向本地DNS服务器返回 com DNS服务器的IP地址
本地DNS服务器再次向 com DNS服务器发送查询请求,com DNS服务器注意到其https://www.baidu.com后缀并用负责该域名的权威DNS服务器的IP地址作为回应
最后,本地DNS服务器将含有https://www.baidu.com的IP地址的响应报文发送给客户端
从客户端到本地服务器属于递归查询,而DNS服务器之间的交互属于迭代查询
正常情况下,本地DNS服务器的缓存中已有com DNS服务器的地址,因此请求根域名服务器这一步不是必需的
十、DNS正向解析和反向解析
10.1、正向解析
正向解析是指域名到IP地址的解析过程。
10.2、反向解析
反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。
什么是DNS的正向解析与反向解析?代码实现?_dns正向解析和反向解析_程序猿编码的博客-CSDN博客
DNS的正向和反向解析_dns正向解析和反向解析_叁煌蛋的博客-CSDN博客
十一、DNS资源记录类别
十二、理解DNS劫持
十三、欢迎交流指正,关注我,一起学习。