美文网首页
【DNS】小项目内部DNS解决方案

【DNS】小项目内部DNS解决方案

作者: Bogon | 来源:发表于2021-11-26 07:38 被阅读0次

    一、环境信息

    serverA  192.168.1.101

    serverB  192.168.1.102

    bind9_vip  192.168.1.110

    二、组件安装

    在serverA 和 serverB 上

    # yum  -y  install  keepalived  bind-utils

    # sysctl -w net.ipv4.ip_nonlocal_bind=1

    # echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf

    注:更改Linux系统控制文件,使得端口即使监听在不存在的IP上,也不报错

    # setenforce 0

    # sed -i 's/^SELINUX=.*/SELINUX=permissive/g'   /etc/selinux/config

    # systemctl stop   firewalld

    # systemctl diable firewalld

    三、serverA服务配置

    # vim  /etc/keepalived/keepalived.conf

    ##############################

    ! Configuration File for keepalived

    global_defs {

       router_id LVS_DEVEL

    }

    vrrp_script check { 

        script "/etc/keepalived/check.sh" 

        interval 5     

    }   

    vrrp_instance VI_1 {

        state BACKUP

        interface eno16777736

        virtual_router_id 100

        priority 100

        advert_int 1

        nopreempt

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        track_script {   

          check

        }   

        virtual_ipaddress {

            192.168.1.110

        }

    }

    ##############################

    # vim /etc/named.conf

    ##########################################

    options {

            listen-on port 53 { 192.168.1.110; };

            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; };

            recursion yes;

            dnssec-enable yes;

            dnssec-validation yes;

            pid-file "/run/named/named.pid";

    };

    zone "example.com" IN {

            type master;

            file "example.com.zone";

    };

    ###############################################

    # cp  -p  /var/named/named.localhost  /var/named/example.com.zone

    # vim  /var/named/example.com.zone

    ###############################################

    $TTL 3D

    @ IN SOA  ns.example.com (

                                 2021100

                                 28800

                                14400

                                 3600000

                                 86400

    )

             NS  ns                               

             IN A   xx.xx.xx.xx        

    www      IN A   xx.xx.xx.xx           

    mysql     IN A   xx.xx.xx.xx       

    ##############################################

    四、serverB服务配置

    # vim  /etc/keepalived/keepalived.conf

    ####################################

    ! Configuration File for keepalived

    global_defs {

       router_id LVS_DEVEL

    }

    vrrp_script check { 

        script "/etc/keepalived/check.sh" 

        interval 5     

    }   

    vrrp_instance VI_1 {

        state BACKUP

        interface eno16777736

        virtual_router_id 100

        priority 90

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        track_script {   

          check

        }   

        virtual_ipaddress {

            192.168.1.110

        }

    }

    ##################################

    # vim /etc/named.conf

    ##########################################

    options {

            listen-on port 53 { 192.168.1.110; };

            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; };

            recursion yes;

            dnssec-enable yes;

            dnssec-validation yes;

            pid-file "/run/named/named.pid";

    };

    zone "example.com" IN {

            type master;

            file "example.com.zone";

    };

    ###############################################

    # cp  -p  /var/named/named.localhost  /var/named/example.com.zone

    # vim  /var/named/example.com.zone

    ###############################################

    $TTL 3D

    @ IN SOA  ns.example.com (

                                 2021100

                                 28800

                                14400

                                 3600000

                                 86400

    )

             NS  ns                               

             IN A   xx.xx.xx.xx        

    www      IN A   xx.xx.xx.xx           

    mysql     IN A   xx.xx.xx.xx       

    ##############################################

    五、在serverA serverB 

    ################################################################

    #!/bin/bash

    if ! ps -C named--no-header | wc -l > /dev/null 2>&1; then

      systemctl restart named

      sleep 1

      if ! ps -C named--no-header | wc -l > /dev/null 2>&1; then

        exit 1

      fi

    fi

    ################################################################

    #  systemctl restart  named  keepalived

    六、测试

    在测试机器

    # vim  /etc/resolv.conf

    #########################

    nameserver 192.168.1.110

    #########################

    测试DNS域名解析

    # ping www.example.com

    # ping mysql.example.com

    相关文章

      网友评论

          本文标题:【DNS】小项目内部DNS解决方案

          本文链接:https://www.haomeiwen.com/subject/qqvptrtx.html