zoukankan      html  css  js  c++  java
  • DNS基本概念

    DNS(Domain Name System,域名系统)

    早期
    早期的域名解析是在一个文件中(hosts)记录所有的主机名和IP地址,并且不重复;通过检索host文件即可完成主机名的解析,很显然这种方法存不了多少主机名和IP地址,硬盘就得爆。

    DNS是互联网上最核心的带层级的分布式数据库系统,他负责域名和IP地址之间的转换以及宣告邮件路由等信息,使得基于域名提供服务成为可能。

    DNS的组成部分

    域名服务器(Name Server)
    提供域名解析的软件,一般监听UDP,TCP的53端口,例如Linux系统的BIND和Windows server中集成的DNS服务器组件,根据用途分为:
    (1)权威域名服务器
    负责授权域下的域名解析服务,又上级权威域名服务器使用NS记录进行授权。权威服务器有三种:
    1.1根域名服务器(Root Name Server)
    最上层的权威域名服务器,负责对.com,.cn,.org等顶级域名的向下授权,目前世界上有十三组这样的根域名服务器:

    主机名 IP地址 管理机构
    1 a.root-servers.net 198.41.0.4 VeriSign, Inc.
    2 b.root-servers.net 192.228.79 University of Southern California (ISI)
    3 c.root-servers.net 192.33.4.12 Cogent Communications
    4 d.root-servers.net 199.7.91.13 University of Maryland
    5 e.root-servers.net 192.203.230.10 NASA (Ames Research Center)
    6 f.root-servers.net 192.5.5.241 Internet Systems Consortium, Inc.
    7 g.root-servers.net 192.112.36.4 US Department of Defense (NIC)
    8 h.root-servers.net 198.97.190.53 US Army (Research Lab)
    9 i.root-servers.net 192.36.148.17 Netnod
    10 j.root-servers.net 192.58.128.30 VeriSign, Inc.
    11 k.root-servers.net 193.0.14.129 RIPE NCC
    12 l.root-servers.net 199.7.83.42 ICANN
    13 m.root-servers.net 202.12.27.33 WIDE Project

    1.2顶级域名服务器(Top Level Name Server)
    顶级域名服务器分为两大类:

    通用顶级域名服务器(Generic Top Level Domain,GTLD),例如:.com,.org等授权的域名服务器。
    国家顶级域名服务器(Country Code Top Level Domain,CCTLD),例如:.uk,.cun,.jp等授权的域名服务器。

    获取完整的顶级域名列表可以访问顶级域名服务器列表

    1.3二级域名服务器(Second Level Name Server)
    服务于具体域名的解析,二级域名一般是指域名注册人选择使用的网上名称,如“yahoo.com”
    三者关系

    . 根域名
    .cn 顶级域名
    .com.cn 二级域名

    (2)缓存域名服务器(Caching Name Server)
    负责接收接受解析器发过来的dns请求,通过依次查询根域名服务器-顶级域服务器-二级域名服务器来获取DNS的解析条目。同时根据TTL(Time To Live,存活时间)进行缓存。一般有这样三个用途:

    用在企业内部,作为局域网的DNS服务器,避免内部用户访问外部非授权的DNS服务器,避免DNS污染。
    用于电信等运营商为租户提供域名解析服务。
    用于开放DNS解析服务。如谷歌的8.8.8.8 , Norton安全DNS 199.85.126.30以及国内的114.114.114.114

    (3)转发域名服务器(Forwarding Name Server)
    负责接收解析器发送过来的DNS请求,转发给指定的上级域名服务器获得DNS的解析条目,然后把响应结果发送给解析器。与缓存域名服务器不同,这类服务器不进行任何缓存,只做转发。

    解析器(Resolver)
    访问域名服务器的客户端,负责解析从域名服务器获得的响应,向调用它的应用返回IP地址或者别名等信息,例如Linux系统中的gethostbyname()函数,Windows中的nslookup等

    递归查询

    递归查询


    就是指上图中本地域名服务器,解析器向他发送解析请求,由它代替解析器依次查询根域名服务器,顶级域名服务器,二级域名服务器来获得DNS的解析条目,再将响应结果发送给解析器。
    由此我们可以看出,递归查询对权威服务器的负担是非常大的。只要有DNS请求就走权威服务器,每时每刻都有人访问,会造成发出大的数据流量,因此在权威服务器上,需要禁止递归查询,
    在BIND中配置禁止递归查询的指令如下:

      recursion no;
    

    迭代查询

    当DNS服务器收到请求后,如果没有找到需要的数据,该DNS服务器就会告诉客户机另外一台DNS服务器的IP地址,然后再由客户机向另一台DNS服务器发送请求,如果还是没有找到那么就再发一台DNS服务器的地址往复循环,知道找到为止。

  • 相关阅读:
    什么叫大数据,与云计算有何关系
    未来机器时代 马云担心的居然是男性找不到工作
    浏览器原生登陆验证实现
    eclipse-java-style.xml
    tomcat和应用集成
    简单springboot及springboot cloud环境搭建
    maven module
    maven scope
    java ReentrantLock Condition
    抓取动态网页
  • 原文地址:https://www.cnblogs.com/hxlinux/p/12972322.html
Copyright © 2011-2022 走看看