DNS集群搭建实战

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

实验环境:RHEL7.0   

           主DNS   server1.example.com  172.25.254.1

           辅助DNS server2.example.com  172.25.254.2


实验内容:1.主DNS配置

                 2.辅助DNS配置

                 3.辅助DNS动态获取主DNS数据

                 4.DNS更新

                 5.有Key才能对主机进行更新

                 6.DDNS搭建


前提:装bind软件,关火墙,关SELINUNX,开启53端口 


1.主DNS配置(IP:172.25.254.158)   

    1)vim /etc/named.conf    

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

        //    allow-query     { localhost; };         

        dnssec-validation no;     (//代表开启着接口)    

    2)vim /etc/named.rfc1912.zones                

        zone "willis.com" IN {
                type master;
                file "willis.com.zone";
                allow-update { none; };
                allow-transfer { 172.25.254.2; };##允许谁同步 
        };

    3)cp -p /var/named/      /var/named/willis.com.zone#特殊文件,注意权限 

    4)vim /var/named/willis.com.zone       

            $TTL 1D
            @       IN SOA  dns.willis.com. root. (
                                                    0       ; serial
                                                    1D      ; refresh
                                                    1H      ; retry
                                                    1W      ; expire
                                                    3H )    ; minimum
            NS      dns.willis.com.
            dns     A       172.25.254.1
            www     A       172.25.254.1
    5)vim /etc/resolv.conf     

        nameserver 172.25.254.1     

    6)systemctl start named  


2.辅助DNS 

    1)vim /etc/named.conf      

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

        //    allow-query     { localhost; };         

        dnssec-validation no;   

    2)vim /etc/named.rfc1912.zones      

          zone "willis.com" IN {
                type slave;

                masters { 172.25.254.1; };

                file "slaves/willis.com.zone";
                allow-update { none; };
        };

    3)vim /etc/resolv.conf     

        nameserver 172.25.254.1   

    4)systemctl start named   


3.辅助DNS动态获取主DNS数据(数据同步)  

1)主DNS       

    1-1)vim /etc/named.rfc1912.zones 

            zone "willis.com" IN {     

                    type master;    

                     file "w.com.zone";     

                     allow-update { none; };         

                     allow-transfer { 172.25.254.2; };       

                      also-notify { 172.25.254.2; }; ##添加此条,当DNS文件发生改变时,将数据推送给谁 

                      };    

    1-2)vim /var/named/willis.com.zone     

         $TTL 1D

         @    IN SOA    dns.willis.com.  root. (        

                     31    ; serial   #此值改变,进行数据推送         

                     1D    ; refresh          

                     1H    ; retry             

                     1W    ; expire             

                     3H )    ; minimum     

        NS    dns.willis.com. 

        dns    A    172.25.254.1

        www    A       172.25.254.1        

    1-3)systemctl restart named    


2)辅助DNS        

2-1)vim /etc/resolv.conf               

named 172.25.254.1       

[root@server2 slaves]# ls
willis.com.zone
[root@server2 slaves]# rm -rf willis.com.zone 
[root@server2 slaves]# ls
[root@server2 slaves]# dig www.willis.com

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.willis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63871
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.willis.com.            IN    A

;; ANSWER SECTION:
www.willis.com.        86400    IN    A    172.25.254.1

;; AUTHORITY SECTION:
willis.com.        86400    IN    NS    dns.willis.com.

;; ADDITIONAL SECTION:
dns.willis.com.        86400    IN    A    172.25.254.1

;; Query time: 0 msec
;; SERVER: 172.25.254.1#53(172.25.254.1)
;; WHEN: Wed Sep 07 20:32:55 CST 2016
;; MSG SIZE  rcvd: 93

[root@server2 slaves]# ls
willis.com.zone


4.DNS更新(远程主机对DNS A记录修改)

cp -p /var/named/westos.com.zone  /mnt  ##备份,便于恢复    

    1)主DNS           

    1-1)vim /etc/named.rfc1912.zones zone 

            zone "willis.com" IN {
                    type master;
                    file "willis.com.zone";
                    allow-update { 172.25.254.2; };  ##添加此条,允许那个远程主机DNS更新主机DNS A记录  
                    allow-transfer { 172.25.254.2; };
                    also-notify { 172.25.254.2; };
            };

    1-2)chmod g+w /var/named    ###此目录必须对named组有执行                   

    1-3)systemctl restart named     


    2)辅助DNS(远程DNS)进行更新      

[root@server2 slaves]# nsupdate 
> server 172.25.254.1
> update add hello.willis.com 86400 A 172.25.254.3
> send

    3)测试  dig hello.willis.com    

[root@server2 slaves]# dig hello.willis.com

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> hello.willis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8312
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hello.willis.com.        IN    A

;; ANSWER SECTION:
hello.willis.com.    86400    IN    A    172.25.254.3

;; AUTHORITY SECTION:
willis.com.        86400    IN    NS    dns.willis.com.

;; ADDITIONAL SECTION:
dns.willis.com.        86400    IN    A    172.25.254.1

;; Query time: 0 msec
;; SERVER: 172.25.254.1#53(172.25.254.1)
;; WHEN: Wed Sep 07 20:47:58 CST 2016
;; MSG SIZE  rcvd: 95

    4)恢复  rm -rf  /var/named/willis.com.zone  

               rm -rf  /var/named/willis.com.zone.jnl           

               cp -p /mnt/willis.come.zone    /var/named/ 


5.有Key才可对主机进行更新    

1)主DNS     

   1-1)cp -p /etc/rndc.key  /etc/willis.key    

   1-2)cd /mnt          

        dnssec-keygen -a HMAC-MD5 -b 128 -n HOST willis     

[root@server1 mnt]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST willis
    Kwillis.+157+54370
[root@server1 mnt]# ls
    Kwillis.+157+54370.key  Kwillis.+157+54370.private
[root@server1 mnt]# cat Kwillis.+157+54370.key 
    willis. IN KEY 512 3 157 D3lJsH/gcsyTGmQfDKl/DA==

  1-3)vim /etc/willis.key         

        key "willis" {
            algorithm hmac-md5;
            secret "D3lJsH/gcsyTGmQfDKl/DA==";
        };

  1-4)vim /etc/named.conf         

  在options {};外添加 include "/etc/willis.key";  

  1-5)vim /etc/named.rfc1912.zones 

             修改为allow-update { key willis; };     

  1-6)scp Ksteven.+157+09355.*  root@172.25.254.187:/mnt/          

  1-7)systemctl restart named    


2)辅助DNS   

[root@server2 slaves]# nsupdate     
> server 172.25.254.1
> update add wahaha.willis.com 86400 A 172.25.254.3
> send
update failed: REFUSED      ###DNS更新失败


[root@server2 slaves]# nsupdate -k /mnt/Kwillis.+157+54370.private 
> server 172.25.254.1
> update add wahaha.willis.com 86400 A 172.25.254.3
> send  

    ###添加密码认证后更新成功

测试)

[root@server2 slaves]# dig wahaha.willis.com

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> wahaha.willis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40086
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wahaha.willis.com.        IN    A

;; ANSWER SECTION:
wahaha.willis.com.    86400    IN    A    172.25.254.3

;; AUTHORITY SECTION:
willis.com.        86400    IN    NS    dns.willis.com.

;; ADDITIONAL SECTION:
dns.willis.com.        86400    IN    A    172.25.254.1

;; Query time: 0 msec
;; SERVER: 172.25.254.1#53(172.25.254.1)
;; WHEN: Wed Sep 07 21:12:16 CST 2016
;; MSG SIZE  rcvd: 96

6.ddns 

DHCP+DNS=DDNS 

动态DNS(DDNS)需要DNS和DHCP来协同工作。 

Linux下也可以实现DDNS,不过DNS需要Bind8以上的版本,DHCP需要3.0以上的版本。   

1)DNS环境恢复  

           rm -rf /var/named/willis.com.zone                         

           rm -rf /var/named/willis.com.zone.jnl           

           cp -p /mnt/willis    /var/named/   

2)dhcp配置    

2-1  yum install dhcp -y      

2-2  cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

(3)vim /etc/dhcp/dhcpd.conf ################################################option domain-name "server1.example.com";

option domain-name-servers 172.25.254.1;  

default-lease-time 600; 

max-lease-time 7200;  

# DHCP server to understand the network topology.  

subnet 172.25.254.0 netmask 255.255.255.0 {     

range 172.25.254.80 172.25.254.90;     

option routers 172.25.254.1; 

}  


key willis {          

algorithm hmac-md5;          

secret D3lJsH/gcsyTGmQfDKl/DA==; ####密钥        

};  


zone yqy.com. {          

primary 172.25.254.1;         

key willis;        


(4)systemctl restart named    

    systemctl restart dhcpd

附注:man dhcpd.conf 查找关键字key 


2.辅助服务器 

systemctl restart network 

ifconfig  ###得到一个主服务器server的给的一个IP 

hostnamectl set-hostname bbs.willis.com 

dig bbs.willis.com   ###测试



本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1847495,如需转载请自行联系原作者

相关文章
|
17天前
|
自然语言处理 编译器 Linux
|
22天前
|
Prometheus 监控 Cloud Native
实战经验:成功的DevOps实施案例解析
实战经验:成功的DevOps实施案例解析
36 6
|
19天前
|
UED
<大厂实战经验> Flutter&鸿蒙next 中使用 initState 和 mounted 处理异步请求的详细解析
在 Flutter 开发中,处理异步请求是常见需求。本文详细介绍了如何在 `initState` 中触发异步请求,并使用 `mounted` 属性确保在适当时机更新 UI。通过示例代码,展示了如何安全地进行异步操作和处理异常,避免在组件卸载后更新 UI 的问题。希望本文能帮助你更好地理解和应用 Flutter 中的异步处理。
61 3
|
19天前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
100 1
|
23天前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
25天前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
1月前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
73 1
|
1月前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
64 2
|
12天前
|
前端开发 中间件 PHP
PHP框架深度解析:Laravel的魔力与实战应用####
【10月更文挑战第31天】 本文作为一篇技术深度好文,旨在揭开PHP领域璀璨明星——Laravel框架的神秘面纱。不同于常规摘要的概括性介绍,本文将直接以一段引人入胜的技术剖析开场,随后通过具体代码示例和实战案例,逐步引导读者领略Laravel在简化开发流程、提升代码质量及促进团队协作方面的卓越能力。无论你是PHP初学者渴望深入了解现代开发范式,还是经验丰富的开发者寻求优化项目架构的灵感,本文都将为你提供宝贵的见解与实践指导。 ####
|
1月前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
84 3

相关产品

  • 云解析DNS
  • 推荐镜像

    更多