一、简述dns

  DNS(domain name system)域名系统或者(domain named system)区域名称服务,分为正向与反向域名解析,适用C/S,端口路53/udp,53/tcp,属于应用层协议;

  作用:人得记忆有限,如果没有dns得记下多少IP地址;从网络来说由于tcp/ip协议族是基于ip地址,所以需要一个翻译器即DNS;可以1对多也可以多对1,那么正向解析即域名解析为ip地址,反向解析即ip地址解析为域名。有人说DNS就是一个本大得电话本,说的挺贴切。

  正反向解析事两个不同得名称空间,是两颗不同得解析树;

  正向:ip---》主机名

  反向:主机名---》ip

  当今得业界标准BIND(berkeley internet name domain)dns软件

  

二、DNS域名

  1)DNS是一个倒挂树结构示意图如下

  

  2)按照功能命名得五个类别介绍

  根域:DNS域名中使用时,规定由尾部据点(.)来指定名称位于根域或更高级别得域层次结构,(.)

  顶级域:TDL(TOP LEVEL DOMAIN)用来只是某个国家地区或组织使用得类型,例如(.com)

  二级域:个人或组织在internet上使用得注册名称,例如163.com

  子域:已经注册二级域名派生得域名,就是网站名,例如www.163.com

  主机名:通常情况下,DNS域名得最左侧得标签表示网络上得特定计算机,如www,mail,zhidao

  名称服务器:域内负责解析本域内的名称的主机

  根服务器:13组服务器

  3)dns和internet域

  互联网域名系统有名称注册机构负载维护分配有组织和国家/地区得顶级域在internet上进行管理。国际标准3166。

    常见得DNS域名

    com,商业公司

    edu,教育机构

    net,网络公司

    gov,非军事政府机构

    mil,军事政府机构

    cn,代表中国

三、DNS服务器类型

  主DNS服务器

  从DNS服务器 (可以是多个提供容错)

  缓存DNS服务器(转发器)

  

  主DNS服务器:管理和维护所负责解析的域内解析库的服务器

  从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本

  1)复制操作的方式

  序列号serial:解析库版本号,主服务器解析库变化时,其序列递增

  刷新时间间隔refresh:从服务器从主服务器请求同步解析的时间间隔

  重试时间间隔retry:从服务器请求同步失败时,再次尝试时间间隔

  过期时长expire:从服务器始终联系不到服务器时,多久后放弃从服务器角度,停止提供服务

  否定答案的缓存时长;minimum

  ”通知“机制:主服务器解析库发送变化时,会主动通知从服务

  

  2)区域传送

    完全传输axfr:传送整个解析库

    增量传输lxfr:传递解析库变化的那部分内容

  3)区域(zone)和域(domain) 

    Domain:FQDN

    正向:FQDN->IP

    反向:IP->FQDN

    各需要一个解析库来分别负责本地域名的的正向和反向解析库

    正向区域

    反向区域

    FQDN:fullqualified domain name 完全限定域名

      如:www.baidu.com.

四、DNS查询解析

我们在浏览器访问www.baidu.com这个域名,dns怎么查询到这台主机那?

  

  1、在浏览器中输入www.baidu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个ip地址映射,完成域名解析。

  2、如果hosts里没有这个域名的映射,则会查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

  3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析记过给客户端,完成域名解析,此解析具有权威性。

  4、如果要查询域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

  5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com域服务器,重复上面的动作,进行查询,直至找到www.baidu.com主机。

  6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。不管是本地DNS服务器用是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

    从上图可以知道,客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询

    递归查询与迭代查询

    递归,只发送一次请求,得到一次准确结果(消耗资源)

    迭代,发送多次请求,得到参考结果

    一次完整得查询请求经过得流程

      client-->hosts文件-->DNS service

      local cache -->DNS server(recursion递归)-->server cache -->iteration(迭代)

    解析答案

    肯定答案

    否定答案:请求的条目不存在等原因导致无法返回结果

    权威答案:aa 表示是自身知道的结果,不是问来的

    非权威答案

  

五、资源记录(resoursr record,简写RR)

  1、简单介绍资源记录

    资源记录事组成DNS各域记录,这些记录类型有:A,AAAA,PTR,SOA,NS,CNAME,Mx等

    SOA 起始授权记录,(start of authority),一个区域解析库有且仅能有要给SOA记录,而必须为解析库的第一条记录;

    NS(nameserver)得缩写,专用于表明当前区域的DNS服务器

    A (address),后面记录得对应ipv4地址;FQDN-->IP

    AAAA 对应得ipv6地址;FQDN-->IPV6

    PTR (pointTER)指针,后面记录得数据就是反解到得主机名;IP-->FQDN

    CNAME 别名,一个主机名可以有多个别名,但ip地址事一样得;

    MX 邮件服务器;

    资源记录定义的格式:

    语法格式:

name[TTL]   IN   rr_type(资源记录类型)   value(可以是多个)

        rr_type:替换为指定的资源记录类型;

        ttl可以省略从全局继承 internet

   注意:

    1)TTL就是time to live,可以从全局继承,默认秒为单位;

    2)@可以用于应用当前区域得名字比如baidu.com;

    3)同一个名字可以通过多条记录定义多个不同得值,此时DNS服务器会以轮询方式响应,可以分流做负载均衡;

    4)同一个值也可能有多个不同得定义名字;通过多个不同得名字指向同一个值进行定义;仅表示通过多个名字可以找到同一个主机而已;

  2、SOA:一个区域中有且只能有一个soa

  name:当前区域的名字,例如“zhangxingeng.com.”;最后记得有各点

  value:有多个部分组成

  1)当前区域的主DNS服务器的FQDN,也可以适用但却区域的名字;

  2)当前区域管理员的邮箱地址;但地址中不能使用@服务,一般用.替换,zxg.zhangxingeng.com

  3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

 [root@node5 ~]# cat /var/named/zhangxingeng.com.zone
$TTL 1D
3 @ IN SOA @ web1.zhangxingeng.com.admin.zhangxingeng.com (
; serial  #序列号-最后不要超过10位数
1D ; refresh  #刷新时间1天
1H ; retry   #重试时间
1W ; expire   #过期时间,一周
3H ) ; minimum  #否定答案的ttl值,3个小时
NS web1
web1 A 192.168.216.199
dns1 A 192.168.216.198   

  3、NS记录格式

  name:当前区域的名字

  value:当前区域的某个DNS服务器的名字,例如web1.zhangxingeng.com

  注意:一个区域可以由有多个NS记录

  例如:

    zhangxingeng.com.  IN  NS web1.zhangxingeng.com

    zhangxingeng.com.  IN  NS web2.zhangxingeng.com

  注意:

    1)相邻的两个资源记录的name相同时,后续的可省略

    2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该再后续有一个A记录

  4、MX记录定义格式

  name:当前区域的名字

  value:当前区域的某邮件服务器(smtp服务器)的主机名;

  一个区域内,MX记录可有多个;但每个记录的value之前以你更改有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;

  例如:

    zhangxingeng.com.   IN  MX  10  mx1.zhangxingeng.com.

    IN  MX   20  mx2.zhangxingeng.com.

  注意:

  1)对MX记录而言,任何一个MX记录后面的服务器名字,都应该再后续有一个A记录;

  

  5、A记录定义格式

  name:某主机的FQDN,例如web1.zhangxingeng.com

  value:主机名对应主机的ip地址;

  例如

    web1.zhangxingeng.com.  IN  A  192.168.216.199

    web2.zhangxingeng.com.  IN  A  192.168.216.202

  注意:

    *.zhangxingeng.com.  IN  A   192.168.216.199

    zhangxingeng.com.  IN  A  192.168.216.199

  避免用户写作名称时给错误答案,可以通过泛域名解析进行解析至特定地址;

  6、PTR记录定义格式

  name:IP,有特定格式,把IP地址反过来写,199.216.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:199.216.168.192.in.addra.arpa.

  value:FQDN

  例如:

    199.216.168.192.in.addra.arpa.  IN  PTR  web1.zhangxingeng.com.

  简写

    199  IN  PTR  web1.zhangxingeng.com.

  注意:网络地址及后缀可省略;主机地址依然需要反这写

  

  7、CNAME记录定义格式

  name:别名的FQDN

  value:正规名字的FQDN;

  例如:

    web1.zhangxingeng.com.  IN  CNAME  www.zhangxingeng.com

 部分概念参考http://blog.51cto.com/369369/812889,并用里面的拓扑图重新画了一下,谢谢。

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/9970733.html

    

  

  

      

    

    

  

DNS工作原理的更多相关文章

  1. DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么

    DNS 工作原理是什么,域名劫持.域名欺骗.域名污染又是什么 2014年11月27日 10:05:40 阅读数:6726 标签: dns网络互联网顶级域名递归 更多 个人分类: 网络学习   一.DN ...

  2. Windows客户端DNS工作原理

    通常大家对Windows客户端DNS的配置存在多个误区. 误区一,配置1个内网DNS,1个外网DNS.解析内网的时候用内网DNS,解析外网的时候用外网. 电脑怎么知道哪个是内网?哪个是外网?我们内部的 ...

  3. 1-趣味解读DNS工作原理——转载疯猫网络科技

    因为只要我们输入百度.腾讯.淘宝的名字,无论它们的服务器在哪里,历经多少轮查询,我们都能找到并访问之.这就是计算机网络中著名的域名系统DNS(Domain Name System),它能实现把一个网站 ...

  4. 简单谈谈DNS的工作原理及实践

    DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...

  5. DNS工作流程及原理 域名、IP与DNS的关系

    转自:http://blog.csdn.net/maminyao/article/details/7390208 一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其 ...

  6. DNS域名系统,简述工作原理

    DNS工作原理: 当DNS客户端需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户端发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别.基于UDP服务, ...

  7. DNS查询的工作原理

    二.DNS查询的工作原理 1.DNS查询过程按两部分进行     1.名称查询从客户端计算机开始, 并传送给本机的DNS客户服务程序进行解析     2.如果不能再本机解析查询, 可根据设定的查询DN ...

  8. DNS的工作原理及解析

    DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...

  9. HTTPS工作原理

    HTTPS是什么 HTTPS全称为Hypertext Transfer Protocol over Secure Socket Layer,及以安全为目标的HTTP通道,简单说就是HTTP的安全版本. ...

随机推荐

  1. java实现四则运算

    http://blog.csdn.net/lip009/article/details/7768258 我之前找到的一个大神写的?还没看懂

  2. 文本超过控件长度自动显示省略号的css

    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;

  3. kali入门

    第一章:入门kalilinux By:鬼尘 第一章基本上就是涵盖以下的主题: ·kali的发展简史 ·kali的一般用途 ·kali的下载与安装 ·kali的配置与更新 在本章结尾部分,我们还会介绍k ...

  4. Python的基本数据类型

    数据类型常用函数 type(a)-得到变量a的数据类型 isinstance(a,str)-判断a是否是字符串类型 Python中有五个标准数据类型 数字Number 字符串String 数组List ...

  5. Vue笔记整理——第一天

    1.为什么学习Vue? 提高开发效率. 提高效率历程:原生js——>jq(解决兼容性)——>前端模板引擎——>Vue.js(减少DOM操作,注重数据业务逻辑). 2.框架与库的区别? ...

  6. HARD FAULT

    程序陷在while(1)里面 解决办法 定点到发生死循环的位置 打开stack windows逐层查找发生死循环之前运行过的函数 导致原因 1 内存溢出或者访问越界,通常为数组或结构体访问越界.这个需 ...

  7. Python基础理论 - 函数

    函数是第一类对象:可以当做数据来传 1.  可以被引用 2.  可以作为函数参数 3.  可以作为函数返回值 4.  可以作为容器类型的元素 小例子: def func1(): print('func ...

  8. Javascript高级编程学习笔记(54)—— DOM2和DOM3(6)范围选择

    范围 为了让开发人员更加方便地控制页面“DOM2级遍历和范围”模块定义了“范围”接口 通过该接口开发人员可以选择文档中的一个区域,而不必考虑元素的界限 在常规操作不能有效地修改文档时,使用范围往往可以 ...

  9. 2.AsyncQueryHandler、内容提供者

    会话页面 Test :测试 public class Test extends AndroidTestCase{ public void test(){ Uri uri = Uri.parse(&qu ...

  10. 如何将自己的jar包发布到mavan中央仓库

    最近自己写了一个关于网关限流的插件,然后想着肯定会有很多兄弟也需要使用到,所以就想着把jar包上传到Maven的中央仓库上让大家可以更方便的使用 现在咱们来看一下这个流程是什么样的呢. 首先呢,你得去 ...