构建企业DNS的注意事项

简介:

在对DNS做了一些常见的配置学习之后,我们就可以再探讨一下企业级DNS的构建方法了。企业级DNS由于要承载高并发,大流量,所以硬件性能和全局的架构设计就显得非常重要。在实际的生产环境中,如果并发量特别大的话,关闭SELINUX 和防火墙可以大幅提高DNS性能。同时,至少使用千兆网络。


DNS命名规范

  • 26个英文字母

  • “0,1,2,3,4,5,6,7,8,9”十个数字

  • “-”(英文中的连词号)

  • 最多63字节长度

如果不按照这个规范,需要在master-view文件上配置check-names ignore;


DNS压测

在部署线上的服务时,需要对服务的状态进行压测。对DNS压测可以使用queryperf .

测试示例:

下载bind-9.9.9-P1.tar ,并执行下面命令安装:

1
2
3
4
5
6
7
tar  xvf bind-9.9.9-P1. tar 
cd  bind-9.9.9-P1
cd  contrib/
cd  queryperf/
. /configure 
make
cp  queryperf  /usr/bin/


在当前目录创建test.txt的测试文本,文本内容为本地需要解析的域名:

1
2
3
4
[root@DNS-Server queryperf] # cat test.txt 
view.viewtest.com A        #对A记录解析情况进行压测,可以根据需要添加各种解析记录。
view.viewtest.com A        # 一般进行压测会添加几万条类似的记录以查看性能
view.viewtest.com A

使用queryperf命令进行压测:

queryperf  -d test.txt -s 114.114.114.114  #  -d 指定压测的解析内容文件 -s 指定压测的服务器

queryperf的使用格式:

1
queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@DNS-Server queryperf] # queryperf -d test.txt  -s 192.168.1.10
DNS Query Performance Testing Tool
Version: $Id: queryperf.c, v  1.12 2007 /09/05  07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 192.168.1.10)
[Status] Testing complete
Statistics:
   Parse input  file :     once
   Ended due to:         reaching end of  file
   Queries sent:         3 queries          # 查询请求的次数
   Queries completed:    3 queries          # 查询完成的次数
   Queries lost:         0 queries
   Queries delayed(?):   0 queries
   RTT max:         0.004663 sec
   RTT min:              0.004651 sec
   RTT average:          0.004656 sec
   RTT std deviation:    0.000006 sec
   RTT out of range:     0 queries
   Percentage completed: 100.00%
   Percentage lost:        0.00%
   Started at:           Fri Dec  9 16:26:06 2016
   Finished at:          Fri Dec  9 16:26:06 2016
   Ran  for :              0.004697 seconds   
   Queries per second:   638.705557 qps      # 并发越多,值越大,每秒执行的查询次数

 

DNS监控

可以通过结合zabbix来实现对DNS的监控。对于DNS的监控需要注意以下几点:

系统基础性能的监控: 使用zabbix自带的模板可以实现对服务器CPU,内存,存储,磁盘,系统负载,网卡流量进行监控。

LOOPBACK地址绑定状态监控:在LVS做DNS负载均衡调度的架构中,dnsserver在集群中充当real server的角色,DR模式下,需要绑定loopback地址方能通信,因此当loopback地址没有绑定上时,lvs健康检查可以通过,但是后端的dnsserver会丢弃请求的数据包,造成dns服务不可用。(可参见LVS DR模式的实现原理)

DNS数据与master数据一致性监控

  •  通过配置zabbix自定义的discovery功能,扫出dns配置中所有zone,然后分别对比slave和master每个zone的serial值,当slave与master的值持续5分钟不一致时报警。

  • 通过编写脚本,每隔15分钟扫描master上所有域名解析的结果,与每一个slave上的结果做对比,当出现不一致时报警。

DNS响应时间的监控: 远端主机跑在fullnat 模式下(提供高可用),通过dig命令检查dnsserver的响应时间。

DNS每秒请求数监控:每台dns主机上编写zabbix脚本,分析named_status文件,获取每秒请求数。

示例脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh
#rndc status
STATS= '/var/named/chroot/var/log/named_stats'
if  [[ $ # -ne 1 ]]
then
   echo  "$0  [querys]"
   exit  2
else
   which =$1
fi
if  [[ -f  "${STATS}"  ]]
then
   echo  > ${STATS}
   rndc stats >  /dev/null  2>&1
else
   echo  "${STATS} not found."
   exit  2
fi
case  ${ which in
querys)
   RESULT=` awk  '{if {$2=="QUERY"} {print $1}}'  ${STATS}`
   ;;
  *)
   echo  "$0 [querys]"
   exit  2
   ;;
   esac
echo  ${RESULT}


DNS日常运维规范

确保所有监控均处于生效状态;

所有的新机器,均在saltstack上完成安装、部署,不能单独操作;

所有针对dns架构调整的操作,均在流量低谷进行;

对集群扩容时,务必加入新节点做压测,同时重启服务,并检测重启后各项指标是否正常;



 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1881322

相关文章
|
10月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
204 5
|
9月前
|
供应链 监控 搜索推荐
企业销售管理利器:销售易、飞鱼和800客CRM深度解析
- **销售易**:集营销、销售和服务于一体,提供全渠道获客、潜客识别、线索转化等功能,适合中大型企业,尤其适用于快消品、汽车等行业。 - **飞鱼**:由巨量引擎推出,专注于广告主的销售线索管理,实现自动获取、同步及跟进,适合各类规模企业,广泛应用于电商、金融等领域。 - **800客**:功能全面,涵盖市场、客户、销售、服务等管理模块,适合中小型到大型企业,提供定制化服务,满足个性化需求。 通过对比各产品的功能与适用场景,企业可根据自身需求选择最合适的CRM解决方案,以优化销售流程并深化客户关系。
|
9月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
457 76
|
6月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
7月前
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
529 9
|
7月前
|
云安全 人工智能 安全
阿里云网络安全体系解析:如何构建数字时代的"安全盾牌"
在数字经济时代,阿里云作为亚太地区最大的云服务提供商,构建了行业领先的网络安全体系。本文解析其网络安全架构的三大核心维度:基础架构安全、核心技术防护和安全管理体系。通过技术创新与体系化防御,阿里云为企业数字化转型提供坚实的安全屏障,确保数据安全与业务连续性。案例显示,某金融客户借助阿里云成功拦截3200万次攻击,降低运维成本40%,响应时间缩短至8分钟。未来,阿里云将继续推进自适应安全架构,助力企业提升核心竞争力。
|
10月前
|
自然语言处理 算法 Python
再谈递归下降解析器:构建一个简单的算术表达式解析器
本文介绍了递归下降解析器的原理与实现,重点讲解了如何使用Python构建一个简单的算术表达式解析器。通过定义文法、实现词法分析器和解析器类,最终实现了对基本算术表达式的解析与计算功能。
230 52
|
9月前
|
存储 监控 算法
企业内网监控系统中基于哈希表的 C# 算法解析
在企业内网监控系统中,哈希表作为一种高效的数据结构,能够快速处理大量网络连接和用户操作记录,确保网络安全与效率。通过C#代码示例展示了如何使用哈希表存储和管理用户的登录时间、访问IP及操作行为等信息,实现快速的查找、插入和删除操作。哈希表的应用显著提升了系统的实时性和准确性,尽管存在哈希冲突等问题,但通过合理设计哈希函数和冲突解决策略,可以确保系统稳定运行,为企业提供有力的安全保障。
|
10月前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
9月前
|
搜索推荐 数据挖掘
CRM系统解析:企业高效管理与未来发展的关键
在全球化和技术快速变革的背景下,客户关系管理(CRM)系统已成为企业不可或缺的战略工具。本指南将深入剖析CRM系统的选型、应用及其对企业未来发展的重要影响。
105 5

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS