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


目录(持续更新)


基础-第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域名服务器)