搭建linux DNS服务器(转自蔡元纪老师的文章)

搭建linux DNS服务器

 

 

Linux系统下架设DNS服务器通常是使用Bind程序来实现的。Bind是Berkeley Internet Name Domain Service的简写,是一款架设DNS服务器的开放源代码软件。Bind原本是美国DARPA资助伯克里大学开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上绝大多数的DNS服务器都是用Bind来架设的。

Bind经历了第4版、第8版和最新的第9版,第9版修正了以前版本中的许多错误,并提升了执行时的效能。Bind能够运行在当前大多数的操作系统系统平台之上。目前Bind软件由ISC(Internet Software Consortium,因特网软件联合会)这个非赢利性机构负责开发和维护。ISC的官方网站域名为http://www.isc.org/,包含了Bind的最新错误修复和更新。

    今天我们介绍利用bind程序搭建linux下的主DNS服务器、唯缓存DNS服务器、辅助DNS服务器、DNS根提示以及关于bind穿越iptables防火墙设置等

 

 

1.主DNS服务器环境配置:

/etc/sysconfig/network-scripts/ifcfg-eth0文件内容如下图所示:

图片

/etc/sysconfig/network文件内容如下图所示:

图片

/etc/hosts文件内容如下图所示:

图片

重新启动network 服务方法如下图所示:

图片

/etc/resolv.conf文件内容如下图所示:

图片

2.安装所需bind软件包。

首先将linux5的安装光盘挂载到/media目录下,并且进入光盘目录的Server目录,然后安装bind-9.3.3、bind-chroot-9.3.3、caching-nameserver-9.3.3等软件包,最后设置named服务开机自动启动,具体操作方法如下图所示:

图片

3.生成bind主配置文件named.conf

由于bind-9软件包安装完毕后,默认没有该服务的主配置文件,所以需要手工进入/var/named/chroot/etc目录,将原有的named.caching-nameserver.conf文件复制一份,生成bind的主配置文件named.conf(在使用cp复制时需要带权限一同复制,所以需要加-a或-p选项),最后需要将/var/named/chroot/etc/named.conf 文件链接到/etc/下。具体操作如下图所示:

图片

4.编辑bind主配置文件named.conf,内容如下所示:将named.conf配置文件中的部分内容保留(如下图中部分所示),其它原内容删除,并添加其它相关内容。

图片

说明:

图中的作用是设置DNS转发器(即建立唯缓存服务器),如果本DNS服务器无法解析,则本DNS服务器向202.106.46.151转发解析请求;

上图中bind 9.x版本的新功能,作用是:当多台DNS服务器进行区域转移(复制)DNS更新时对数据进行加密处理;

图中是新建立一个正向查找区域,区域名为"example.com",该区域的类型为"主要区域",区域数据库文件为"example.com.zone";

上图中是新建立一个反向查找区域,区域名为"24.172.in-addr.arpa",该区域的类型为"主要区域",区域数据库文件为"172.24.zone";

每个区域的区域数据库文件名是自定义的(可随意起名,上图中的example.com和172.24.zone文件名都是随意命名的),但每个区域的名称是不能随意的(上图中的example.com和24.172.in-addr.arpa),而且反向区域的名称必须是"倒置"的(格式如上例中所示xx.xxx.in-addr.arpa)。

为了在主DNS服务器上控制允许哪些辅助DNS服务器复制DNS区域,可以在options区中添加allow-transfer { 辅助DNS服务器IP地址; }; ,当然该语句也可以写在zone区中;如果该语句写在options中,它可以控制整个DNS服务器上的所有区域复制;如果该语句写在zone区中,它只能控制它所在区域的复制。例:在上图中再添加 allow-transfer { 172.24.0.4; }; 语句即可以控制该服务器上的所有区域都允许 172.24.0.4复制。

5.建立DNS的正向区域和反向区域文件:

由于步骤4中的DNS正向和反向区域数据库文件名分别为example.com.zone和172.24.zone,所以我们需要在/var/named/chroot/var/named目录中建立以上两个文件,操作如下图所示:

图片

编辑正向区域数据库文件(vim example.com.zone),并添加如下图所示内容:

图片

其中:

$TTL 7200 为该区域记录缓存的生存周期

@ 代表区域名称

IN 代表该记录是标准的internet 记录

SOA 为记录类型 ,例如:A 记录、PTR记录、MX记录、CNAME记录、NS记录等

20912301 为序列号

15M 为辅助区域每隔15分钟到主区域复制

10M 为辅助区域如果复制不成功,每隔10分钟重试一次

1H 为如果辅助区域隔1小时还没有与主区域复制,将自动过期,并删除复制来的文件,并不再为客户端提供解析服务

1D 缓存那些不能解析的记录时间为1(缓解上一级DNS的压力,提高解析速度)

 

编辑反向区域数据库文件(vim 172.24.zone),添加如下图所示内容:

图片

6.启动bind服务,操作如下图所示:

图片

7.测试解析bind服务是否正确,操作如下图所示:

图片

二、搭建辅助DNS服务器

1.辅助DNS服务器环境配置:

[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 ,内容如下所示:

图片

  重新启动network服务之后,使用ifconfig eth0查看该服务器IP地址,如下图所示:

图片

2.安装bind所需软件包,并生成bind主配置文件named.conf,具体操作如下图所示:

图片

说明:由于图中所示语句中没有使用-a或-p选项,所以新文件named.conf的属组与原文件named.Caching-nameserver.Conf的属组不相同,导致DNS服务无法启动。因此需要修改bind主配置文件named.conf的属组,具体操作如下图所示:

图片

3.编辑bind主配置文件named.conf,并添加如下图所示的内容:

图片

说明:

上图中③是新建立DNS正向查找区域,区域名为example.com,该区域的类型为"辅助区域",区域数据库文件名为"example.com.zone",该辅助区域是从"172.24.254.254"的主区域复制而来。(注意:辅助区域名称要与主区域名称必须相同)

上图中是新建立DNS反向查找区域,区域名为24.172.in-addr.arpa,该区域的类型为"辅助区域",区域数据库文件名为"172.24.zone",该辅助区域是从"172.24.254.254"的主区域复制而来。

辅助区域数据库文件必须存储在/var/named/chroot/var/named/slaves/目录中,所以上图中的正向、反向数据库文件必须指定为"slave/*.*.zone"。

4.启动辅助DNS服务器的bind服务

首先进入/var/named/chroot/var/named/slaves/目录,使用ls查看,您会发现没有任何内容,然后再启动named服务,再使用ls查看,您会发现正向、反向区域数据库文件都已经复制过来。具体操作如下图所示:

图片

图片

如上图所示辅助DNS服务器的区域数据库文件已经复制成功。

当然如果主DNS区域数据库文件发生变化时,需要手工将"区域序列号"增加,然后在辅助DNS上重新启动named服务或使用命令:rndc refresh 区域名 两种方法都可以实现区域数据库文件的同步。 

三、设置DNS根示功能:

如果希望设置linux DNS服务器的根提示功能,可以在bind主配置文件named.conf中添加根区域,具体操作如下图所示:

图片

然后重新启动named 服务即可。

四、关于iptables防火墙设置:

DNS服务使用UDP的53号端口为客户端提供解析服务,但多台DNS之间的数据复制是通过TCP的53号端口进行。所以如果您的DNS服务器上运行了iptables防火墙,请在iptables中同时开启tcp的53号端口和udp的53号端口。操作方法如下图所示:

图片

 

关于DNS服务器就讨论到这里,(DNS的内容非常的多,使用方法与技术繁多)如果有问题请与我联系。

流星:caiyuanji (at) 163.com  QQ:85104942

一、搭建主DNS服务器与唯缓存服务器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值