DNS

这里都以我本机的实验为例

正向解析:就是从主机名到IP的解析过程

先在工作目录/var/named/创建一个区域数据文件

以zcylinux.io域为例:vim
/var/named/zcylinux.io.zone

$TTL  600     #设置全局变量TTL的值为600s

zcylinux.io.  IN    SOA   zcylinux.io.  nsadmin.zcylinux.io.   (

        2017052801

        1H

        1M

        1W

        1D )

 zcylinux.io.   IN    NS  dns.zcylinux.io. 表示zcylinux.io域中的DNS服务器是哪个主机

dns.zcylinux.io.  IN    A   172.16.250.31        ns服务器的正向解析记录

www.zcylinux.io.  IN    A   172.16.0.1  www.zcylinux.io.的正向解析记录

web             IN   CNAME    www       表示还有一个别名是web

每个完整的域名之后要加上点“.”,这个点表示完整的主机名FQDN,如果只写了zcylinux.io,表示zcylinux.io.zcylinux.io.

保存后,修改文件的属组:chown  :named zcylinux.io.zone

权限:chmod o= zcylinux.io.zone

在主配置文件/etc/named.conf或配置文件辅助文件/etc/named.rfc1912.zones中添加:

zone “zcylinux.io ” {

   type master {master|slave|hint|forward};

   file “zcylinux.io”;

};

在/etc/named/目录下:

  检查语法错误:named-checkconf

      named-checkzone zcylinux.io zcylinux.io.zone

启动named服务:systemctl start named

若是服务已经启动:rndc reload 或 systemctl reload named.service 来重新加载配置文件和区域数据文件

 

反向解析:就是从IP到主机名的过程

以172.16这个网段的区域为例

    在/etc/named/目录下编辑区域数据文件

    vim 172.16.zone

     $TTL 600

 

@    IN   SOA  zcylinux.io. nsadmin.zcylinux.io. (

    2017052801

    1H

    1M

    1W

     1D )

@    IN    NS    dns.zcylinux.io.

31.250 IN    PTR    dns.zcylinux.io.

1.0  IN    PTR    www.zcylinux.io.

@表示在zone中定义的zone_name

这里在左侧只用添加ip地址的最后两段,因为我们在之前已经定义好域了16.172.in-addr.arpa,因此在这里它会自动将其补全

定义区域:   

  在主配置文件或配置文件辅助文件中实现:

   zone “16.172.in-addr.arpa ”{

       type master {master|slave|hint|forward};

       file “172.16.zone”;

 };

注意:反向解析区域的名字—反写的网段地址.in-addr.arpa

检查语法错误(工作目录/etc/named/):named-checkconf

       named-checkzone  172.16.io  172.16.io.zone

启动named服务:systemctl start named

若是服务已经启动:rndc reload 或 systemctl reload named.service 来重新加载配置文件和区域数据文件

反向解析与正向解析是两个独立的逻辑,不会互相干扰

主/从:记得防火墙 iptables -F

     在主服务器的bind的主配置文件/etc/named.conf的每个zone中可以定义设置哪些从服务器来同步信息;主服务器更改信息时,要修改序列号(递增),这样从服务器才会同步信息。

zone “zcylinux.io” IN {

    type master;

     file “zcylinux.io.zone”;

    allow-transfer { 172.16.251.109; }; 多个ip地址时以分号隔开

};

在从服务器上只用修改bind主配置文件或辅助配置文件中的zone即可:

zone “zcylinux.io” IN {

    type slave;

    file “slaves/zcylinux.io.zone”; 将同步后的文件放置的位置,这里是相对路径,实际路径为/var/named/slaves/zcylinux.io.zone

    masters { 172.16.250.31; }; 主服务器的地址

};

zone “16.172.in-addr.arpa” IN {

    type slave;

    file “slaves/172.16.io.zone”;

    masters { 172.16.250.31; };

};

检查语法错误(工作目录/etc/named/):named-checkconf

重新加载:rndc reload

     通过观察日志文件 tail
/var/log/messages
查看是否同步成功,成功会在/var/named/slaves/目录下生成相应的文件

 

子域:

  当我们将DNS解析请求发给我们所指定的DNS服务器后,它会一级一级的去查找域名去解析,在这里每一级都是一个域,而且每个域都是上级的子域;每一级域只负责解析该域名,而对于下一级域名的解析只告诉所对应的DNS服务器地址,具体的解析交给下级来完成。

在上级域名加入一条记录来指定子域

 

$TTL  600

 

zcylinux.io.    IN      SOA     zcylinux.io.    nsadmin.zcylinux.io.    (

                2017052702

                1H

                2M

                3W

                4D )

                IN      NS      dns.zcylinux.io.

dns.zcylinux.io. IN     A       172.16.250.31

www.zcylinux.io.  IN    A       172.16.0.1

web             IN      CNAME   www

 

ops.zcylinux.io.    IN   NS   dns.ops.zcylinux.io. //指定分割子域和负责人

dns.ops        IN   A    172.16.251.57  //负责人对应的识别信息

 

配置子域:在子域服务器上

vim /etc/named.rfc1912.zones

     zone
“ops.zcylinux.io” IN
  {

        type master;

        file “ops.zcylinux.io.zone”;

编辑正向解析文件:

vim ops.zcylinux.io.zone

$TTL    1D

 

@       IN      SOA     ops.zcylinux.io.                nsadmin.ops.zcylinux.io.        (

        2017052701

        1H

        1M

        1W

        1D)

@       IN      NS      dns.ops.zcylinux.io.

dns     IN      A       172.16.251.57

www     IN      A       172.16.253.69


区域转发:

一般来说子域不知道父域的位置,无法解析父域。而要想能解析父域,我们需要用到转发:

vim /etc/named.rfc1912.zones

zone
“zcylinux.io” IN {

        type forward;

        forward only|first;  //前者代表只去询问父域,不论能否解析;后者是先转给父域,不行再去找根。

        forwarders { 172.16.250.31;
172.16.251.109; };

};

 

 

全局转发:

     vim /etc/named.conf

         options {

… …

forward {only|first};

forwarders { SERVER_IP; };

.. …

    };

  

基本安全控制:

       acl 访问控制列表:把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

vim /etc/named.conf

     acl test {

        172.16.0.200;

        172.16.250.31;

};

设置区域查询控制:

     vim /etc/named.rfc1912.zones

zone “zcylinux.io” IN {

        type master;

        file “zcylinux.io.zone”;

        allow-query { test; };

};

allow-transfer {}; 允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;

vim /etc/named.conf

     acl slavesrvs {

        172.16.251.109;

        127.0.0.0/8;

};

vim /etc/named.rfc1912.zones

     zone “zcylinux.io” IN {

        type master;

        file “zcylinux.io.zone”;

        //allow-query { test; };

        allow-transfer { slavesrvs; };

};

allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求;

vim /etc/named.conf

········

acl localnet {

        172.16.0.0/16;

        127.0.0.0/8;

};

········

allow-recursion { localnet; };

········

allow-update {}; DDNS,允许动态更新区域数据库文件中内容

vim /etc/named.rfc1912.zones

     zone
“zcylinux.io” IN {

        type master;

        file “zcylinux.io.zone”;

        allow-update { none; };

};

测试工具:在测试时注意防火墙

     dig, host, nslookup等

dig命令:

     dig [-t RR_TYPE] name [@SERVER] [query options]

     用于测试dns系统,因此其不会查询hosts文件;

查询选项:

     +[no]trace 跟踪解析过程;

     +[no]recurse 进行递归解析;

注意:反向解析测试

     dig -x IP

模拟完全区域传送:

     dig -t axfr DOMAIN [@server]

host命令:

     host [-t RR_TYPE] name SERVER_IP

nslookup命令:

     nslookup [-options] [name] [server]

交互式模式:

     nslookup>

     server IP 以指定的IP为DNS服务器进行查询;

     set q=RR_TYPE:要查询的资源记录类型;

     name:要查询的名称;

rndc命令:named服务控制命令

     rndc status

     rndc flush

     rndc reload

原创文章,作者:Immortals、zcy,如若转载,请注明出处:http://www.178linux.com/77185

赞 (0)
Immortals、zcyImmortals、zcy
上一篇 2017-05-30 20:31
下一篇 2017-05-30 21:47

相关推荐

  • MySQL/MariaDB数据库备份与恢复

    前言 数据库一般存放着企业最为重要的数据,它关系到企业业务能否正常运转,数据库服务器总会遇到一些不可抗拒因素,导致数据丢失或损坏,而数据库备份可以帮助我们避免由于各种原因造成的数据丢失或着数据库的其他问题。本文将讲解MySQL/MariaDB数据库的几种备份方法。 基础知识 备份类型 完全备份:备份整个数据库 部分备份:仅备份其中的一张表或多张表 增量备份:…

    系统运维 2015-05-23
  • N26-第十三周

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加samb…

    Linux干货 2017-06-01
  • Linux文件管理&bash特性

    Linux上的文件管理命令 目录管理命令: mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自动按需创建父目录; -v: verbose,显示详细过程; -m MODE:直接给定权限; 注意:路径基名方为命令的作用对象;基名之前的路径必须得存在; r…

    Linux干货 2016-09-28
  • N26-第九周作业-邢岩

    马哥门徒-N26-邢岩 相信自己、勤奋努力、不断总结!shell脚本练习需要重复、重复、再重复!那么,我就继续来写、写、写。 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #******************************…

    Linux干货 2017-04-03
  • IT基础设施工具—Puppet

    一、Puppet简介 Puppet是一款使用GPLV2X协议授权的开源管理配置工具,基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,既可以通过客户端—服务器的方式运行,也可以独立运行。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。puppet可以为系统管理员提供方…

    Linux干货 2017-11-26
  • 软链接与硬链接

    软链接 硬链接

    2017-11-18