DNS & Bind (一)

DNS and BIND

---------------  DNS:域名系统

        

一.DNS的发展

            DNS工作在应用层,同时监听UDP和TCP的53号端口

            UDP响应查询请求

            TCP响应辖区服务的

        

            每一个系统里的/etc/目录下都有一个hosts文件,它实现了对DNS服务器的最直接配置。最初的时候里面都有一个你想访问的地方和里面的对应的关系。但是随着网络的增大,host文件的管理和维护变得非常麻烦。这时候,国际名称地址分配组织想出了一个方法。他们成立一个机构,专门用于地址的分派,他们定期的通过更新ftp服务器里的hosts文件,将所有的网站都在互联网上铺开了。但是,随着互联网的爆炸式发展。hosts文件每天几乎每分钟都需要更改,这就极大的增加了服务人员的困难程度,也使得hosts文件的体积变得异常庞大。这就直接催生了DNS协议的出现。

            DNS协议是对host文件的扩展,它只不过对host文件进行了分片。所有人在自己的服务器上建立一个库,名称解析库。当一旦发现有人要访问一个域名的时候,这个库会先到DNS上查找一下这个域名对应的ip,通过这种分配的方式,极大的减轻了hosts文件的压力。但是,这样还是不行,互联网应用的发展速度太快。于是DNS开启了自己的分层管理系统。就像Linux文件系统结构一样,自上而下的树状分层结构。

最上面的叫“.”根。根下又分出许多域名。比如”.com”,”.net”,”.org”,”.cn”等等,在每一个域名下,又伸出了二级域比如”.baidu”,”.sina”,”.sohu”这样的分支,从这里的分支中又分出了我们的服务器名,比如www”,”bbs”,”blog”。这样,一个服务器的名字就可以自下而上的一层层的伸展,最后成为了比如:www.baidu.com

 

二.那么DNS如何帮助我们解析地址呢?

                  DNS的查询有两种类型:

                   a递归查询(recursive)

                                     A去查询的时候,必须要一次就能知道答案

                                     A去问B,B不知道,但是B知道C知道,所以B从C那获得了答案并且告诉了A

                   2.迭代查询

                                     A去查询答案的时候,查询了很多次才终于查询出来的方式

                                     A去问B,B不知道,但是B告诉A,C知道,所以A又去问C,C将答案告诉了A

                           

         在互联网上,用户一般是递归的方式向服务器查询的。作为服务器,在互联网上的查询永远是迭代的。所以,一般在互联网上应用是两段式的。前半段递归,后半段迭代。之所以DNS查询的时候不进行递归,是因为递归方式非常消耗资源,所以一般只对本地的客户端递归。

 

三.DNS的解析方式

                  正向解析: FQDN→IP

                  反向解析: IP→FQDN

        

解析的过程又是如何实现的呢?

首先:在刚才那个树状的层次结构中,永远是上级知道下级,下级永远不知道上级在哪,但是只要是DNS服务器,它永远知道根在哪个地方。这个是必须知道的。所以当www.baidu.com上的用户去找 www.sina.com的时候,baidu的DNS会直接找到根,根告诉DNS自己并不知道www.sina.com在哪,但是.com这个域知道,于是DNS去找.com,这时.com告诉它.hp可能知道,于是DNS去找.hp。最终在.hp的找到了www这个服务器名,于是就完成了,www.baidu.com向www.hp.com查询和解析的过程。

        

                  小扩展:全球一共有13个根节点,一个在日本,一个在欧洲,其他的都在美国。

                  而我们每次查询都绕道美国的话,就太慢了,所以我们国内都有镜像。

        

        

四.主机的记录类型。

主机为了标示自己功能的不同,有一个“记录类型”的东西

                  那么什么是记录呢?

                           DNS实际上是一个数据库,它自己里面包含了各种一个个的对应关系。

                           虽然都是对应关系,但是里面的记录是不一样的。

                  比较常见的记录类型:

                           1.FQDN --> IP               :  A记录(Address)

                           2.IP --> FQDN               :  指针记录(PTR)

                           3.DOMAIN --> SERVER  :  NS (Name Server)

                           4.DOMAIN --> MTA         :  MX (Mail eXchanger)用于标示一个域的邮件域名是谁的

                           5.nickname -- > name   :  CNAME 记录类型(正式名称记录类型)

                           6.                                       : SOA (Start Of Authority)用于标明当前域的起始授权域类型

                                                                                             一般标示一个域的主域名服务器是谁的。

        

五.DNS服务器的类型:

a.主名称服务器和从名称服务器

         为了保证服务的可用性,一般在一个域内,我们配置一个主政服务器,多个辅政服务器。

         这就意味着,我们有两台甚至多台DNS服务器,每一台都能清楚的知道这个域内所有的主机名。但是如果当有一个新的主机获得了域名,则会在主服务器中(主政)创建/删除。其他的辅政的服务器,为了保证自己的信息跟主政的服务器一致,它会每过一段时间就去主政服务器上复制一份。这种保证同步的方式叫:区域传送。

                   axfr  完全区域传送 将所有的信息都传送

                   ixfr   增量区域传送 只将新增的信息都传送

                  

         一般来讲主服务器会主动通知从服务器来同步数据的。每当有新的东西进入的时候,就会主动通知。从服务器就立刻同步,而不根据设定的同步时间。这样就直接避免了主服务器当机而从服务器没有获得更新的缺憾。

 

b.缓存服务器

                  加速访问,还能节约带宽

                  当第一个人访问过域名之后,第二个人如果再次访问,则直接从缓存中读取。而根本没有真正的去连接

        

c.转发器:

                  实现内外防火墙隔离的两台DNS服务器之间交互的。

        

六.一个用户想查询www.a.org的时候是如何工作的呢?

1.先去查找/etc/host文件,看看host文件中有没有对应的解析记录

2.查找本地的当前这个主机上的DNS缓存

3.通过一个客户端工具去查找第一个DNS服务器,

4.DNS服务器又要查找Server的缓存

5.如果没有缓存,则查看是否是自己解析的域。

                   有则联系本地的域

                   将结果返回给用户        

6.之后找根……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值