一、什么是DNS
1、DNS的由来
网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,但IP地址是一串32位的数字,比如:百度服务IP地址是:39.156.69.79,淘宝服务IP: 140.205.94.189,这种网络IP地址很不方便记忆和识别。因此,就有了域名,域名可以理解为给ip地址重新起个名字,例如baidu.com 或者 taobao.com,则很方便记忆和识别。
因此,就有了DNS服务器的概念,DNS服务器就是来保存域名和IP地址的映射关系的,当浏览器访问baidu.com,会先访问DNS服务器照这个映射关系,找到后把IP地址返回给浏览器,浏览器再通过IP地址访问真正的百度服务器。
二、域名结构
由于因特网的用户数量较多,因特网在命名的时候采用了层次结构的命名方法:
1. 每一个域名(本文只讨论英文域名)都是一个标号序列(labels),由字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成
2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label)
3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
4. 级别最低的域名写在左边,级别最高的域名写在右边。
例如,mail.cctv.com是中央电视台用于手法电子邮件的计算机的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。
顶级域名(Top level domain,简称TLD)由美国的ICANN机构管理据2006年12月统计,现在顶级域名TLD(Top Level Domain)已有265个,分为三大类:
(1)国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)。
(2)通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
三、域名服务器
域名服务器实际上就是装有域名系统的主机,主要作用就是解析域名,返回对应的ip地址。
域名是分层结构,域名服务器也是对应的层级结构。由高向低进行层次划分,可分为以下几大类:
分类 | 作用 |
---|---|
根域名服务器 | 最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助 |
顶级域名服务器 | 负责管理在该顶级域名服务器下注册的二级域名 |
权限域名服务器 | 负责一个区的域名解析工作 |
本地域名服务器 | 当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器 |
注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区(zone)
四、域名解析过程
1、定义
域名解析其实就是DNS解析器(DNS resolver)向域名服务器发起一系列请求,然后成功解析域名的过程。(DNS解析器可以理解为客户端)
2、三种查询方式
DNS解析器的查询方式分为两种:recursive(递归查询),iterative(迭代查询)。
- iterative(迭代查询):本地服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,直到解析成功或失败,每次它都是以客户机的身份去各个服务器查询。如解析www.example.com,先查询根域名服务器,找到“com”顶级域名服务器的ip地址;查询该顶级域名服务器,找到“example.com”权威域名服务器的ip地址;查询该服务器,找到子域名www.example.com 是一条A记录,返回ip,查询成功。
- recursive(递归查询):本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
通俗地说,递归就是把一件事情交给别人(本地域名服务器),如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。
迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。
3、举例
DNS客户端和本地名称服务器是递归方式,本地域名服务器和其他域名服务器可以是递归和迭代两种。一般是迭代。
注:本地dns服务器可以由路由器实现,现有的路由器都集成了dns功能
五、DNS协议
域名服务主要是基于UDP实现的,服务器的端口号为53。
DNS 定义了两种报文 ,一种为查询报文;另一种是对查询报文的响应,称为响应报文。
ref:
超直观的DNS科普,一个视频搞懂DNS是啥,是怎么运作的_哔哩哔哩_bilibili
DNS(域名解析协议)详解_honeyJ-优快云博客_dns协议
什么是DNS?_dragon996lllll的博客-优快云博客