zoukankan      html  css  js  c++  java
  • DNS配置范例

    这里使用CentOS 7作为DNS主服务器.(ip:172.18.7.77)


    正向解析配置:


    ]# vim /etc/named.rfc1912.zones
    zone "opsnote.com" IN {
             type master;
             file "opsnote.com.zone";
    };
    ]# cd /var/named
    ]# vim opsnote.com.zone
    $TTL 3600
    $ORIGIN opsnote.com.
    @        IN        SOA        ns1.opsnote.com.        admin.opsnote.com. (
                     0
                     1H
                     10M
                     3D
                     1D )
    IN        NS         ns1
    ns1        IN        A        172.18.7.77
    www        IN        A        172.18.7.73
    web        IN        CNAME        www
    bbs        IN        A        172.18.7.74


    确保区域数据库文件的属主属组都为named,文件权限为640

    ]# chown :named opsnote.com.zone

    ]# chmod 640 opsnote.com.zone

    ]# ll opsnote.com.zone

    -rw-r-----. 1 root named 240 Jan 18 17:29 opsnote.com.zone


    检查语法

    检查/etc/named.conf配置语法

    ]# named-checkconf

    检查自定义区域数据库文件语法

    ]# named-checkzone opsnote.com opsnote.com.zone


    查看一下当前区域数量

    ]# rndc status

    number of zones: 101


    重新载入配置文件

    ]# rndc reload


    再查看一下区域数量

    ]# rndc status

    number of zones: 102

    说明刚刚的opsnote.com添加成功


    测试:

    ]# dig -t A www.opsnote.com @172.18.7.77


    配置反向解析:


    定义反向区域

    反向区域的名字为.in-addr.arpa,本机地址为172.18.7.77

    ]# vim /etc/named.rfc1912.zones

            zone "7.18.172.in-addr.arpa" IN {

           type master;

           file "172.18.7.zone";

    };


    定义反向区域解析库文件

    ]# cd /var/named

    ]# vim 172.18.7.zone

    $TTL 3600

    $ORGIN 7.18.172.in-addr.arpa.

    @        IN        SOA        opsnote.com.        admin.opsnote.com. (

                   0

                   1H

                   10M

                   3D

                   12H )

    IN        NS        ns1.opsnote.com.

    77        IN        PTR        ns1.opsnote.com.

    73        IN        PTR        www.opsnote.com.

    74        IN        PTR        bbs.opsnote.com.

    61        IN        PTR        bbs.opsnote.com.


    修改属组和权限

    ]# chgrp named 172.18.7.zone

    ]# chmod o= 172.18.7.zone


    检查语法

    ]# named-checkconf

    ]# named-checkzone 7.18.172.in-addr.arpa 172.18.7.zone


    配置从DNS服务器

    这次使用另一台centos 6 作为上面DNS服务器的从服务器


    定义从区域

    方法与主服务器相似,指定file在/var/named/slaves目录下,但不需手动创建,可分别指明一个以上主服务器.


    安装bind.

    ]# yum install bind -y

    ]# ps aux | grep named


    编辑配置文件

    ]# vim /etc/named.conf

    //listen-on port 53 { 127.0.0.1; };

    //allow-query { localhost; };

    dnssec-enable no;

    dnssec-validation no;


    启动服务

    ]# service named start


    查看服务状态

    ]# service named status

    version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4

    CPUs found: 4

    worker threads: 4

    number of zones: 19

    debug level: 0

    xfers running: 0

    xfers deferred: 0

    soa queries in progress: 0

    query logging is OFF

    recursive clients: 0/0/1000

    tcp clients: 0/100

    server is up and running

    named (pid 15052) is running...


    配置主配置文件,添加从区域

    zone "opsnote.com" IN {

            type slave;

            file "slaves/opsnote.com.zone";

            masters { 172.18.7.77; };

    };


    回到主服务器,添加从服务器NS记录

    ]# vim /var/named/opsnote.com.zone

    IN        NS         ns2

    ns2        IN        A        172.18.7.61


    检查语法

    ]# named-checkconf


    重载

    ]# rndc reload


    查看服务状态

    ]# rndc status

    88

    version: 9.9.4-RedHat-9.9.4-50.el7 <id:8f9657aa>

    CPUs found: 4

    worker threads: 4

    UDP listeners per interface: 4

    number of zones: 103

    debug level: 0

    xfers running: 0

    xfers deferred: 0

    soa queries in progress: 0

    query logging is OFF

    recursive clients: 0/0/1000

    tcp clients: 0/100

    server is up and running


    回到从服务器


    重载服务

    ]# rndc reload


    查看状态

    ]# service named status

    version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4

    CPUs found: 4

    worker threads: 4

    number of zones: 19

    debug level: 0

    xfers running: 0

    xfers deferred: 0

    soa queries in progress: 0

    query logging is OFF

    recursive clients: 0/0/1000

    tcp clients: 0/100

    server is up and running

    named (pid 15052) is running...


    测试:

    ]# dig -t A www.opsnote.com @172.18.7.61


    验证主从同步过程

    修改主服务器区域文件内容

    ]# vim /var/named/opsnote.com.zone

    增加内容

    bbs3        IN        A        172.18.7.74

    修改版本号0 –> 2


    重载

    ]# rndc reload


    查看日志

    ]# systemctl status named

    Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR started

    Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR ended

    Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#9134: received notify for zone 'opsnote.com'


    去从服务器检查同步结果

    ]# tail /var/log/messages

    Jan 20 15:14:21 centos6 named[15052]: client 172.18.7.77#60229: received notify for zone 'opsnote.com'

    Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: Transfer started.

    Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: connected using 172.18.7.61#52689

    Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: transferred serial 2

    Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: Transfer completed: 1 messages, 10 records, 254 bytes, 0.001 secs (254000 bytes/sec)

    Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: sending notifies (serial 2)


    在其他主机上测试从服务器

    ]# dig -t A bbs3.opsnote.com @172.18.7.61


    可通过axfr类型获得服务器上整个正向和反向区域的资源记录

    ]# dig -t axfr opsnote.com @172.18.7.77

    ]# dig -t axfr 7.18.172.in-addr.arpa @172.18.7.77


    子域授权


    1.在父域的主DNS服务器的正向区域数据库文件/var/named/opsnote.com.zone上授权子域

    ]# vim /var/named/opsnote.com.zone

    aaa        IN        NS        ns3.aaa

    ns3.aaa        IN        A        172.18.7.73


    记得增加版本号


    重载

    ]# rndc reload


    2.子域服务器上(172.18.7.73)


    安装bind

    ]# yum install bind –y


    3.编辑主配置文件

    ]# vim /etc/named.conf

    //listen-on port 53 { 127.0.0.1; };

    //allow-query { localhost; };

    dnssec-enable no;

    dnssec-validation no;


    4.启动named服务并查看53端口是否已绑定

    ]# systemctl start named

    ]# systemctl status named

    ]# ss -tunl

    172.18.7.73:53


    编辑主配置文件

    ]# vim /etc/named.rfc1912.zones

            zone "aaa.opsnote.com" IN {

            type master;

            file "aaa.opsnote.com.zone";

    };


    5.创建aaa.opsnote.com.zone文件

    ]# vim /var/named/aaa.opsnote.com.zone

    $TTL 3600

    @        IN        SOA        ns3.aaa.opsnote.com. admin.opsnote.com. (

                    0 ;序列号

                    1H ;刷新时间

                    10M ;重试时间

                    1D ;过期时间

                    2H ) ;否定回答的TTL值

    IN        NS        ns3

    ns3        IN        A        172.18.7.73

    www        IN        A        172.18.7.73


    6.修改属组和权限

    ]# chmod 640 aaa.opsnote.com.zone

    ]# chgrp named aaa.opsnote.com.zone

    ]# ll aaa.opsnote.com.zone

    -rw-r----- 1 root named 162 Jan 20 16:14 aaa.opsnote.com.zone


    7.检查语法

    ]# named-checkzone aaa.opsnote.com aaa.opsnote.com.zone

    zone aaa.opsnote.com/IN: loaded serial 0

    OK


    8.重载服务

    ]# rndc reload


    9测试正向解析

    ]# dig -t A www.aaa.opsnote.com @172.18.7.73


    如果想通过子域服务器解析父域,子域会先找根,再找.com顶级域进行的带查询,但只要给子域定义了转发区域,就可以让子域解析自己的父域.


    给子域服务器定义转发区域


    子域服务器(172.18.7.73)

    1.编辑主配置文件

    ]# vim /etc/named.rfc1912.zones

            zone "opsnote.com" IN {

            type forward;

             forward only;

             forwarders { 172.18.7.77; 172.18.7.61; };

    };


    2.检查语法

    ]# named-checkconf


    3.重载

    ]# rndc reload


    4.测试

    在父域主服务器(172.18.7.77)上解析子域

    ]# dig -t A www.aaa.opsnote.com @172.18.7.77


    会得到标志位flags: qr rd ra; 其中没有权威应答aa标志,说明不是父域自己解析的.


    父域解析自己负责的域

    ]# dig -t A www.opsnote.com @172.18.7.77


    会得到标志位flags: qr aa rd ra; 其中包含的aa为权威应答,说明是自己负责的解析内容.


    在子域服务器(172.18.7.73)上解析父域

    ]# dig -t A www.opsnote.com @172.18.7.73


    得到标志位flags: qr rd ra;因为父域只能去找父域解析,所以这里没有aa


    如果要子域解析其他域名,如www.qq.com,默认情况下子域服务器会因为自己数据库中没有定义而去互联网上找跟服务器询问并得到结果,假如只想通过父域解析,需要定义全局转发.


    在子域服务器上定义全局转发


    ]# vim /etc/named.conf

    options段中添加

    forward only;

    forwarders { 172.18.7.77; };


    forward 有两个参数

    firest: 先转发.如果转发器不响应,自己回去迭代查询.

    only:只转发,不迭代.


    重载

    ]# rndc reload


    测试:

    ]# dig -t A www.qq.com @172.18.7.73


    此时由父域主服务器(172.18.7.73)解析www.qq.com

    只允许从服务器进行区域传送,访问控制列表


    之前我们通过

    ]# dig -t axfr opsnote.com @172.18.7.77


    直接得到了主服务器上的区域数据库内容,这是不安全的,应该限制为只允许从服务器才能读取.下面为实现方法.


    1.在主服务器上编辑/etc/named.conf文件,如添加在options段则全局生效,如添加在zone段则只对当前区域生效.

    这里添加在zone,所以可以直接编辑/etc/named.rfc1912.zones文件,找到之前定义的zone "opsnote.com" IN {段,在其中添加allow-transfer { slaves; };

    ]# vim /etc/named.rfc1912.zones

             zone "opsnote.com" IN {

             type master;

             file "opsnote.com.zone";

            allow-transfer { myslaves; };

    };

    myslaves表示自定义访问控制列表.


    2.在主服务器中改配置访问控制列表:

    在/etc/named.conf 文件options段前添加

    ]# vim /etc/named.conf

             acl myslaves {

             172.18.7.61;

             127.0.0.1;

    };


    检查语法

    ]# named-checkconf


    重载

    ]# rndc reload


    测试:

    在非从服务器中测试:

    ]# dig -t axfr opsnote.com @172.18.7.77

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -t axfr opsnote.com @172.18.7.77

    ;; global options: +cmd

    ; Transfer failed.


    在从服务器测试:

    ]# dig -t axfr opsnote.com @172.18.7.77


    传送成功


    在主服务器测试:

    ]# dig -t axfr opsnote.com @172.18.7.77

    ]# dig -t axfr opsnote.com @127.0.0.1


    .7.77传送失败,因为不在访问控制列表中

    127.0.0.1传送成功,但是因为我把/etc/named.conf中的listen-on port 53一行注释掉了,所以本机的任何ip都可以接受传送,如果把注释去掉,并且括号中没有127.0.0.1的话,则会传送失败.

  • 相关阅读:
    如何根据关键字匹配度排序
    LeetCode 题解目录
    Spring Boot、Cloucd 学习示例
    JavaScript工具库
    使用 Docker 部署 Spring Boot 项目
    LeetCode 寻找两个有序数组的中位数
    Bean 生命周期
    Dubbo支持的协议
    MySQL组成模块
    Spring Boot 搭建TCP Server
  • 原文地址:https://www.cnblogs.com/Q--T/p/8333868.html
Copyright © 2011-2022 走看看