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 以指定的IPDNS服务器进行查询;

     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
下一篇 2017-05-30

相关推荐

  • 96-Mariadb-1

        一. MariaDB or MySQL基础知识                   层次模型 –> 网状模型 –> …

    2016-11-18
  • shell脚本之选择与执行

    流程控制  过程式编程语言: 顺序执行 选择执行 循环执行 选择执行:if语句  注意:if语句可嵌套  单分支 if 判断条件:then 条件为真的分支代码 fi  双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if…

    Linux干货 2016-09-19
  • mysql慢查询日志进行按库切割重写文件然后分析

    需求: 把每天的慢查询日志进行按库切割 对每个库的慢查询日志进行分析 思路: 工具/功能 一般统计信息 高级统计信息 脚本 优势 mysqldumpslow 支持 不支持 perl mysql官方自带 mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强. mysql-explain-slow-log 支持 不支持 perl 无 my…

    Linux干货 2015-04-03
  • N25期–第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 启动过程 (PC架构)    POST –> Boot Sequence(BIOS) –> Boot Loader (MBR)–>GRUB—> Kernel(ramdisk) –> ro…

    Linux干货 2017-03-13
  • CentOS系统启动流程–上

    centos6启动流程 1.加载BIOS的硬件信息,获取第一个启动设备。 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱 动所有的硬件设备。 4.核型执行init程序并获取运行信息。 5.Init执行/etc/rc.d/rc.sysinit文件。 6.启动核心的外挂模块(/etc/m…

    Linux干货 2016-09-13
  • 从Linux小白到大牛——与狼共舞的日子13

    马哥教育网络班21期+第13周课程练习 1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加sa…

    Linux干货 2017-01-03