zoukankan      html  css  js  c++  java
  • DNS服务-了解篇

    简介

    DNS是用来名字解析的,名字解析成IP地址,IP地址解析成名字,正反操作,有服务器端和客户端即 S/C

    DNS是应用层协议,基于UDP/53、TCP/53端口,缺一不可

    分为正向解析和反向解析/递归查询、迭代查询

    注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

     

    名称解析:主机名解析

    把一种名称转换为另一种名称的过程

    根据用户提供的名称,去查询解析库,以得到另一种名称

    hosts:文本文件

    用户自定义了对应的解析列表即要解析的FQDN与IP地址对应关系

    有时候hosts很好的解决了DNS服务器访问不了的情况

    如:某个域所在的权威DNS服务器出问题了,网站图片不显示等,这时候在hosts文本里写上对应的FQDN和IP地址就可。

    备注:FQDN也就是我们所说的网址,如www.xxx.com

              如果在本机定义了hosts文本则优先本列表,本列表没有再去DNS库查询

    递归查询

    用户向第一个DNS服务发请求,DNS收到后,如果它这有直接的结果就直接给你,如果没有就会向根DNS服务询问,层层询问直到问道结果返回给你,负责到底

    迭代查询

    上述过程中去问根,根给你推荐别人,你去问它,这就是迭代查询,不会负责到底

    DNS域结构图

    image

    备注:如 www.xxx.com 

             www:可以是主机或别名

             xxx.com:是域名

     

    DNS服务器类型

    主DNS服务器
    从DNS服务器
    缓存DNS服务器(转发器)

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

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

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

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

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

    过期时长:从服务器联系不到主服务器时,多久后停止服务

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

    Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

    解析答案:

    肯定答案:

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

    权威答案:你请求的dns服务器正好是负责这个链接域的dns

    非权威答案:dns服务器问别人,别人告诉它的,有时候会是假的,比如国外某些网站访问不了,就是dns告诉给你一个错误的答案,不让你访问(DNS的污染,信息篡改了)

    备注:名字解析成不成功和能不能上网是两码事

     

    资源记录

    区域解析库:由众多RR组成:
    资源记录:Resource Record, RR
    记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX


    SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,
    必须位于解析库的第一条记录
    A:internet Address,作用,FQDN --> IP
    AAAA: FQDN --> IPv6
    PTR:PoinTeR,IP --> FQDN
    NS:Name Server,专用于标明当前区域的DNS服务器
    CNAME:Canonical Name,别名记录
    MX:Mail eXchanger,邮件交换器

     

    资源记录定义的格式:

    语法:

    name(名称) [TTL](生命期) IN(intnet记录) rr_type(资源记录的类型)value(值)

       rr_type类型:有 A(ipv4)、 AAAA(ipv6)、SOA、NS(这两种最重要)

    注意:

    (1) TTL可从全局继承

    (2) @可用于引用当前区域的名字

    (3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询

    方式响应

    (4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值

    进行定义;此仅表示通过多个不同的名字可以找到同一个主机

     

    记录介绍

    image

    MX记录:邮件交换器

    clipboard

    注意:
    (1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

     

    DNS服务器 bind配置文件说明

    clipboard

    clipboard

    named.conf主配置文件说明

    //  
    // named.conf  
    //  
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS  
    // server as a caching only nameserver (as a localhost DNS resolver only).  
    //  
    // See /usr/share/doc/bind*/sample/ for example named configuration files.  
    //  
      
    options {  // 定义全局变量  
            listen-on port 53 { 127.0.0.1; }; // ipv4 监听端口  
            listen-on-v6 port 53 { ::1; };    // ipv6 监听端口  
            directory       "/var/named";     // 制定装载zone区域文件的目录 
            dump-file       "/var/named/data/cache_dump.db";    // cache  
            statistics-file "/var/named/data/named_stats.txt";  // statistics  
            memstatistics-file "/var/named/data/named_mem_stats.txt";  
            allow-query     { localhost; };   // 允许访问列表  
            recursion yes; //递归查询 
      
            dnssec-enable yes;  //DNS确保应答报文的完整性
            dnssec-validation yes;  
            dnssec-lookaside auto;  
      
            /* Path to ISC DLV key */  
            bindkeys-file "/etc/named.iscdlv.key";  
    }; // "}"后也得分号结束  
      
    logging {  
            channel default_debug {  
                    file "data/named.run";  
                    severity dynamic;  
            };  
    };  
      
    zone "." IN {            // "."代表根区域  
            type hint;       // 根区域的类型就为hint  
            file "named.ca"; // 指定zone文件,默认已经生成  
    };  
      
    include "/etc/named.rfc1912.zones";  //存放自定义的区域文件
    

    备注:配置文件总体来说分为三大块选项、日志、区域

     

  • 相关阅读:
    How to Set Up an Rsync Daemon on Your Linux Server
    VMware workstation 设定开机引导等待时间
    Debian Buster Nginx 布署 Brophp 项目(类 Thinkphp)
    Laravel
    Debian 利用 iso 镜像完全离线更新 apt-cdrom
    Debian 采用 iso 镜像作为 apt 源
    Laravel中用GuzzleHttp
    Nginx详解(正向代理、反向代理、负载均衡原理)
    Debian Buster 配置 Laravel 运行环境(nginx + redis + supervisor)
    How to Install and Configure Bind 9 (DNS Server) on Ubuntu / Debian System
  • 原文地址:https://www.cnblogs.com/xsuid/p/9354531.html
Copyright © 2011-2022 走看看