深入浅出DNS系列(二)- DNS

    xiaoxiao2021-03-25  114

     

    2 DNS

    2.1 概述

    2.1.1 DNS是什么

    DNS(Domain Name System)域名系统,是负责名称(称为标识更为准确)的统一命名、翻译、查询的管理、技术体系,通过全球统一规划、统一管理、分级授权维护的方式进行的。

    2.1.2 DNS在互联网及软件体系中的重要位置

    DNS是互联网的基础设施,她很重要、无处不在,她工作的良好的时候,我们常常感觉不到她的存在。 操作系统的提供名称解析库和系统调用,作为名称解析的客户端接口,提供给所有的应用程序使用;基本所有的连网程序、涉及名称解析的都需要使用名称解析库和相关系统调用;假如你是程序员,一定对gethostbyname函数不陌生吧^_^。 当你ping www.james.cn 当你telnet www.james.cn 当你在浏览器地址栏敲入http://www.james.cn 当你在邮件客户端填写的pop3、smtp地址,犹如pop3.james.cn、smtp.james.cn,当你使用邮件简称的时候 … DNS都在默默的为你服务 网络世界和现实世界一样,需要解决标识唯一的问题,不管是IP地址、域名、电话号码都必须保持唯一性;就和现实世界中我和你的身份识别一样,必须唯一;想想现实世界中是怎样做到身份唯一的,就不难理解DNS是怎样做到唯一性的。 首先全球有统一的管理机构负责,其次通过分级授权管理的方式授权名称;就像公安机关有统一的最高机构,通过分级管理的方式,最终给你发身份证明的是派出所。

    2.1.3 DNS的起源

    1983年6月23日,牛津网络学院的Paul Mockapetris和Jon Postel启动了世界上第一台自动分发的域名服务系统:DNS.很快,世界随之改变 1984年10月,DNS成为顶级网域的标准,并不断扩展和国际化,目前DNS大约有10亿个条目,是人类最庞大的索引之一. 网络出现的早期是使用IP地址通讯的,那时就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。 但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的演化,直到现今的多层架构体系

    2.1.4 DNS的协议

    现在的主协议标准是rfc1035《DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION》,请到http://www.rfc-editor.org下载. 另外理解DNS的理念可参考rfc1034《DOMAIN NAMES - CONCEPTS AND FACILITIES》

    2.1.5 DNS协议的服务端与客户端

    DNS协议是基于UDP的,缺省端口53,DNS服务端软件最著名的是BIND,客户端一般称为解析器,在操作系统通常以解析库和系统调用的接口形式提供。

    2.2 DNS的机制

    2.2.1 来源于生活

    IP地址不便于记忆,就像身份证号码不便于记忆一样,所以产生了DNS体系,用于命名及名称地址翻译。其管理、授权、命名、查询翻译等方式和现实生活中身份证明管理、授权、命名、查询是非常相似的。

    2.2.2 域名管理体系

    DNS的全球统一管理机构,由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 映射到服务器,DNS最高管理机构是根服务器。根服务器主要用来管理互联网的主目录,全世界只有13台,1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本 分级授权,根服务器可以授权下一级区域DNS管理服务器,比如“.com”、“.edu”、“.gov”等;下级服务器可以继续授权下一级,比如“.com”授权给“.james.com” 权威,拥有SOA记录的服务器,称为权威服务器,所谓权威,就是说她的解析答案具有权威性;相对于权威服务器,一般的授权服务器解析的答案可供参考 命名和唯一,通过统一、分级授权管理的方式,命名才得以保证唯一性,一般我们要申请域名,需要向域名注册代理机构(在DNS体系中叫注册员)申请,如果名称符合规范且在授权区域内没有重复(同时也保证了全局不重复),就可以注册

    2.2.3 IP地址管理体系

    (1)介绍 IANA (Internet Assigned Numbers Authority) ,Internet号码分配机构。负责对IP地址分配规划以及对TCP/UDP公共服务的端口定义 IP地址由国际组织统一分配,逐级管理。顶级的管理者是Internet Corporation for Assigned Names and Numbers (ICANN)。 现在,ICANN行使IANA(Internet Assigned Numbers Authority,IANA)的职能。 三大区域性IP地址分配机构: A、ARIN(American Registry for Internet Numbers) 负责北美、南美、加勒比以及非洲撒哈啦部分的IP地址分配。同时还要给全球NSP(Network Service Providers)分配地址。 B、RIPE(Reseaux IP Europeens) 负责欧洲、中东、北非、西亚部分地区(前苏联) C、APNIC(Asia Pacific Network Information Center) 负责亚洲、太平洋地区 (2)DNS中的IP地址体系 在DNS体系中,名称体系负责正向解析(名称转IP地址),IP地址体系负载反向解析(IP地址转名称),其反向域名树结构图如下:

    2.2.4 域命名空间

    2.2.5 权威服务器与非权威服务器

    在自己的配置文件中直接写明了域名与主机对应关系并被授权管理该域时,可以认为这个dns是该域的权威dns 相对的说,如果是从你的缓存中查找到的不是你自己配置文件中写明的对应关系,那么该dns对所查询的域就不是权威dns

    2.2.6 DNS服务器的分类

    按主从关系分为主名称服务器(primary)和从名称服务器(slave),它们的区别是主名称服务器自己更新区域数据文件,而从名称服务器通过区域更新协议从主名称服务器取更新的区域数据 按应答来区分,可分为权威服务器和非权威服务器,提供权威应答的称为权威服务器,反之称为非权威服务器 按内外网分,可分为内部名称服务器和外部名称服务器 按查询的方式分,可分为递归名称服务器和迭代名称服务器 按缓存方式分,没有区域数据文件,有缓存的为缓存名称服务器 转发名称服务器,接受用户查询,并把查询转发给其他名称服务器从而获得查询结果返回给查询用户的名称服务器,主要使用在没有直接的互联网连接,但可以连接到一个递归DNS那里,这时使用转发DNS就比较合适。其缺陷是:直接受递归DNS的影响,服务品质较差。比如我们用的路由器里面的DNS就是这一类,用路由器的朋友可以看下本地电脑的DNS一般都是192.168.1.1

    2.2.7 DNS的两种翻译体系

    其实DNS不但有正向的域名解析体系,一般也同时存在反向的地址解析体系 一般同一个DNS服务器同时提供这两种翻译查询功能,它们拥有独立区域文件

    2.2.8 名称解析器

    名称解析器,就是域名系统(Domain Name System,DNS)客户端部分,它负责将应用程序对主机信息的请求,翻译成对名称服务器的查询,并将名称服务器的响应翻译成应用程序能够理解的答案

    2.2.9 无处不在的缓存

    名称记录会在名称解析器、各种不同的名称服务器中进行缓存,一般进行查询时都首先会去缓存中查询是否有合适的答案,如果有直接返回,没有再发起查询 缓存有利有弊,一方面缓存缓解了服务器的访问压力,一方面会导致数据陈旧不一致的问题,根据实际情况设置合适的缓存时间,用以达到这两方面的平衡

    2.2.10 递归查询和迭代查询

    从查询请求者的角度看: 递归查询,就是我向你请求查询,你本身不知道答案,你再向他人查询答案的过程,当然在实际的名称服务器收到递归查询时,如果本身设置不支持递归查询,就会在响应中表明不支持递归查询 迭代查询,其实在协议中没有迭代查询一说,基本上可以说非递归查询就是迭代查询,就是我向你请求查询,你知道也告诉我,不知道也告诉我,我不要求你再去查询其他人了 从被查询的角度看: 递归查询(支持递归查询),就是你向我请求递归查询,我不知道,我得代你向其他人查询答案 迭代查询(不支持递归查询),就是你向我请求查询,不管是递归查询请求与否,我都直接回答你,我不代你向其他人查询

    2.3 相关概念与认知

    2.3.1 glue

    在文档中经常见到“glue”一词,通常glue记录成为胶水记录 允许访问子域名称服务器的数据,也称为glue数据 NS记录用以授权子域,和NS记录一起用以授权的还有glue记录,glue记录用以指定子域名称服务器的地址,但它不是这个域本身的权威数据 如果授权出现,glue信息是必须的,必须存在 对应bind的区域数据如下: james.cn. IN NS ns1.huangsima.cn. james.cn. IN NS ns2.huangsima.cn. ns1.huangsima.cn. IN A 192.168.199.182 ns2.huangsima.cn. IN A 192.168.199.183 其中上面2行加黑的A记录就是glue记录

    2.3.2 FQDN

    Fully Qualified Domain Name)完全合格域名/全称域名,就是后缀带点的域名,如“www.google.com.”

    2.3.3 TLD

    Top level domain,顶级域名

    2.3.4 CNAME

    Rfc1034定义 identifies the canonical name of an alias CNAME就是,定义别名的标准名称

    2.3.5 反向查找与反向地址域和PTR查询

    注意区分这两个概念,是完全不同的,在网上文档中常常会出现混淆 反向查找,一般指在正常的域名树中查找IP地址对应的域名,不属于标准查询,一般的DNS不支持,这种查找会遍历整个域名树 反向地址域,是与正常的DNS域是相对独立的,使用它主要查询IP地址对应的域名,常用PTR标准查询进行查找,使用独立的反向地址域树来组织管理IP地址,查询时不用遍历整个反向地址域树

    转载请注明原文地址: https://ju.6miu.com/read-6621.html

    最新回复(0)