DNS原理及解析详情

一、DNS原理

1. DNS简介

DNS【Domain Name System】因特网使用的域名系统,指明这种系统是应用在因特网中
域名服务器:【运行域名程序服务器的机器】

  1. 域名到IP地址的解析是由分布在因特网上的许多域名服务器程序共同完成
  2. 域名服务器程序在专设的节点上运行

2. DNS作用

DNS的作用:是把人们使用的机器名字转换称成IP地址

3.DNS背景

  1. IP地址是由32位的二进制组成,转换成主机名字更容易记忆
  2. 机器在处理IP数据报时,更愿意使用IP地址,是因为IP地址长度固定,处理起来比较简单
  3. 因特网采用层次树状结构的命名方法,并使用分布式的域名系统DNS,采用客户服务器方式
    1. 分布式的好处:单个计算机出了故障,也不会影响整个DNS系统正常运行
  4. DNS的效率很高
    • 大多数的名字都在本地解析
    • 少量解析在因特网上通信

4. 域名到IP地址的过程要点

  1. 应用进程调用解析程序,把待解析的域名放在DNS请求报文中,以UDP【用户数据报】的方式传递给本地域名服务器
    • 本地域名服务器查找到该域名后,把对应的IP地址放在回答报文中返回;应用程序获得目的主机的IP地址后进行通信
    • 本地域名服务器找不到该域名,就向其他域名服务器发出查询请求,直到找到能够回答该请求的域名服务器为止

二、域名结构

主机名.次级域名.顶级域名.根域名
通常称www.example.com.cn为一个域名,但是从严格意义上来看example.com.cn才是一个域名

  • 域名需要从右往左来看
  • 每一个域名后面都有一个root表示根域名
  • 每一个域名都是由标号序列组成,而标号之间用小数点隔开
  • 域名中的标号由英文和数字组成,每一个标号不超过63个字符,不区分大小写
  • 级别最低的写在最左边,级别最高的写在最右边
  • 由多个标号组成的完整域名不允许超过255个字符

1. 顶级域名分类

顶级域名已有265个,分为3大类

  • . 国家顶级域名【nTLD】:采用ISO3166的规定
    • cn代表中国
    • us代表美国
    • uk代表英国
    • 国家域名又通常记为ccTLD【cc表示国家代码contry-code】
  • . 通用顶级域名【gTLD】
    • com:公司企业
    • net:网络服务机构
    • org:非营利组织
    • int:国际组织
    • gov:美国政府部门
    • mil:美国军事部门
  • . 基础域名结构
    • arpa:用于反向域名解析

如下图所示
在这里插入图片描述
举个例子:
在这里插入图片描述

  1. 根域名:以.表示,由多台DNS服务器组成,由不同机构管理
  2. 顶级域名:由数台DNS服务器组成,实现组织机构分类管理
  3. 二级域名:可供组织机构申请使用,必须先申请成功后才可以使用,比如:abc.com
    • 子域:二级域名下可以设置多级域名。如上图的www.bc123.netftp.bc123.net就是bc123.net的子域
  4. 主机域名:这三个主机的完整域名是www.bc123.netftp.bc123.netmail.bc123.net,而www、ftp、mail、代表bc123的主机

三、域名服务器

1. 域名服务器的划分

在DNS中以划分区的方法来解决:【是一种树状结构】
原因:每一个节点采用一个域名服务器,会使得域名服务器的数量太多,使域名系统的运行速率降低

  • 区:一个服务器所负责管辖的范围【各单位根据具体情况划分自己管辖范围的区】
    • 在一个区中的所有节点必须时能够连通的
    • 每一个区设置相应的权限域名服务器【保存这个区中主机到IP地址的映射
  • DNS服务器的管辖范围不是以为单位。而是以为单位
    • 区是域的子集

举例:
假定 abc 公司有下属部门 x 和 y , 部门 x 下面有分三个分布们 u , v , w , 而 y 下面还有下属部门 t ;
在这里插入图片描述
对于图a来说:

  • 表示 abc 公司只设一个区 abc.com ;
  • 区 abc.com 和域 abc.com 指的是同一件事 ;

对于图b来说

  • 表示 abc 公司划分为两个区 : abc.com 和 y.abc.com ;
  • 这两个区都隶属于域 abc.com ,都各设置了相应的权限域名服务器

每一个域名服务器都能完成部分域名IP地址的解析,当某个域名服务器不能完成IP地址的转换时,就会设法到因特网上别的域名服务器进行解析

2. 域名服务器的划分

DNS服务器按照层次安排,每一个域名服务器只对域名体系的一部分进行管辖

  • 根域名服务器:层次最高的域名服务器,也是最重要的域名服务器
    • 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址
    • 不管是哪一个本地域名服务器,自己无法解析域名时,首先求助于根域名服务器
    • 所有的根域名服务器瘫痪了,整个DNS系统就无法工作
    • 根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应该找哪一个顶级域名服务器进行查询
  • 顶级域名服务器:负责管理在顶级域名服务器注册的二级域名
  • 权限域名服务器:负责一个区的域名服务器
  • 本地域名服务器:本地域名服务器不属于下图域名服务器的层次结构,但是它的存在对域名系统非常重要
    • 当一个主机发出DNS查询请求时,这个查询的请求报文就发送给本地域名服务器
      在这里插入图片描述

四、域名解析的过程

1. 域名解析详情

  1. 客户机提出域名解析请求 , 并将该请求发送给本地的域名服务器 ;
  2. 当本地的域名服务器收到请求后 , 就先查询本地的缓存 , 如果有该纪录项 , 则本地的域名服务器就直接把查询的结果返回 ;
  3. 如果本地的缓存中没有该纪录 , 则本地域名服务器就直接把请求发给根域名服务器 , 然后根域名服务器再返回给本地域名服务器一个所查询域 (根的子域) 的主域名服务器的地址;
  4. 本地服务器再向上一步返回的域名服务器发送请求 , 然后接受请求的服务器查询自己的缓存 , 如果没有该纪录 , 则返回相关的下级的域名服务器的地址 ;
  5. 重复第四步 , 直到找到正确的纪录 ;
  6. 本地域名服务器把返回的结果保存到缓存 , 以备下一次使用 , 同时还将结果返回给客户机;

在这里插入图片描述
下边是我自己画的图,方便理解
在这里插入图片描述

2. 查询方式

  • 递归查询【本机–>本地域名服务器】
    • 如果本地域名服务器不不知道被查询的IP地址,那么本地域名服务器代替主机查询 ,向其他根域名服务器继续发送查询的请求报文
    • 递归查询返回的结果是:要查询的ip地址要么是报错
  • 迭代查询【本地域名服务器–>根域名服务器】
    • 根域名服务器收到本地域名服务器的查询报文时,要么给出ip地址,要么告诉本地域名服务器下一步该向哪一个域名服务器查询,让本地域名服务器进行后续的查询
    • 一般是根域名服务器把自己知道的顶级域名服务器的ip地址告诉本地域名服务器,让本地域名服务器向顶级域名服务器进行查询
    • 顶级域名服务器要么给出所查询的ip地址,要么告诉本地域名服务器下一步应该向哪一个权限域名服务器进行查询,然后将这个结果返回给要查询的主机

五、DNS拦截

DNS拦截属于HTTP拦截的一种,HTTP劫持分为:

  • DNS拦截【域名劫持】
    拦截域名解析的请求,使用造假的DNS解析服务器返回假的IP地址或者不返回响应
    • 解决办法
      1. 使用自己的解析服务器,不使用运营商的
      2. 提前在自己网站中将解析好的域名以IP地址发送出去,绕过运营DNS解析
  • 内容劫持
    修改缓存池中的内容,非法商家将缓存池中的内容做修改,使请求收到错误的数据

六、相关术语

  1. A记录
    A记录【Address】,用来指定域名对应的IP地址记录
    用户可以将该域名下的网站服务器指向自己的web server上,同时也可以设置域名的二级域名
  2. MX记录
    【邮件路由记录】,用户可以将该域名下的邮件服务器指向自己的mail server 上,然后可自行操控所有的邮箱设置,(只需要填写自己服务器的IP地址,就可以将域名下的邮件全部转到自己设定的响应邮件服务器上)
  3. CNAME记录
    【别名记录】,这个记录允许多个域名映射到同一台计算机上。通常用于同时提供www和mail 服务的计算机
    例如:有一台计算机为host.mydomian.com,他可以同时提供www和mail 服务,为了帮助用户访问,就可以设置两个别名,全称分别是www.mydomian.com 和 mail.mydomian.com,实际上他们都指向host.mydomain.com
  4. TTlL值
    【生存时间,time to live】,表示DNS记录在DNS服务器上的缓存时间
    参考文章:文章
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DNS(Domain Name System)是互联网的一个基础设施,它通过将域名映射到IP地址来使得Internet上的计算机能够相互通信。DNS解析是将域名解析成IP地址的过程,其全过程及原理如下: 1. 用户在浏览器中输入域名,如www.example.com; 2. 浏览器向本地DNS服务器(如ISP提供的DNS服务器)发送域名解析请求; 3. 如果本地DNS服务器缓存中存在该域名对应的IP地址,则直接返回给浏览器; 4. 如果本地DNS服务器缓存中不存在该域名对应的IP地址,则向根域名服务器发送请求; 5. 根域名服务器返回顶级域名服务器的地址,如.com域的顶级域名服务器的地址; 6. 本地DNS服务器向顶级域名服务器发送请求; 7. 顶级域名服务器返回下一级域名服务器地址,如example.com域的DNS服务器地址; 8. 本地DNS服务器向example.com域的DNS服务器发送请求; 9. example.com域的DNS服务器返回对应的IP地址; 10. 本地DNS服务器将IP地址返回给浏览器; 11. 浏览器通过IP地址访问服务器,获取网页内容并显示。 DNS解析原理DNS采用了分布式数据库的方式进行域名解析。全球各地的众多DNS服务器共同维护了一个庞大的域名与IP地址的对应关系数据库。当浏览器发出域名解析请求时,会先向本地DNS服务器发送请求,如果本地DNS服务器缓存中不存在则向其他DNS服务器查询,直到获得域名对应的IP地址为止。DNS解析过程中采用了递归查询和迭代查询两种方式。递归查询是指DNS服务器在查询过程中一直向上级DNS服务器发送请求,直到获得结果为止。而迭代查询是指DNS服务器在查询过程中只向下级DNS服务器发送请求,然后将结果返回给上级DNS服务器,最终返回给客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值