zoukankan      html  css  js  c++  java
  • 01--DNS服务器1

    DNS介绍

      Domian Name Service

      这是一种协议规范,属于C/S架构,在C/S架构下我们需要套接字的方式来访问这个服务,所以,服务器端必须要拥有一个服务器端口;

      所以,DNS服务使用的端口为 53/tcp 和 53/udp;其中 53/tcp 端口在主从服务器进行解析库同步的时候使用,53/udp 端口在做USL解释的时候使用;

    现有DNS架构介绍

      现在又DNS架构由美国 IANA 组织来进行维护,IANA 组织同时也维护IP地址;

      本地域名--hosts文件

        在网络发展之初,我们的网站地址与 域名 之间的对应关系都存放在本地;这时候的网站主机并不多,这时候,添加一台主机,我们只需要将该主机和域名对应关系添加到本地hosts文件即可;

        windows的hosts文件:

          C:WindowsSystem32driversetchosts

    1.2.3.4    www.test.com

          添加这个对应关系在最后后面即可

        linux的hosts文件:

          /etc/hosts

          同windows配置

        这样windows和linux就可以实现本地解析了;

      现有dns架构构成过程

        但是,随着互联网中网站服务器的添加,本地hosts添加的数量越来越多,这时候本地再来维护这个庞大的解析库关系,就变得很困难,并且查找起来也异常困难;

        此时,IANA机构提供了一台性能强大的公网服务器,来维护这个数据库,这时候,主机要做域名解析就可以直接找到这台服务器,从它上面获取解析结果;

        但是,数量依然在不停的增加,查找这些解析库成为了一个比较困难的问题;这时候我们IANA机构就引入了分布式的想法,将解析任务交给了它的下级服务器,而这些服务器就是我们的顶级域名服务器;这些服务器每一台服务器负责一个域名区域;

        而客户解析,因为查找麻烦的原因,也不自己来查找域名,而是将这个工作交给了固定的DNS服务器,而自己直接找DNS服务器那去解析结果;

        这种架构,就是我们现有的解析架构了;

      dns树形结构介绍

        根据刚才的描述,我们有了各自的顶级域名服务器

          顶级域名(top level domain-tld)在最初的时候只有7个,包括:

            .com  .edu  .mil  .gov  .net   .org  .int

          而随着时间的推移,IANA开放了所有顶级域名服务器;一般情况下,顶级域名服务器在现有的互联网环境下可以更具三点来划分,包括组织域、国家域、反向域;

        在根域名下就是我们的顶级域名服务器;此时,引入了一个概念--域domian;

        每一个域名管理一个区域内部的服务器;

         所有的域名都是在根下(.),之后则是顶级域名,由根域名服务器进行管理,之后则是一级域名服务器,由顶级域名服务器进行管理;

        公司内部的DNS服务器,则向上级域名服务器进行注册,则此域名服务器,就能解析所有在该区域内的主机(例如.agongsi下的ns1 ns2 www三个主机)

    DNS解析过程

      我们在了解域名结构后,之后我们就需要知道在互联网上如何进行域名解析;

      域名查找方式

        默认情况下我们更具区域来进行域名解析;PC在请求域名的时候会直接找到自己的DNS服务器,再由该DNS服务区代理PC去进行这个地址的解析;

        首先就会来到根域名服务器,来进行查找,根域名服务器则会告诉DNS服务器该域名所在的顶级域名区域,例如 .com;

        收到该回复后,DNS服务器则会再去询问顶级域名服务器。这时候,.com 就会回复它的下级域名服务器,例如 .agongsi 的域名给DNS服务器;

        这时候,DNS就去询问 .agongsi 这个区域的负责人,也就是 ns 服务器,这时候就能回复得到对应的IP地址;

        最后,将这个IP地址放回给PC;

        递归查找:

          其中,PC只需要指定dns服务器,向该dns服务器发起解析请求,就能得到解析结果,这个过程我们叫做递归查找;

        迭代查找

          其中,DNS服务器依次去查找了根域名服务器、顶级域名服务器、公司域名服务器;最后才能得到正确的解析结果,这个过程我们叫做迭代查找;

          可知,迭代查找是非常消耗资源的;

        【注意:除了查找DNS外,都有的过程中都会进行DNS解析名称的缓存,这个我们之后再说】

      使用互联网DNS解析域名

        此时,我们要注意一个问题,再上图中,PC所连接的DNS也是公司内部的DNS服务器,也就是说,这台DNS服务器除了为PC做解析以外,同时也可以承当为互联网上其他PC解析本地服务器的责任;

        同理,为了方便我们上网,我们内部并不需要去搭建DNS服务器,可以直接指定互联网上的DNS服务器,让运营商的DNS服务器来为我们进行解析也可以;

        【注意,这里只有一个问题,就是权限问题,我们不可能让每个人公司都去提供一个类似于8.8.8.8的DNS服务器,用来给别人进行解析,所以,我们就需要对DNS做权限管理,这个问题我们之后再说明】

      解析类型

        常见的解析类型由两种,这个在两个不同的区域来实现解析的;所以,在配置的时候,我们使用两个zone来配置;

        正向解析

          Name -->  IP 将域名解析为IP地址

        反向解析

          IP --> Name 将IP解析为 name ;这个技术是以线索提示的方式来实现,这是一种较为复杂的问题,在互联网上大多数的域名都无法行进行反向解析;但是,方向解析是很重要的,例如:它可以用来验证对方有些服务器是否为来及邮件服务器;

    DNS服务器的类型

      根据DNS服务器的解析过程,我们由多种DNS服务器,主要包括主备dns服务器,缓存服务器,以及DNS转发器;

      主DNS服务器/(从)辅助DNS服务器

    首先,主DNS的解析库是由管理员直接手动维护;
      辅助DNS服务器:从主DNS服务器或其他的从DNS服务器那里“复制”(区域传递)一份解析库;
    辅助DNS服务器的解析库的来源则是从主服务器同步而来的,从而避免了人为的失误所导致的解析库不一致的问题;复制过程过要考虑主DNS服务器不断变化的问题;我们通过序列号来确定;
    序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列号递增;
    同步过程又分为两种,区域传递:
    1、全量传送:传递整个解析库
    2、增量传送:传递解析库变化的那个部分内容;
    同步时间间隔--刷新时间:从服务器从主服务器请求同步解析库的时间间隔;
    重试时长:从服务器从主服务器请求同步解析库失败时,再次尝试时间间隔;
    过期时长:从服务器始终联系不到主服务器时,过多久后就放弃从服务器角度,停止提供服务;
    通知机制:主服务器要求辅助服务器主动向服务器及逆行解析库同步
    【注意:主从服务器是同时工作的,都会接受请求,所以是可以基于主从服务器进行负载分担的;】

      缓存DNS服务器

    为了提高解析速度,我通过本地缓存的方式来实现本地解析;
    同时,缓存的域名解析条目会被服务器拿来,随时比对其原本的域名服务器上的域名条目,这就是通过比较hash值的方式,保证缓存的域名条目的正确性;
    通过公共缓存的方式来实现上述解析方式;
    本地DNS服务器实现本地域名缓存;
    PC1访问网站的缓存,保持在本地缓存;
    这样就更加提高了服务器的解析速度。

      转发器

        本地DNS服务器直接指定互联网dns服务器,帮助进行DNS条目的解析;

        由图可知,转换器上需要指定公网DNS,这时候所有的DNS请求都会由公网DNS为我们解析;

  • 相关阅读:
    [置顶] windows player,wzplayerV2 for windows
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    编译cegcc 0.59.1
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    windows player,wzplayerV2 for windows(20140416)更新
    编译cegcc 0.59.1
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10947022.html
Copyright © 2011-2022 走看看