美文网首页
Linux-B-进阶-第2章-DNS域名服务器

Linux-B-进阶-第2章-DNS域名服务器

作者: sky92archangel | 来源:发表于2018-10-02 09:25 被阅读0次

    目录(持续更新)


    基础-第0章-安装
    基础-第1章-基本操作
    基础-第2章-磁盘及文件系统管理
    基础-第3章-获得帮助
    基础-第4章-用户及权限基础
    基础-第5章-网络基本配置
    基础-第6章-管道,重定向及文本处理
    基础-第7章-系统启动详解

    进阶-第1章-日志服务
    进阶-第2章-DNS域名服务器
    进阶-第3章-FTP文件共享服务
    进阶-第4章-NFS文件共享服务
    进阶-第5章-SMB文件共享服务
    进阶-第6章-WEB服务Apache篇
    进阶-第7章-电子邮件服务
    进阶-第8章-Linux服务基础及管理

    高级-第1章-LVM逻辑卷
    高级-第2章-高级权限ACL
    高级-第3章-RAID提升速度及冗余
    高级-第4章-高级网络-网卡绑定,子端口
    高级-第5章-SELinux安全系统基础
    高级-第6章-IPTable防火墙基础
    高级-第7章-Linux远程管理-SSH、VNC


    第2章 DNS域名服务器


    第一节 DNS基础及域名系统架构
    • 域名
      IP地址难记,所以使用域名管理

            www.google.com  www.linuxprobe.com
      
        严格域名最后还有一个 "."  但一般不写
      
        域名分为三部分用“.”分割
      
            -类型 表示域名的类型
            -域名 域名城
            -主机名    该域中的某台主机名称
      
            www.    linuxcast.  net
            主机名   域名        类型
      
    • DNS

        每个域名代表一个IP,而DNS就是用来在IP与域名之间进行转换服务
      
            www.linuxcast.net   61.1.1.1
        DNS(Domain Name System)服务有DNS服务器提供
      
        
            1.本机PC访问www.linucast.net    ------------------->    DNS服务器 61.134.1.4
                        DNS请求
      
            2.DNS服务器 61.134.1.4     ------------------->    本机PC        
                        www.linucast.net=61.1.1.1
      
            3.本机PC访问61.1.1.1        ------------------->    www.linucast.net:61.1.1.1网站
      
    • DNS客户端

            日常使用支持计算机一般都是作为一个DNS客户端使用
            应用程序,服务,进程通过操作系统底层的功能发起对DNS服务器的查询对指定域名解析
      
            linux中一般只用系统底层提供的gethostbyname()功能进行域名解析
      
            解析可以基本基于以下几种方式:
      
                - 文件    (/etc/hosts,/etc/networks)指定域名与IP的匹配
                - DNS   (/etc/resolv.conf 目前已经能手动修改)指定DNS服务器    (改用/etc/sysconfig/network-scripts/ifcfg-eth0)
                - NIS       已淘汰 
      
            可以通过配置文件/ect/nsswitch.conf控制查询顺序
            hosts:files dns files就是指查询host文件
      
    • DNS专用查询命令

            命令host可以用进行DNS查询
      
                host www.bilibili.com
      
            命令dig用于进行DNS查询,输出较为详细的信息
      
                dig www.bilibili.com
      
            命令host,dig都不会使用/ect/nsswitch.conf的配置,只会通过/etc/resolv.conf进行DNS查询
      
        DNS查询
            DNS是树状结构,查询是根据域名从右到左查询,每一级有一个独立或多个服务器
      
            www.bilibili.com.
      
                    .               root DNS Server     根服务器(返回顶级域名服务器位置)
            com net org cn  gov ... Top Level Server    顶级域名服务器(返回授权服务器位置)
            bilibili                    Authoritative Server:bilibili.com   授权服务器(返回来源服务器位置)
            www mail    ftp ...         Resource Recaord:www.bilibili.com   来源服务器(返回网站服务位置)
      
            dig +trace www.bilibili.com (该命令+trace存疑)
      
    • DNS查询类型

            递归查询
      
            client  ---->   当地DNS服务器    <------->   "."
                    当地DNS服务器    <------->   "net"
                    当地DNS服务器    <------->   "bilibili.com"  
            client  <----   当地DNS服务器                        
      
            循环查询 逐级返回  每次消耗大量缓存
      
            client ---->    当地DNS服务器    ------->    "."
                    "."     ------->    "net"
                    "net"       ------->    "bilibili.com"                          
                    "net"       <-------    "bilibili.com"
                    "."     <-------    "net"
                    当地DNS服务器    <-------    "."
            client  <----   当地DNS服务器
      
            实际应用中两者都会使用
      
    • 资源记录

            在DNS上,信息通过一个叫资源里路的格式保存
            
            资源记录
      
                - NAME      名字
                - CLASS     通常是IN  (internet)
                - TYPE  类型  A为IPV4地址    AAAA为IPV6地址 CNAME别名,名称对等 MX为邮件记录
                - RDATA 信息内容
      
            例:
      
            NAME        CLASS   TYPE    RDATA
      
            www     IN  A   192.168.1.1
            mail        IN  A   192.168.1.2 
            server1     IN  CNAME   www
                    IN  MX 10   mail.bilibili.com
      
    • 资源记录类型

            DNS的资源记录可以记录很多类型的资源,不仅仅是IP地址,
            常见的资源记录 
            
            A       IPV4地址
            AAAA        IPV6地址
            MX      邮件记录
            CNAME       别名
            PTR     指针(逆向解析)
            SRV     服务资源
      
    • DNS服务器类型

            Primary DNS Server (Master)
            一个域的主服保存该域的zone配置文件,域内所有配置更改都在这里进行
            Secondary DNS Server (Slave)
            从主服务器抓取配置文件,作为主服务的冗余负载
            Caching only Server
            DNS服务器缓存服务不负责任和zone文件,仅仅依靠缓存为客户端提供服务,常用于负载均衡及加速访问使用
      
    • ZONE
      在DNS服中一个域用过一个zone文件保存该域信息

            zone文件格式标准化配置如下:
      
            STTL ID
            @IN SOA     @rname.invalid.(
                        0   ;serial     配置文件的修改次数
                        1D  ;refresh    刷新时间 1D就是1DAY
                        1H  ;retry      重试时间 1H即使1HOUR
                        1W  ;expire     
                        3H) ;minimum
                NS  @
                MX 10       mail.linuxcast.net      定义邮件服务
            www IN A    192.168.1.100           定义站点服位置
            mail    IN A    192.168.1.200           定义邮件服务位置
      
    • 高级查询

            dig -t mx qq.com
            dig -x www.bilibili.com
            dig -t soa bilibili.com
      

    第二节 BIND服务基础及域主服务器配置
    • BIND

        现在使用的最广泛的DNS服务器软件BIND
        最早为伯克利大学学生编写
        现在最新为9
        
        BIND支持现今绝大多数OS
      
        BIND服务的名称为named
      
        我们可以通过以下命令安装BIND
      
            yum install -y bind bind-chroot bind-utils
        
        DNS默认使用UDP,TCP协议,默认使用端口53(domain),953(mdc)
      
    • BIND配置文件

            配置文件主要位置:
            
                /etc/named.conf -BIND服务主配置文件
            
                /var/named/ -zone文件
        
            如果安装了bind-chroot,BIND会被封装到一个伪根目录,配置文件的位置变为:
      
                /var/named/chroot/etc/named.conf
      
                /var/named/chroot/var/named/    
      
            chroot是通过相关巍峨见封装在一个伪根目录内,已达到安全防护的目的,
            一旦该程序被攻破,只能访问伪根目录的内容,而不是真实的根目录
      
    • BIND模板配置文件

            在不同于其他服务,BIND在安装后不会有任何预制的配置文件,
            但是在BIDN文档文件夹    (/usr/share/doc/bind-9.9.4)
            BIND为我们提供了配置文件模板,可以直接拷贝过来:
            
                cp -rv /usr/share/doc/bind-9.9.4/sample/ect/*  /var/named/chroot/etc/
                cp -rv /usr/share/doc/bind-9.9.4/sample/var/*  /var/named/chroot/var/
      
            示例中的主配置文件内容较多,
            实验环境下我们可以删减不需要的内容,配置named.conf
            最小化配置如下:
        
                options{
                    listen-on port 53   {127.0.0.1;};
                    directory       "/var/named";           
                };
            或者
                options{
                    directory       "/var/named";   
                    listen-on port 53   {127.0.0.1;};
                    listen-on-v6 port 53    {127.0.0.1;};       
                };
            
            注:ubuntu中该代码在named.conf.options文件中
      
    • 域主服务器配置

            一个域的主服务器是这个域的信息权威服务器,所有这个域的信息都是由域的主服务器控制,
            配置一个域的主服务器需要一下几个步骤
      
            1.在bind的主配置文件中添加该域的定义
        
            2.在/var/named/chroot/var/named中创建该域的zone信息
      
            3.编辑zone文件,添加需要的信息
      
            4.启动bind服务或使bind刷新配置
      
            5.使用host或dig命令检测域信息是否正常             
      
    • 配置域主服务器-1

            在bind的主配置文件中添加域bilibili.com的定义
      
            配置文件位置:
      
                /var/named/chroot/etc/named.conf
      
                    options {
                    directory "/var/named"; 
                    listen-on port 53   { 127.0.0.1; };
                    listen-on-v6 port 53    { ::1; };
                    };
      
      
            在主配置文件中添加一行域的zone定义:(ubuntu中代码参考在named.conf.default-zones文件)
      
                zone"bilibili.com"{
                    type master
                    file"bilibili.com.zone"     文件名可以随便,ubuntu中使用绝对路径形式(由于centos中上面的option已定义了查找目录)
                };
      
    • 配置域主服务器-2

            为定义的域添加zone配置文件
      
            zone文件位置
      
                /var/named/chroot/var/named/bilibili.com.zone
      
            zone文件内容
      
                zone文件内容比较复杂,手工输入很容易出错,所以一般使用默认的named.localhost配置文件作为模板
      
                    cp named.localhost bilibili.com.zone
      
                添加一个资源记录(RR)
      
                    IN MX 10    mail.bilibili.com
                www IN A    192.168.1.111
                mail    IN A    192.168.1.222
      
      
                确保配置文件都有读权限
      
    • 配置域主服务器-3

            1.启动bind服务或刷新配置
      
                service named start
                service named reload
      
            2.将本机的DNS配置指向本机
      
                /etc/resolv.conf    (debian系不能单纯修改该文件 需要修改网卡配置或者找到/etc/resolvconf/resolv.conf.d/base文件修改)
                nameserver 127.0.0.1
      
            3.使用命令host或dig验证DNS配置
      
                host    www.bilibili.com
                dig     www.bilibili.com    
      
    • 错误排查

        DNS语法复杂晦涩,容易出错,bind提供了语法检查命令
      
            命令named-checkconf 检查主配置文件
        
                named-checkconf /var/named/chroot/etc/named.conf
                无返回 则无错误
      
            命令named-checkzone 检查zone配置文件
                
                named-checkzone bilibili.com bilibili.com.zone
      

    第三节 BIND服务从服务器与缓存服务器配置
    • 域从服务器

            一个域从服务器为了备份负载均衡使用,所有DNS信息由主服务器提供
            配置如下
      
            1.在bind的主配置文件爱你中添加该域的定义
      
            2.启动bind服务或者bind刷新配置
      
            3.查看域的zone文件是否正常抓到/var/named/slaves
      
            4.使用host或者dig命令检测域信息是否正常
      
    • 配置域从服务器-1

            在bind的主配置文件中添加从域bilibili.com的配置信息
      
            配置文件位置
      
                /var/named/chroot/etc/named.conf
      
            在主配置文件中添加一行域的zone定义
      
                zone"bilibili.com"{
                    type slave
                    masters{192.168.1.1;};
                    file"slaves/linuxcast.net.zone";
                };
      
    • 配置域从服务器-2

            1.重启bind服务或刷新配置
      
                service named start
                service named reload
      
            2.查看zone文件是否正常抓取下来
      
                vim /var/named/chroot/var/named/slaves/bilibili.com.zone
      
            3.将本机的DNS指向自己
      
                vim /etc/resolv.conf
      
                    nameserver 127.0.0.1
      
            4.使用命令host或dig验证DNS配置
      
                host    www.bilibili.com
                dig www.bilibili.com
      
    • 配置缓存服务器

            一个DNS服务可以既不是主也不是从服务
            接到DNS后缓存服务会递归查询解析,会将结果缓存
            这样的服务称为CACHING NAME SERVER
      
            通常在局域网中配置缓存是为了加速访问网络
      
            也可为缓存服务配置一个上游DNS服务器地址,缓存服务器可以给客户提供一个上游DNS的地址
      
                forwarders{218.0.0.1;} ;  (上游DNS服务器地址)
      
            也可以通过以下选项让服务器转发所有dns到forwarders服务器:
      
                forward only;
      

    相关文章

      网友评论

          本文标题:Linux-B-进阶-第2章-DNS域名服务器

          本文链接:https://www.haomeiwen.com/subject/gcvooftx.html