一、DNS理论知识

1.DNS服务器概念

DNS全称为Domain Name System,即域名系统,其作用就是将域名解析为IP地址。

2.DNS相关概念

分层式管理结构。DNS利用树形目录结构,将主机名的管理分配给不同的层级,这样可以实现更加快速的完成主机名的查找, 修改主机名解析时也更加方便。

域:

TLD:Top Level Domain (顶级域名)

组织域:.com, .org, .net, .edu,.gov,.mil,.cc,…

国家域:.cn, .us, .tw, .iq,…

反向域: .in-addr-arpa

Windows 10 安装Redis Windows 10 安装domain name_Windows 10 安装Redis


      完整的域名 www.baidu.com.

      . 根域 全球一共13个根域

      .com 超级域,一级域

      .baidu 二级域

      www 主机名

3.DNS服务器解析

资源记录:rr(resource record)
有类型的概念;用于此记录解析的属性

  • SOA记录:起始授权记录,一个区域文件只能有一个
  • A记录:用来指定主机名(或域名)对应的IP地址记录。(AAAA ipv6)
  • CNAME记录:别名解析(域名)
  • NS记录:域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
  • MX记录:邮件交换记录,指向邮件服务器
  • PTR记录:反向DNS记录,A记录的反向
  • TTL值:生存时间,DNS记录在DNS服务器上缓存时间

4.DNS服务器原理

  1. 客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
  2. 当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
  3. 如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
  4. 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
  5. 重复第四步,直到找到正确的纪录。
  6. 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

DNS的两种查询机制:递归和迭代

Windows 10 安装Redis Windows 10 安装domain name_Linux_02

5. DNS查询顺序

本地hosts文件

本地DNS缓存

本地DNS服务器

发起迭代查询

Windows 10 安装Redis Windows 10 安装domain name_Windows 10 安装Redis_03

6.DNS服务器端口 :53

7.DNS服务器类型

      主DNS服务器:为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。
      从DNS服务器 :主服务器DNS长期无应答,从服务器也会停止提供服务。
      主从区域之间的同步采用周期性检查+通知的机制,从服务器周期性的检查主服务器上的记录情况,一旦发现 修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录。
      缓存服务器:服务器本身不提供解析区域,只提供非权威应答。不负责解析,仅为加速,不需要注册
      转发服务器:当DNS服务器的解析区域(包括缓存)中无法为当前的请求提供权威应答时,将请求转发至其 它的DNS服务器,此时本地DNS服务器就是转发服务器。

二、实际操作

1.DNS服务器搭建,正反向解析

安装DNS服务器软件:
     yum install bind-chroot
     分为四步骤:
     0)#关闭防火墙和selinux
     1)#主配置文件:/etc/named.conf
     2)#区域配置文件:/etc//etc/named.rfc1912.zones:用来保存域名和IP地址对应关系 
     3)#数据配置文件目录/var/named,用来保存域名和IP地址对应关系的所在位置
  1. 关闭防火墙和selinux
    systemctl stop firewalld
    setenforce 0 (可用getenforce来查看selinux的状态)
  2. 修改主配置文件
vi /etc/named.conf
    options {
       #listen-on port 53 { any; };   #服务器上的所有IP地址可提供DNS域名解析
       #listen-on-v6 port 53 { ::1; };
       directory       "/var/named";
       dump-file       "/var/named/data/cache_dump.db";
       statistics-file "/var/named/data/named_stats.txt";
       memstatistics-file "/var/named/data/named_mem_stats.txt";
       #allow-query     { any; };        #允许所有人对本服务器发送DNS请求
       可以用 named-checkconf 命令检测named.conf文件是否出错
    }
  1. 修改区域配置文件
    #用来保存域名和IP地址对应关系的所在位置,在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类 型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区 域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。
vi /etc/named..rfc1912.zones
       zone "yuan.com" IN {
          type master;      #服务类型
          file "yuan.com.zone";      #域名与IP地址解析规则保存文件 
          allow-update { none; };    #允许哪些客户机动态更新解析信息 
       };  #正向解析
       
    zone "192.168.192.in-addr.arpa" IN {  #表示为192.168.192.0/24网段的反射解析区域  #此行IP反着写比如原为192.168.1.0>,在这则写为1.168.192
        type master;
       file "192.168.192.arpa";
       allow-update { none; }; 
 };  #反向解析
用 named-checkzone来检测zone文件的配置是否正确
  1. 数据配置文件目录
    从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息。
  • 配置正向解析数据文件
cd /var/named
    cp -a named.localhost yuan.com.zone 
    vi yuan.com.zone
         $TTL 1D #生存周期为1天 @       
         IN SOA  yuan.com. root.yuan.com.( #@当前的域名 #授权信息开始 #DNS区域的地址 #域名管理员邮箱不要用@符号  
                                          11      ; serial   #更新序列号                                        
                                          1D      ; refresh   #更新时间                                        
                                          1H      ; retry     #重试延时                                        
                                          1W      ; expire    #失效时间                                        
                                          3H )    ; minimum   #无效解析记录时间        
                       NS      ns.yuan.com.     #域名服务器记录 
          ns           IN A    192.168.192.133   #地址记录ns.yuan.com.        
                       IN MX 10 mail.yuan.com.  #邮箱交换记录 
          mail         IN A    192.168.192.133   #地址记录mail.yuan.com. 
          www          IN A    192.168.192.133   #地址记录www.yuan.com. 
          news         IN A    192.168.192.133   #地址记录news.yuan.com.
  • 配置反向解析数据文件
cd /var/named
    cp -a named.localhost yuan.com.zone 
    vi yuan.com.zone
                  $TTL 1D
                   @       IN SOA  yuan.com. root.yuan.com. (
                                         11      ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
                            NS      ns.yuan.com.
                   ns       A        192.168.192.133
                   133      PTR     ns.yuan.com.       #PTR为指针记录,仅用于反向解析中
                   133      PTR     mail.yuan.com.
                   133      PTR     www.yuan.com.
                   133      PTR     news.yuan.com.
  1. 启动服务及测试
systemctl restart named  #重启服务
      yum install bind-utils -y    #bind-utils为客户端 测试dns使用
      接下来修改网络配置文件,配置DNS客户
      vi /etc/resolv.conf
           search localdomain
          nameserver 192.168.192.133
          #注意:测试前必须先修改网络配置文件 防止出现如下错误:
      测试:
          nslookup
          > www.yuan.com
            Server:         192.168.192.133
            Address:        192.168.192.133#53
          > news.yuan.com 
            Server:         192.168.192.133
            Address:        192.168.192.133#53
           > mail.yuan.com
             Server:         192.168.192.133
            Address:        192.168.192.133#53
           > mail.yuan.com
              Server:         192.168.192.133
            Address:        192.168.192.133#53
     [root@localhost etc]# nslookup
        > server 192.168.192.133
         Default server: 192.168.192.133
         Address: 192.168.192.133#53

2.DNS主从服务器配置

1.Linux从服务器配置

#在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作 用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率
#测试需要两台服务器!主192.168.192.133,从192.168.192.223

  1. 修改主服务器的区域配置文件
    #在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序
vi /etc/named.rfc1912.zones 
               zone "yuan.com" IN { 
                       type master; 
                       file "yuan.com.zone"; 
                       allow-update { 192.168.192.223; }; 
               }; 
               zone "192.168.192.in-addr.arpa" IN { 
                       type master; file "192.168.192.arpa"; 
                       allow-update { 192.168.192.223; }; 
               }; 
       systemctl restart name  #重启服务
  1. 修改从服务器的区域配置文件
vi /etc/named.rfc1912.zones 
               zone "yuan.com" IN { 
                       type slave; 
                       masters { 192.168.192.133; };
                       file "slave/yuan.com.zone"; 
               }; 
               zone "192.168.192.in-addr.arpa" IN { 
                       type slave; 
                       masters { 192.168.192.133; };
                       file "slave/192.168.192.arpa"; 
              }; 
       systemctl restart name  #重启服务
  1. 检验解析结果
    当从服务器的DNS服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。随后修改从服务器的网络数,把DNS地址参数修改成192.168.192.133即可使用从服务器自身提供的DNS域名解析服务。最后就可以使用nslookup命令顺利看到解析结果了。
vi /etc/resolv.conf 
  search localdomain
  nameserver 192.168.192.133
  nameserver 192.168.192.223
cd /var/named/slaves/
ls
  192.168.192.arpa  yuan.com.zone
nslookup
  > www.yuan.com
    Server:         192.168.192.133
    Address:        192.168.163.133#53
  > 192.168.192.133
   Server:         192.168.192.133
   Address:        192.168.192.133#53

   133.192.168.192.in-addr.arpa    name = www.yuan.com.192.168.192.in-addr.arpa.
   133.192.168.192.in-addr.arpa    name = ns.yuan.com.
   133.192.168.192.in-addr.arpa    name = news.yuan.com.
2.Windows从服务器配置
  1. 修改主服务器的区域配置文件
vi /etc/named.rfc1912.zones
 zone"yuan.com" IN {       
 type master;       
 file "yuan.com.zone";       
 allow-update { 192.168.192.223;   192.168.192.129; };
 };
 zone "192.168.192.in-addr.arpa" IN {
 type master;  
 file "192.168.192.arpa";
 allow-update { 192.168.192.223; 192.168.192.129; };
 };
  1. Windows设置
  1. 安装DNS服务器
    “ 开始 ” -->” 管理工具 ” -->“ 服务器管理器 ”–>右击“ 角色 ” -->“ 添加角色 ”–>” 下一步
    ” -->选择“ DNS服务器 ”
  2. 新建正反向区域
    1)正向查找区域
    右击“ 正向查找区域 ” --> 新建区域” -->“ 下一步” -->选择“辅助区域 ” -->写入主DNS服务器域名 -->写入主DNS服务器的IP -->完成



    2)反向查找区域
    右击“ 反向查找区域 ” -->“新建区域 ” -->“ 下一步”选择“ 辅助区域 ” -->选择“IPv4 反向查找区域 ” -->写入主DNS服务器的IP前三部分 -->写入主DNS服务器IP -->完成
  1. Windows测试
    在主DNS服务器中重启服务:systemctl restart named
    在Windows中测试:
    开始–>cmd
C:\Users\asus>nslookup

>server 192.168.192.133  #设置默认服务器
默认服务器:[192.168.192.133]
Address:192.168.192.133
192.168.192.133

> 192.168.192.133
服务器:  [192.168.192.133]
Address:  192.168.192.133

名称:    news.yuan.com
Address:  192.168.192.133


> www. yuan.com
服务器:  [192.168.192.133]
Address:  192.168.192.133

名称:  www.yuan.com                                              
Address:  192.168.192.133

扩展测试:

1.停掉Linux的主从或主服务器
2.停掉Linux的从服务器