DNS域名系统

DNS概述

域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。域名系统其实就是名字系统。
但是为什么不叫“名字”而叫“域名”呢?
这是因为名字系统这个叫法好俗?当然不是咯,这是因为在这种互联网的命名系统中使用了许多的域(domain)因此就出现了域名这个词。
计算机用户是间接而不是直接得使用dns系统。

IP(IPv4)地址是有着32位的二进制地址,我们日常见到的IP地址都是点分十进制。但是光是数字的IP地址也太不好记忆了,所以IP地址的代号——域名就出现了。而dns系统就是将域名转换为对应的IP地址
在这里插入图片描述

为什么计算机不直接使用域名作为连接的地址呢?这是因为域名的长度不是很确定,计算机处理起来比较困难。

下面是DNS示例
在这里插入图片描述

用户输入域名,DNS服务器通过解析找到了Web服务器的地址
之后将数据传到web服务器上面,最后web服务器上再将信息反馈给用户
于是就呈现出网址了

每天,安装于不同位置的成千上万台服务器为我们提供可通过 Internet 访问的多种服务。每台服务器都分配有唯一的 IP 地址,作为在本地网络中的标识。

但是,要记住在 Internet 中提供服务的所有服务器的全部 IP 地址根本是不可能的。取而代之,人们采用了一种相对较容易的方法,通过将名称与 IP 地址关联来定位服务器,这就是域名系统 (DNS)。主机可以使用它来解板域名到特定服务器的 IP 地址。DNS 域名是由 Internet 中的上级域或组来注册和组织的。Internet 中最常用的一些高级域是 .com、.edu 和 .net。
DNS 服务器包含一张表,通过它来确立域内的主机名与相应的 IP 地址的关联关系。如果客户端知道服务器(如 Web 服务器)的域名并需要查找 IP 地址,它会向端口为 53 的 DNS 服务器发送请求。需要在客户端主机 IP 配置的 DNS 设置中事先配置 DNS 服务器的 IP 地址。
当 DNS 服务器收到请求时,它会检查自己的表,查找与该 Web 服务器相关联的 IP 地址。如果本地 DNS 服务器没有任何条目与请求的名称相符,它会查询域内的其它 DNS 服务器。DNS 服务器确定了 IP 地址后,会将信息发送回客户端。如果 DNS 服务器无法确定 IP 地址,请求将超时,客户端便无法与 Web 服务器通信。

客户端软件以对用户透明的方式使用 DNS 协议获取 IP 地址。

从理论上讲,整个互联网可以只使用一个域名服务器,让它拥有这互联网上所有主机名,并回答所有对IP地址的查询。但是这不现实,这个服务器坏了那全球的网络都将棉铃瘫痪。因此,现在使用的是分布式的DNS系统

分布式DNS系统
互联网的域名系统dns被设计成为一个联机分布的数据库系统,并采用客户服务器的方式。dns使到多时名字都在本地进行解析。仅少量解析需要在互联网上通信,因此dns系统的效率很高。
由于dns是分布式系统,即使单个计算机出现了故障,也不会妨碍整个dns系统的正常运行。
域名到IP地址的解析是由分布在互联网上的许多域名服务器程序(可简称为域名服务器)共同完成的。
当某一个应用进程需要把主机名解析为ip地址时,该进程就调用解析程序,并成为dns的一位客户,把待解析的域名放在dns请求报文中,以UDP用户数据报的方式发给本地域名服务器。本地域名服务器在找查域名后,把对应的IP地址放在响应报文中返回。

互联网的域名结构

如今互联网采用层次树状结构的命名方法。
在这里插入图片描述
越往右边级别越高
在这里插入图片描述
一个域名可以对应多个IP、一个IP地址可以对应多个域名
使用命令nslookup,可以查询本地域名服务器和其他服务器

DNS规定:域名中的标后都是用英文和数字组成,每一个标号不超过63个字符,不区分大小写,标号中除了连字符"-"意外不能使用其他标点符号。多个标号组成的完整域名总共不超过255个字符。

域名只是一个逻辑上的概念,并不代表所在的物理地址,他们的点也和IP地址没有关系。

域名服务器
一个服务器所负责管辖的(或者有权限的)范围叫做。一个区中所有的结点必须是能够连通的。每一个区设置相应的权威域名服务器(或者叫权限域名服务器),用来保存该区中所有的主机的域名到IP地址的映射。所以服务器的管辖不是以“域”为单位,而是以“区”为单位。区是dns服务器实际管辖的范围,但是区一定不能大于域

域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖,根据域名服务器的作用,可以把域名服务器划分成一下几类:

名称概念
根域名服务器最高层次的服务器,也是最重要的服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。所有的根域名服务器瘫痪,互联网中的dns系统就无法工作
顶级域名服务器(TLD服务器)这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名
权限域名服务器权威解析,并且提供查找方案
本地域名服务器快速解析本地IP地址,查找本地域名服务器上面的内容更加迅速

在这里插入图片描述

  • 本地域名服务器:
    主机的 DNS 查询时首先查找的域名服务器
    每个 ISP, 企业可拥有 本地(默认) 域名服务器
    相对于需要DNS查询的主机而言
  • 根域名服务器:
    当本地域名服务器不能解析时,就向根域名服务器查询
  • 授权域名服务器:
    每台拥有域名的主机必须在授权服务器上注册登记
    可以正确权威的解释某个域名和IP地址的对应关系
    相对于拥有域名的主机而言

在这里插入图片描述

DNS客户端的配置
在这里插入图片描述

DNS服务器的工作方式

名称内容
递归查询若根域名服务器不能解析,则根域名服务器向授权域名服务器请求,取得映射,将映射返回本地域名服务器
迭代查询:若根域名服务器不能解析,则根告诉本地域名服务器位置,本地域名服务器直接向授权域名服务器请求,取得映射,将映射返回本地域名服务器

在这里插入图片描述
在这里插入图片描述
问题:每次访问网页都需要首先进行DNS请求,效率不高,如何能够提高效率?

  • 使用缓存机制可以提高效率
    客户端短期内会将DNS映射缓存
    DNS服务器从上级DNS服务器获得的DNS映射会缓存
    缓存的映射必须有生存时间
  • 缓存的利与弊讨论
    导致有时无法及时获得更新的DNS映射
    导致DNS的负载均衡无效

负载均衡
将一个域名对应多个IP(多台相同的服务器),域名服务器收到域名查询请求时将IP轮流分配给不同的客户端,使得不同的客户端访问不同的服务器,实现服务器的负载均衡。
在这里插入图片描述
dns的正反向查询
DNS查询模式包括正向查询和反向查询

  • 正向查询根据域名查找IP,包括递归查询和迭代查询
  • 反向查询是指通过IP地址获得相应的域名

DNS协议格式

  • DNS服务使用TCP/UDP的53端口
    客户端浏览器发出的DNS查询使用UDP
    DNS服务器之间同步DNS记录使用TCP
  • DNS协议报文包括两种:
    DNS请求报文
    DNS响应报文

为合理定义DNS记录,DNS协议采用资源记录的结构表示。

DNS资源记录 :RR格式
在这里插入图片描述
DNS的报文格式
在这里插入图片描述
host文件
在host文件上记录IP地址和对应的域名,可以使DNS反馈优先查找。



参考资料:
《计算机网络》谢希仁,
优秀老师课件

posted @ 2021-03-27 14:09  Zeker62  阅读(263)  评论(0编辑  收藏  举报