共计 1873 个字符,预计需要花费 5 分钟才能阅读完成。
先理解一下域名层级:以百度为例子:www.baidu.com
。顺次是 com
(顶级域名)、baidu
(一级域名)、www
(二级域名)。然而本质上还有一个惟一的根域名root
:www.baidu.com.root
,但因为root
是惟一的,因而是否写 root
根域名不是特地必要。
1. 什么是 DNS
DNS:Domain Name System
,也即域名零碎,次要用于治理和查问域名对应的 IP 地址。在理论的生存中,在网页上输出某个网址:www.baidu.com
时,浏览器并不是仅通过 www.baidu.com
这个域名就能拜访到对应的服务器并申请到内容,浏览器须要有对应服务器的 ip 地址,那如何获取域名对应的 IP
地址呢?此时 DNS
就在此处起作用了,浏览器通过将域名 www.baidu.com
传给域名服务器 DNS
,DNS
查找到对应的 ip
地址发送给浏览器,浏览器便能够通过 ip
地址拜访到对应的服务器获取到内容了。
2.DNS 工作机制
咱们从浏览器输出域名到获取到真正的 ip 地址登程,查看整套工作流程,从而明确 DNS 在其中施展的作用是这样的。
首先在浏览器中输出域名:www.baidu.com
,此时浏览器会先在浏览器本身的 DNS 缓存中进行查找记录,如果查找到此域名相干的记录,则间接进行拜访对应的 ip 地址。如果查找不到,浏览器则会去本地电脑中去查找 hosts
文件,查找此域名的相干记录,如果查找胜利则间接拜访 IP 地址,否则浏览器会查问以后电脑设置中设置好的 DNS 服务器地址,个别电脑连上网络之后 DNS 服务器地址都是主动设置好了的(也能够手动设置已知的 DNS 服务器地址),也即默认由设施连贯的路由器调配好了,然而主动设置的 DNS 服务器的 IP 地址,个别都是治理 WiFi 的路由器的 IP 地址。
假如采取主动设置,浏览器在网络设置中获取到的 ip 地址因为是路由 ip,则会发动 DNS 查问申请到对应的路由器,此时路由器收到 DNS 查问申请之后,会将申请转发到光猫(光猫只有连贯上服务器网络,就会被调配相应的 DNS 服务器 IP),光猫再转发给运营商 DNS 服务器,个别是Local DNS Server
(DNS 服务器,最邻近以后浏览器地址),负责域名查问。
此时 Local DNS Server
先在本人的服务器进行查问,查看是否有 www.baidu.com
域名对应信息,有则返回对应的 ip 地址给浏览器,否则将查问申请发送给根 DNS 服务器(Root DNS Server),那 Local DNS Server
如何拜访到 Root DNS Server
的?
因为 Root DNS Server
在寰球只有 13 台,所以其信息个别内置在其余 DNS 服务器中的。而拜访哪一台Root DNS Server
呢?DNS 服务器会向每一台 root DNS Server
发动查问顶级域名申请,哪一台信息先到达,则应用哪一台回传的信息。
那什么是 root DNS server
呢?root DNS Server
中记录了各个顶级域名的 DNS 服务器的 ip 地址信息。因而 local DNS Server
会先去询问 root DNS Server
中对于 com
的信息,接着 Local DNS server
收到对于 com
顶级域名的 DNS IP 地址,也即Top Level Server
(com 顶级域名服务器,记录一级域名的 DNS 服务器)
此时 Local DNS Server
又去拜访 Top Level Server
,询问其对于baidu.com
的信息,接着 Local DNS Server
收到对于负责 baidu.com
一级域名的 DNS ip 地址,也即Name DNS Server
(记录残缺的域名,最初查找到 ip 地址的中央)
最初 Local DNS Server
从Name DNS Server
处获取到 www.baidu.com
的 ip 地址,并将其传给了浏览器。
能够看出 DNS 查问机制次要依赖于域名的分层机构,先从顶级域名 com
查问,再查问 baidu.com
一级域名,最初是残缺的域名 www.baidu.com
,而每一层对应着root DNS Server、Top DNS Server、Name DNS Server
DNS 服务器,而这些服务器都是记录了治理下一层域名的 DNS 服务器的 ip 地址,也即Root DNS Server
记录了治理不同顶级域名的 DNS 服务器 IP 地址,比方:com、org、net 等这些顶级域名对应的服务器。Top DNS Server
记录了治理不同一级域名的 DNS 服务器 IP 地址,比方:该台 DNS 服务器是负责所有 com 顶级域名的服务器,外面记录了 baidu.com、bing.com
等一系列的治理这些一级域名的 DNS 服务器的 ip 地址