Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827666
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2017-01-12 17:42:24

DNS概述
DNS 是Domain Name System)的缩写,是一种层次结构的计算机IP和网络服务命名系统。它的作用是:把域名转换成为网络可以识别的 IP 地址,并告诉给客户端。

DNS查询过程
DNS的查询过程是指客户端是通过访问DNS服务器将一个IP地址转换为一个域名、或域名转换为一个IP地址的过程。
   1.按查询方式分类为:
      a.递归查询:当DNS服务器接收到查询请求时,要么做出查询成功响应,要么做出查询失败的响应。递归查询一般发生在DNS客户端与DNS服务器之间。
      b.迭代查询:DNS服务器根据自己的高速缓存或区域的数据,以最佳结果响应。如果DNS服务器无法解析,它可能返回一个指针,指针指向有下级域名的DNS服务器,继续该过程,直到找到拥有所查询名字的DNS服务器,或直到出错、超时为止。迭代查询一般发生在DNS服务器之间。
   2.按查询内容分为:
     a.正向查询;域名--》IP
     b.反向查询:IP----》域名

DNS在Linux下的安装(以CentOS7为例)

  1. DNS服务的安装
    安装DNS服务器
    yum install bind bind-chroot bind-utils
    安装DNS缓存服务
    yum install caching-nameserver
        image
  2. 配置DNS服务器
    a. 修改主配置文件/etc/named.conf
        image
    b. 修改配置文件/etc/named.rfc1912.zones增加新域定义 
        
     2N2@$H)N3CBQ~@E%DQGE[@Q 
        type类型有三种,它们分别是master,slave和hint,它们的含义分别是:
             Master:表示定义的是主域名服务器。
             slave:表示定义的是辅助域名服务器。
             hint:表示是互联网中根域名服务器。
        file用来指定存放DNS记录的文件
        allow-update定义是否允许客户主机或服务器自行更新DNS记录,上面指定的这个正向区域不允许更新DNS记录

    c.增加正向域名解析配置文件/var/named/named.docker
        $TTL    1D
        @        IN    SOA  ns.docker.freebody.com. root.docker.freebody.com.(
                                          0       ; serial
                                          1D      ; refresh
                                          1H      ; retry
                                          1W      ; expire
                                          3H )    ; minimum
                      NS      @
                      A       192.168.81.131
  3. K~6MS8(X(K636`T9EKK5$F2        
        正向解析数据文件内容说明:
             第一行是一个TTL设定,定义区域数据文件里面的各项记录的默认TTL值为86400 秒,缺少此行不影响使用,但是会出现警告信息。
             第二行﹐是一个SOA记录的设定,“@”代表相应的域名,也就是在named.conf中设定的zone,IN表示后面的数据使用的是INTERNET标准。SOA,全称是“Start Of Authority”的意思,表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,而且必须是所负责的zone中第一个“记录”。在SOA后面分别指定了这个区域的授权主机名称和管理者的信箱,特别注意,授权主机名和管理员信箱后面都要有一个“.”,而且授权主机名称必须能够在DNS设置中找到一个A记录(下面会讲到),由于“@”在区域数据文件中有其它含义,因此管理员信箱邮件地址中用“.”代替“@”符号。
    接下来包含在括弧中的5组数字是作为与slave服务器同步信息而设置的,含义如下:
                  Serial:表示配置文件的修改版本,格式是年月日加上修改的次数,每次修改这个配置文件时都应该修改这个数字,因为slave DNS进行信息同步时,会比较这个数值,如果这个数值比自身的数值大,那么就进行更新,否则忽略更新。注意,这个设置很重要,如果你在修改区域数据文件后,没有更新该值,那么所作的更改就不会更新到网上的其它DNS服务器。
                  refresh:用来设定slave DNS与Master DNS进行同步的间隔时间。
                  retry:如果slave DNS在进行更新失败后,要隔多久再进行重试。
                  expiry:设定slave DNS在与Master DNS同步失败后,多长时间清除对应的记录。
                  Minimum:这是默认的最小TTL值,如果在前面没有指定TTL值,就以这个为基准。
           以上的数字都是以秒为单位,但也可以用 H(小时)、D(天)、W(星期)来做单位。 
           A指针:定义了一个A记录,即域名到IP的记录。
    d.增加反向域名解析配置文件/var/named/named.docker.loopback 
        $TTL   1D
        @       IN      SOA    ns.docker.freebody.com. root.docker.freebody.com.(
                              0       ; serial
                              1D      ; refres
                              1H      ; retry
                              1W      ; expire
                              3H )    ; minimum
                NS      @
                PTR     ns.docker.freebody.com
                A       192.168.81.131

    ADQX(5RAUEKO1JK$G~32C2Y
         可以看出,基本结构与正向区域数据文件完全相同,只不过这里多出了一个PTR选项。PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息

  4. 检查配置文件
    可能使用named-checkconf命令检查配置文件的正确性,使用方法如下:
    named-checkconf/etc/named.conf
  5. 修改防火墙
    修改linux防火墙配置文件/etc/sysconfig/iptables增加以下配置期项,放通DNS服务的端口
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
    -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
    service iptables restart #重启防火墙,使规则生效
  6. 启动DNS server服务
    systemctl start named.service
  7. 测试DNS是否正常
    host docker.freebody.com
    E4JMM2~{B6LF}1RAE524Y}X
阅读(523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~