工作中有时会需要修改hosts文件,来改变指定域名服务指向的ip地址,本文来介绍一下这个操作背后的原理,以及DNS服务。
1.概念
域名系统 DNS(Domain Name System)是互联网的一项服务。它作为将域名和IP地址相互应映射的一个分布式数据库,能够使人更方便地访问互联网。
从网络模型的章节我们知道,IP层的数据路由依靠的是IP地址,由于 IP 地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过域名解析协议来将域名和 IP 地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串,可以理解为IP地址等于电话号码,域名为机主的名称, DNS 可以类比电话通讯过程中,通过人的姓名,查询电话号码的过程。
域名解析就是,将域名到IP地址的转换过程。A记录,CNAME,NS是记录映射关系或者查询IP的方法。
1.1 A记录、CNAME和NS
① A(Adresss)记录 (主机记录): 是用来指定主机名(或域名)对应的IP地址记录。
域名 == 机主姓名
IP地址 == 电话号码
hosts文件 == 通讯录
其中每一条ip与域名的对应关系,就是一条 A记录
② CNAME (别名记录):种记录允许您将多个域名映射到另外一个域名。
CNAME和A记录基本相同,只是将域名映射到另一个域名
👩:有了A记录,为什么需要CNAME?
👨:为了稳定和维护性,例如有一台主机同时提供多个服务(例如:a.baidu.com b.baidu.com c.baidu.com 均指向ip地址 10.22.33.41),会生成多条指向同一IP地址的A记录,一旦IP地址更换,要维护多条A记录数据。还用通讯录来类比,多个人指向一台座机。想查询上官盼弟的电话号,首先通过cname查询她是上官家,然后查询上官家的A记录,得到盼弟的电话。即使后续更换电话号,CNAME记录始终保持稳定。
③ NS(Name Server)(解析服务器记录):用来表明由哪台服务器对该域名进行解析。
NS 服务可以理解为 114查号台,遇到不知道电话号码的用户,可以通过这个服务来查询知道他的电话号码。
2.域名查询过程
2.1 域名详解
在浏览器中随便输入一串乱码fjfksldjfsdljfklsl访问,得到的只能是404. 那么域名由谁来规定和管理呢❓
全世界域名的最高管理机构,是一个叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的组织,总部在美国加州。ICANN 负责管理全世界域名系统的运作。
域名其实是具有一定的层次结构的,从上到下依次为:根域名、顶级域名(top level domain,TLD)、二级域名、(三级域名)
层级 | 说明 | 举例 |
顶级域名 | ICANN 规定 ①通用顶级域名, ②国家定级域名 | .com .edu .org .cn .us .ca |
二级域名 | 域名注册人选择使用的网上名称 | taobao.com baidu.com |
三级域名 | 二级域名的子域名 | weixin.qq.com mail.qq.com |
2.2 域名解析过程
域名解析过程:
本地域名解析服务器,像其他服务器查询的过程分为
- 递归查询
- 迭代查询