DNS服务器和主从DNS服务器的搭建

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

在使用浏览器进行网上冲浪的时候,我们只需要输入网址即可访问,但是在网络中,网址并不是一个有效的东西,真正起作用的是网址所对应的IP地址,但是IP地址是一堆没有规律的数字,难以记忆、使用,所以就有了DNS服务器。DNS服务器的功能就是将网址转换成IP地址,这样在我们想要访问一个主机的时候就不需要记住它的IP地址,而是只需要记住它的网址即可,剩下的工作有DNS服务器去替我们完成,由它来将一个网址转换成IP地址,来供给我们访问。下面就来介绍如何在CentOS6中搭建一个DNS服务器。

一、DNS服务器的搭建

搭建一个DNS服务器需要一台主机来当作这个服务器,然后为了测试,还需要另外一台主机,所以在这里我使用虚拟机创建了两个主机,并使用XShell进行远程连接(连接的方法查看原先的博客),一台的IP地址为172.16.6.11,另外一台主机IP地址为172.16.128.0。

wKioL1mdA2viHI6pAAFvbERwRM8147.jpg-wh_50

在进行配置之前,首先要安装相应的软件,使用以下命令(记得配置yum源):

1
yum  install  bind

配置一个DNS服务器需要四步:

  1.配置/etc/named.rfc1912.zones文件,在其中添加区域文件

  2.在/var/named/中添加区域数据文件

  3.修改/etc/named.conf配置

  4.加载配置

下面详细的介绍这四步:

首先打开/etc/named.rfc1912.zones文件

1
~] # vim /etc/named.rfc1912.zones

然后在最后面添加以下内容,之后保存退出:

1
2
3
4
zone  "test.com"  IN {
         type  master;
         file  "/etc/named/test.com.zone" ;
};

   在这个文件中可以有以下几种选择,视情况而定。(因为我只需要别的主机能查询即可,所以在这个例子中我只写了这两句话)

    allow-query { acl|IP|Network; };

      允许向本服务器发起查询请求的主机,即:白名单;

    allow-transfer { acl|IP|Network; };

      允许哪些从服务器可以从本机进行区域传送;默认是所有主机都可以;建议应该只允许从服务器完成此项工作,即:白名单;

    allow-recursion { acl|IP|Network; };

      允许哪些主机向当前DNS服务器发起递归查询请求

    allow-update { acl|IP|Network; };

      (因为谁都可以更新区域数据库不安全,所以需要这个来限制谁可以)DDNS(动态DNS,使用DHCP服务器), Dynamic DNS(因为不安全,所以一般禁用这个功能:allow-update { none; };)


第二步:在/var/named/中添加区域数据文件

1
~] # vim /etc/named/test.com.zone

在其中写上以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ORIGIN  test .com.
$TTL 86400
@ IN  SOA ns1. test .com. admin. test .com. (
                                 2017082301;serial
                                 1H;refresh
                                 15M;retry
                                 1W;expire
                                 1D);TTL
         IN NS ns1. test .com.
ns1. test .com.   IN  A   172.16.128.0
www     IN  A   172.16.100.1
www     IN  A   172.16.100.2
www     IN  A   172.16.100.3
www     IN  A   172.16.100.4
web     IN  CNAME www

在这里每个字符串的含义如下:

SOA:Start of Authority,起始授权记录

 在任何一个数据库中有且只能有一条SOA记录,而且必须是数据库的第一条

      在这个文件中SOA用来记录这个域名的一些时间上的配置,上面的例子中“2017082301”代表的是版本,每一次修改这个数据文件都要同时修改这个版本号;“1H”代表的是刷新时间,即每个多久到主服务器检查数据是否更新,用于主从服务器,暂时可以不管,单位可以是——“什么都不写—秒”,“M—分钟”,“H—小时”,“D—天”,“W—周”等等;15M代表的是重试时间;1W代表过期时间;1D代表当主服务器停止工作之后从服务器最多工作时间。

A:Address,主机记录

      记录了网址即FQDN(完全合格域名)到IP地址的映射关系。

AAAA:Address,FQDN --> IPv6

     记录FQDN到IPv6的映射关系(暂时用不到)

PTR:PoinTeR,指针记录

 标识从IP地址到完全合格域名的映射关系,IP --> FQDN(用于反解析,即根据IP地址解析出网址是什么)

NS:Name Server,名称服务器记录

 用户标明当前域中所有的DNS服务器

CNAME:Conanical Name,别名记录

 host1 CNAME host2:host1的真名是host2——host1是host2的别名

  标识从完全合格域名到完全合格域名的映射关系

 FQDN --> FQDN

       例如:www.testA.com和www.testB.com是同一个IP地址则可以使用这个来进行标识

MX:Mail eXchanger,邮件交换器记录

 标识域中邮件服务器的主机名,从域名映射到完全合格域名,Domain name --> FQDN

 user@qq.com --> mail.qq.com

 优先级: 0-65536,数字越小优先级越高

在了解了每个字符串的含义之后就可以自己来进行编写合适的解析内容。接下来保存退出。

注意:此时创建出来的这个文件的属主和属组都是root,这样的文件named命令无法读取,所以需要使用chgrp或chown命令更改数组为“named”

1
~] # chown :named /etc/named/test.com.zone

wKioL1mdFAfysES3AAChxWjcdIM296.jpg-wh_50

第三步:修改/etc/named.conf配置

在这一步中修改/etc/named.conf配置文件的原因是这个文件是为了安全着想,屏蔽了未知主机的查询请求,所以我们只需要按照下图所示修改相应的选项然后保存即可

1
~] # vim /etc/named.conf

wKiom1mdDaXi6z4zAAEpNu8wwwI527.jpg-wh_50


第四步:重新加载配置文件

在上面的操作都完成之后,直接使用以下两条命令来重新加载配置文件即可

1
2
~] # rndc reload
~] # service named reload

加载成功的界面如下:

wKiom1mdDuTQOpd2AAAzGHWwTdk297.jpg-wh_50

如果加载失败,则使用“~]# named-checkconf”或者“named-checkzone”命令检查是否有拼写错误。如果没有则重启named服务(~]# service named restart)再试一试。

经过以上四步之后,一个DNS服务器就已经配置好了,我们可以使用“dig”、“host”、“lookup”这三个命令来进行查看,但是在CentOS中“dig”命令是使用最多的命令,所以在这里只进行dig命令的演示。

比如:查看www.test.com的IP地址:

1
~] # dig -t A www.test.com @172.16.128.0

wKioL1mdELmRNFkeAAE-DazHXL0579.jpg-wh_50

在使用了这个命令之后,dig将“www.test.com”对应的所有的IP地址全都列了出来

或者在上面定义的时候我们对“www.test.com”网址起了个别名,叫做“web.test.com”,此时,使用以下命令得到的结果,和使用“www.test.com”得到的结果是一样的:

1
~] # dig -t A web.test.com @172.16.128.0

或者我们还可以使用ping命令来进行验证,不过在使用“ping”命令之前要先修改“/etc/resolv.conf”文件,在这个文件的最后加上一句话:“nameserver 172.16.128.0”来指定DNS服务器。保存退出之后就可以使用ping命令来ping“www.test.com”网址了:  

~]# ping www.test.com

wKioL1mdEt_RXmt-AACHlYW0OSU773.jpg-wh_50


在这个例子中我们可以发现,虽然没能ping通,但是IP地址已经解析成功了,ping不通的原因是因为“172.16.100.4”这个IP地址不存在。



二、主从服务器的搭建

在日常的使用当中,无法避免的会有服务器因为突然出现故障从而无法提供服务,但是在互联网中,这样的事情是会致命的,所以我们要极力的去避免这种事情的发生。为此就出现了主从服务器的概念,通过一台另外的从服务器来进行备份,当主服务器出现意外之后,从服务器就及时的站出来应急,当主服务器恢复之后,从服务器再退回去。这样就实现了应急时的无缝处理。配置主从DNS服务器是在DNS服务器的基础上进行配置,所以比较简单,仅仅需要有限的几步即可配置完成,下面来进行详细的介绍。

第一步:打开从服务器的/etc/named.rfc1912.zones文件,在其中添加几句话

1
~] # vim /etc/named.rfc1912.zones
1
2
3
4
5
zone  "test.com"  IN {
         type  slave;
         masters { 172.16.128.0; };
         file  "slaves/test.com.zone" ;
};

   这样从服务器上就配置完成了

  第二步:配置主服务器上zone文件

   下面回到主服务器上,打开要备份到从服务器上的zone文件

1
~] # vim /etc/named/test.com.zone

将已经存在的文件修改为下面的样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ORIGIN  test .com.
$TTL 86400
@ IN  SOA ns1. test .com. admin. test .com. (
                                 2017082301;serial
                                 1M;refresh
                                 15M;retry
                                 1W;expire
                                 1D);TTL
         IN NS ns1. test .com.
         IN NS ns2. test .com.
         MX 10 mx1. test .com.
ns1. test .com.   IN  A   172.16.128.0
ns2. test .com.   IN  A   172.16.6.11
www     IN  A   172.16.100.1
www     IN  A   172.16.100.2
www     IN  A   172.16.100.3
www     IN  A   172.16.100.4
web     IN  CNAME www
mx1     IN  A   172.16.100.4

  其实仅仅是添加了两句话,分别是:

1
IN NS ns2. test .com.
1
ns2. test .com.   IN  A   172.16.6.11

  这两句话是告诉主服务器从服务器存在并且在哪里,添加完成之后保存退出即可

  第三步:重新加载配置文件

  在主服务器上使用命令“rndc”和“service named reload”

  然后回到从服务器上即可在/var/named/slaves/目录中查看到备份的zone文件

1
~] # head -4 /var/named/slaves/test.com.zone

这样在从服务器上使用dig命令,并且把自己当作DNS服务器也可以进行网址的解析了

wKioL1mdGuPA_IVmAAE28AedN9s500.jpg-wh_50

  而且当我们在主服务器上修改zone文件的版本号,保存退出并使用“rndc reload”命令之后,从服务器会再次的从主服务器上备份一个新的zone文件,这样就实现了及时的数据备份

wKioL1mdG5CzEmhnAADontl2_G0511.jpg-wh_50

wKioL1mdG8TwI2ReAACv01tUxwc730.jpg-wh_50


  注意:如果当在主服务器上修改了版本号之后,发现从服务器没有及时的更换新的数据文件,可能有以下几种原因:

    1.主服务器中的/etc/named.conf配置不对——请参考上面的例子重新配置(重点查看端口监听那)

    2.主服务器zone文件修改之后,版本号没有修改或者修改为了一个小于从服务器上的版本号,从服务器在查看时发现版本号没有修改或者小于自身则不进行备份

    3.防火墙或者selinux没有关闭

        使用“setenforce 0”命令避免selinux的影响

        使用“iptables -F”命令避免防火墙的影响

















本文转自正经的青年51CTO博客,原文链接: http://blog.51cto.com/11142243/1958634,如需转载请自行联系原作者


相关文章
|
1月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
79 4
|
1月前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
1月前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
2月前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c8i实例解析:实例规格性能及使用场景和最新价格参考
计算型c8i实例作为阿里云服务器家族中的重要成员,以其卓越的计算性能、稳定的算力输出、强劲的I/O引擎以及芯片级的安全加固,广泛适用于机器学习推理、数据分析、批量计算、视频编码、游戏服务器前端、高性能科学和工程应用以及Web前端服务器等多种场景。本文将全面介绍阿里云服务器计算型c8i实例,从规格族特性、适用场景、详细规格指标、性能优势、实际应用案例,到最新的活动价格,以供大家参考。
|
2月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
504 2
|
2月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
2月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
111 3
|
3月前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
85 4
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
109 2
|
27天前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

相关产品

  • 云解析DNS
  • 推荐镜像

    更多