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

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

在使用浏览器进行网上冲浪的时候,我们只需要输入网址即可访问,但是在网络中,网址并不是一个有效的东西,真正起作用的是网址所对应的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,如需转载请自行联系原作者


相关文章
|
15天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
|
25天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
29天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
70 3
|
2月前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
52 4
|
2月前
|
存储 固态存储 安全
阿里云服务器X86计算架构解析与X86计算架构云服务器收费价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中X86计算是用户选择最多的一种架构,本文将深入探讨阿里云X86计算架构的云服务器,包括其技术特性、适用场景、性能优势以及最新价格情况。
|
2月前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
2月前
|
域名解析 网络协议 CDN
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
|
2月前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
2月前
|
人工智能 关系型数据库 双11
2024年阿里双十一活动解析:助力大家优惠上云!云服务器79元1年起
2024年阿里云双十一活动已启动,提供云服务器79元1年起等特惠,涵盖云数据库、对象存储、无影云电脑等140余款产品免费试用,企业用户还可申请百万补贴金及5亿算力补贴,助力优惠上云。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面