CentOS 6.4 x64构建DNS服务器(主、从DNS Server)

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

前言

《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》发表于51CTO上来,一来,由于Q友们强烈建议发到51CTO博客上来;二来,我自己在配置此文时,也碰到“不少问题”,见招拆招!共同学习,互相借鉴之。CentOS 6.x与CentOS 5.x确实有点“Beyond”(谐音:不一样的),博友们,自己试试 :)

基本的网络环境规划为如下:

(1)主域名服务器

IP地址: 192.168.1.228/24    主机名:ns1.beyond.com

(2)从域名服务器

IP地址: 192.168.1.229/24     主机名:ns2.beyond.com   

一般中型、大型企业少不了DNS服务器(主DNS、从DNS服务器)、DHCP服务器(主DHCP、从DHCP服务器)、FTP服务器,既然是大、中型企业,服务器和客户端PC也比较多,那一般是域环境(单域或多域)等。

PS: 为了准确清楚、了解Linux(如:RedHat、SuSE、Debian等)发行版本信息,经常用如下命令查询:

image

一、DNS相关的基础知识

1、DNS服务器的主要作用:

   DNS服务器的主要作用: 维护一个主机域名与IP地址的对应关系数据库,在需要时为客户端网络程序提供2个方面的地址解析功能。

(1)正向解析:将主机的名称(域名)解析为对应的IP地址。 

       域名的正向解析是DNS服务器最基本的功能,也是最常用的功能!

(2)反向解析:把主机的IP地址解析为对应的域名。

       域名的反向解析不是很常用,却是DNS服务器不可缺少的功能,如 邮件服务 可能会用到域名反向解析结果实施访问控制策略;若缺少对应的反向解析记录可能会被列入“黑名单”中,导致接收不到邮件!PS:我就碰到过,后来我养成一个习惯:构建DNS服务器,一般而言,是会配置反向解析的。

2、DNS系统的结构:

    为了查询域名的效率高,故Internet中的域名系统采用了分布式的数据库方式,把不同的范围内的域名和IP地址对应关系交给不同的DNS服务器管理(授权)。分布数据库采用树型结构,全世界的域名系统具有唯一的“根”。(可惜呀……我们不能《把“根”留住》---在中国!)如下图所示:

image

3、DNS系统的类型:

     常见的DNS类型有:

(1)缓存域名服务器

       也叫“唯高速缓存服务器”,主要功能提供域名解析记录的缓存。不包含注册的DNS区域设置,只对用户查询过的域名解析记录进行缓存,当用户首次进行某个域名的查询时,缓存服务器通过向根域服务器及其他DNS服务器查询并将结果保存在地缓存中。可提高常用域名的查询速度,因此特别适合在企业局域网内部使用。

(2)主域名服务器

       主域名服务器是唯一的,在Internet中。其管理的域名解析记录具有权威性!主域名服务器需要在本地设置所管理区域的地址数据库文件。

(3)从域名服务器

      也叫辅助域名服务器,主要功能是提供备份,通常与主域名服务器同时提供服务,对于客户端而言,主、从域名服务器提供完全相同的功能!但是从DNS Server提供的地址解析记录并不由自己决定的,她的命令运掌握在主域名服务器的手中。她适应“环境”的能力特强:她的地址数据库随着主域名服务器的地址数据库变化而变化!

二、BIND域名服务基础

1、安装BIND软件

   由于是用在生产环境中,以安全稳定为主!而且采用的是CentOS6.4 64bit的OS,故就用光盘中的BIND软件安装。

先来查看哈,如下图所示:

image

PS : 上图中主要的软件包作用如下:

(1)bind : 提供了域名服务的主要程序及相关文件;

(2)bind-utils : 提供了对DNS服务器的测试工具程序(如:nslookup、dig etc)

(3)bind-chroot : 为bind提供一个伪装的根目录以增强安全性;

    (注:新版本CentOS 6.x 已将chroot所需使用的目录,透过mount --bind的功能进行目录

     链接了,故在CentOS 6.x中,根本无须切换到/var/named/chroot/了只需按常规目录操

     作 即可!)请cat /etc/sysconfig/named目录,其下是不是有“ROOTDIR="/var/named/chroot

(4)caching-nameserver : 为配置BIND作为缓存域名服务器提供必要的默认配置文件,这些文件在配置主、从域名服务器时也可作为参考。(CentOS 6.x后没有caching-nameserver包了

//安装主程序包

1
2
3
[root@ns1 Packages]# rpm -ivh bind- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm
[root@ns1 Packages]# rpm -ivh bind-chroot- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm
[root@ns1 Packages]# rpm -ivh bind-utils- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm

//查看哈……

1
2
3
4
5
6
[root@ns1 ~]# rpm -qa bind*
bind-chroot- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind-libs- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind-utils- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind- 9.8 . 2 - 0.17 .rc1.el6.x86_64
[root@ns1 ~]#

2. 简单的方法,才是最好的方法!一般而言,DNS服务器配置流程主要分为3步:

(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径;(/etc/named.conf/etc/named.rfc1912.zones)

(2)建立区域文件,依据named.conf文件中指定的路径来建立区域文件,此文件主要记录该区域内的资料记录;(/var/named/fjian.com/etc/named/named.192.168.1.rev)

(3)重新加载配置文件或重启named服务使用配置生效。

(chkconfig named  on、chkconfig  --add named、service  named start/restart etc)

下面详细配置:

(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径; 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@ns1 ~]# vim  /etc/named.conf
10  options {
11          listen-on port  53  { any; };
12        //listen-on-v6 port 53 { ::1; };  //注销此行!
17          allow-query     { any; };
:wq 回车!
[root@ns1 ~]# cd /etc/
[root@ns1 etc]# cp -p named.rfc1912.zones   named.rfc1912.zones.bak
[root@ns1 etc]# vim named.rfc1912.zones
//先按shift + G 然后,添加如下内容:
zone  "fjian.com"  IN {    //设置正向DNS区域名称
type master;
file  "fjian.com" ;    //设置对应的正向区域地址数据库文件
allow-transfer  { 192.168 . 1.229 ;}; //允许下载区域数据库信息的从域名服务器IP地址
};
zone  "1.168.192.in-addr.arpa"  IN {     //设置反向DNS区域名称
type master;
file  "192.168.1.rev" ;      //设置对应的反向区域地址数据库文件
allow-transfer  { 192.168 . 1.229 ;};
};

//检查配置文件:      

1
named-checkconf

(2)建立区域文件,依据named.conf文件中指定的路径来建立区域文件,此文件主要记录该区域内的资料记录;

//正向解析配置文件:      

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@ns1 ~]# cd / var /named/
[root@ns1 named]# vim fjian.com
$TTL     86400
@               IN SOA  @         root (
2013051800       ; serial (d. adams)
28800            ; refresh
14400            ; retry
3600000          ; expiry
86400  )         ; minimum
@               IN NS           ns1.fjian.com.
IN NS           ns2.fjian.com.
IN A              192.168 . 1.228
IN MX  5          mail.fjian.com.
ns1             IN A              192.168 . 1.228
ns2             IN A              192.168 . 1.229
mail             IN A              192.168 . 1.228
www             IN A             192.168 . 1.228

//检查正向区域配置文件:    

1
[root@ns1 ~]# named-checkzone fjian.com.  / var /named/fjian.com

//反向解析配置文件:     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@ns1 named]# vim  192.168 . 1 .rev
vim  192.168 . 1 .rev
$TTL     86400
@       IN      SOA     localhost. root.localhost.  (
2013051800      ; Serial
28800           ; Refresh
14400           ; Retry
3600000         ; Expire
86400  )        ; Minimum
@         IN      NS      ns1.fjian.com.
IN      NS       ns2 .fjian.com.
228        IN      PTR     ns1.fjian.com.
229        IN      PTR     ns2.fjian.com.
@         IN      MX  5     mail.fjian.com.
228        IN      PTR     mail.fjian.com.
228        IN      PTR     www.fjian.com.

//检查反向区域配置文件:   

1
[root@ns1 named]#named-checkzone   1.168 . 192 . in -addr.arpa.   / var /named/ 192.168 . 1 .rev

3)重新加载配置文件或重启named服务使用配置生效

1
2
3
4
5
[root@ns1 ~]#chkconfig  --list  named
[root@ns1 ~]#chkconfig  named on
[root@ns1 ~]#chkconfig  --list named
[root@ns1 ~]#chkconfig  --add named
[root@ns1 ~]#service  named restart

3.   验证能否解析,如下图所示:

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
29
30
31
[root@ns1 etc]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[root@ns1 etc]# nslookup
192.168 . 1.228
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
228.1 . 168.192 . in -addr.arpa    name = ns1.fjian.com.
228.1 . 168.192 . in -addr.arpa    name = mail.fjian.com.
228.1 . 168.192 . in -addr.arpa    name = www.fjian.com.
> ns1.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    ns1.fjian.com
Address:  192.168 . 1.228
> mail.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    mail.fjian.com
Address:  192.168 . 1.228
> www.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    www.fjian.com
Address:  192.168 . 1.228
> ns2.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    ns2.fjian.com
Address:  192.168 . 1.229
>

image

 

二、构建从DNS服务器

 

从域名服务器作为主服务器的冗余备份,与主域名服务器一起,同时提供本域内主机名与IP地址的解析,从域名服务器的地址数据库需从主域名服务器中定期更新。

(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@ns2 ~]# vim  /etc/named.conf
10  options {
11          listen-on port  53  { any; };
12        //listen-on-v6 port 53 { ::1; };  //注销此行!
17          allow-query     { any; };
:wq 回车!
[root@ns2 ~]# cd /etc/
[root@ns2 etc]# cp -p named.rfc1912.zones   named.rfc1912.zones.bak
[root@ns2 etc]# vim named.rfc1912.zones
//先按shift + G 然后,添加如下内容:
zone  "fjian.com"  IN {
type slave;
masters { 192.168 . 1.228 ;};
file  "slaves/fjian.com" ;
};
zone  "1.168.192.in-addr.arpa"  IN {
type slave;
masters { 192.168 . 1.228 ;};
file  "slaves/192.168.1.rev" ;
};
:wq  回车

2. 执行如下操作:

1
2
3
4
5
6
7
8
9
[root@ns2 ~]# chkconfig --list named
named               0 :off     1 :off     2 :off     3 :off     4 :off     5 :off     6 :off
[root@ns2 ~]# chkconfig named on
[root@ns2 ~]# chkconfig --list named
named               0 :off     1 :off     2 :on     3 :on     4 :on     5 :on     6 :off
[root@ns2 ~]# chkconfig --add named
[root@ns2 ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]

3. 数据同步测试

经过上面重启从域名服务器named服务,使其与主域名服务器数据同步,成功后,在系统日志文件中可以看到下载区域数据库文件的记录,在“/var/named/chroot/var/named/slaves/” (/var/named/slaves/)目录中也可以看到自动保存的区域数据库文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@ns2 ~]# tail / var /log/messages
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone  1.0 . 0.127 . in -addr.arpa/IN: loaded serial  0
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone  1.168 . 192 . in -addr.arpa/IN: loaded serial  2013051800
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone  1.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 . 0.0 .ip6.arpa/IN: loaded serial  0
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone fjian.com/IN: loaded serial  2013051800
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone localhost.localdomain/IN: loaded serial  0
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone localhost/IN: loaded serial  0
May  19  21 : 56 : 49  ns2 named[ 2123 ]: managed-keys-zone ./IN: loaded serial  3
May  19  21 : 56 : 49  ns2 named[ 2123 ]: running
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone fjian.com/IN: sending notifies (serial  2013051800 )
May  19  21 : 56 : 49  ns2 named[ 2123 ]: zone  1.168 . 192 . in -addr.arpa/IN: sending notifies (serial  2013051800 )
//用ll 查看/var/named/slaves/下,是否有自动保存的区域数据库文件
[root@ns2 ~]# ll / var /named/slaves/
total  8
-rw-r--r--.  1  named named  462  May  19  21 : 45  192.168 . 1 .rev
-rw-r--r--.  1  named named  450  May  19  21 : 45  fjian.com
[root@ns2 ~]#

4. 验证从域名服务器

       将客户端PC的首选DNS设置从域名服务器的IP地址(192.168.1.229),再如下图所示操作:

image

PS: 《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》至此完毕!其实还有《构建分离解析的域名服务器》也比较实用!!有心的朋友自己研究哈!

 


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

相关文章
|
20天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
76 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
23天前
|
传感器 C# Android开发
深度解析Uno Platform中的事件处理机制与交互设计艺术:从理论到实践的全方位指南,助您构建响应迅速、交互流畅的跨平台应用
Uno Platform 是一款开源框架,支持使用 C# 和 XAML 开发跨平台原生 UI 应用,兼容 Windows、iOS、Android 及 WebAssembly。本文将介绍 Uno Platform 中高效的事件处理方法,并通过示例代码展示交互设计的核心原则与实践技巧,帮助提升应用的用户体验。事件处理让应用能响应用户输入,如点击、触摸及传感器数据变化。通过 XAML 或 C# 添加事件处理器,可确保及时反馈用户操作。示例代码展示了一个按钮点击事件处理过程。此外,还可运用动画和过渡效果进一步增强应用交互性。
129 57
|
24天前
|
机器学习/深度学习 存储 人工智能
让模型评估模型:构建双代理RAG评估系统的步骤解析
在当前大语言模型(LLM)应用开发中,评估模型输出的准确性成为关键问题。本文介绍了一个基于双代理的RAG(检索增强生成)评估系统,使用生成代理和反馈代理对输出进行评估。文中详细描述了系统的构建过程,并展示了基于四种提示工程技术(ReAct、思维链、自一致性和角色提示)的不同结果。实验结果显示,ReAct和思维链技术表现相似,自一致性技术则呈现相反结果,角色提示技术最为不稳定。研究强调了多角度评估的重要性,并提供了系统实现的详细代码。
46 10
让模型评估模型:构建双代理RAG评估系统的步骤解析
|
2天前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
1天前
|
域名解析 存储 缓存
域名解析 DNS:连接数字世界的关键枢纽
在数字世界中,DNS(域名解析系统)如同一位至关重要的引路人,将我们输入的域名与对应的IP地址相连,使我们可以轻松访问各种网站和服务。它通过多级服务器查询,将易于记忆的域名转换为复杂的IP地址,极大提升了互联网的易用性和普及度。尽管面临网络延迟和域名数量激增等挑战,通过分布式系统和缓存技术等创新方案,DNS 系统将持续发展,为用户提供更安全、高效的网络体验。
9 2
ly~
|
4天前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
17 3
|
3天前
|
域名解析 缓存 网络协议
【网络】DNS,域名解析系统
【网络】DNS,域名解析系统
15 1
ly~
|
4天前
|
域名解析 网络协议 Linux
如何测试 DNS 记录中的反向代理服务器是否生效?
本文介绍了三种测试反向代理服务器配置的方法。首先,通过命令行工具如 `ping`、`nslookup` 和 `dig` 检查域名解析是否指向正确的 IP 地址。其次,利用 Web 浏览器访问域名,验证页面加载正常且请求头信息无误。最后,借助网络抓包工具如 `Wireshark` 和 `tcpdump` 分析数据包,确保请求正确转发并返回预期响应。
ly~
17 2
|
25天前
|
存储 缓存 自然语言处理
深度解析ElasticSearch:构建高效搜索与分析的基石
【9月更文挑战第8天】在数据爆炸的时代,如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch,作为一款基于Lucene的开源分布式搜索和分析引擎,凭借其强大的实时搜索、分析和扩展能力,成为了众多企业的首选。本文将深入解析ElasticSearch的核心原理、架构设计及优化实践,帮助读者全面理解这一强大的工具。
114 7
|
20天前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的坚固防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的关键防线。本文旨在深入探讨网络安全漏洞的成因与影响,解析加密技术如何筑起数据安全的屏障,并强调提升公众安全意识的重要性,共同绘制一幅数字时代安全防护的蓝图。
本文聚焦网络安全与信息安全领域,通过剖析网络安全漏洞的多样形态及其背后成因,揭示其对个人、企业乃至国家安全的潜在威胁。随后,详细阐述了加密技术的原理、分类及应用,展现其在保护数据安全方面的核心作用。最后,强调了提升全民网络安全意识的紧迫性,提出具体策略与建议,旨在构建一个更加安全、可靠的数字环境。

相关产品

  • 云解析DNS