仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 528|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] Linux教程之在CentOS的VPS上安装DNS服务器

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:45:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!DNS是域名系统(DomainNameSystem)的缩写,它的作用是将主机名解析成IP(正向解析),从IP地址查询其主机名(反向解析)。
DNS的工作原理
(1)客户机发出查询请求
当被询问到有关本域中的主机名称的时候,DNS服务器会直接做出回答。如果所查询的主机名称属于其它域的话,则会检查缓存中有没有相关资料,如果没有发现则会转向root服务器查询,然后root服务器会将该域名的授权(authoritative)服务器(可能会超过一台)的地址告知本地服务器,然后会向其中的一台服务器查询,并将这些服务器名单存到缓存中以备将来之需(省去再向root查询的步骤)。

(2)远方服务器回应查询
将查询结果回应给客户,并同时将结果存储一个备份在自己的缓存里面,如果在存放时间尚未过时之前再接到相同的查询,则以存放于缓存里面的资料来做回应。

DNS服务器分类
1.主域名服务器(master)
主域名服务器是一个域或区域的管理权威。这个服务器的主要责任就是解析域或区域内的所有主机的名称。可以使用一个或多个辅域名服务器作为主域名服务器的备份。

2.辅域名服务器(slave)
辅域名服务器是备份服务器。它们不是域区源数据存放的地方,但它们也授权响应域名的查询。辅域名服务器通常从域的主域名服务器获得域区数据。辅服务器也被称为从属服务器。

3.唯高速缓存服务器(hint)
缓存服务器负责临时存储主域名服务器己解析过域名记录。

打算用两个vps,一个做主域名服务器,一个做辅助域名服务器。系统用的是CentOS5.6(32bit)。
Linux上常用的是bind,包括以下软件包:
bindbind-libsbind-utilsbind-chrootcaching-nameserver

bind是DNS服务器软件
bind-libs是bind使用的库
bind-utils是bind查询工具
caching-nameserver唯高速缓存服务器

一、安装DNS服务器
1.开始安装DNS服务器:
yuminstallbindbind-libsbind-utilsbind-chroot
这里更新源上的版本是bind9.3.6-16.P1.el5,DNS的配置文件放在/var/named/chroot目录下。
2.复制配置规范文件:
cp/usr/share/doc/bind-9.3.6/sample/etc/*/var/named/chroot/etc
cp-a/usr/share/doc/bind-9.3.6/sample/var/named/*/var/named/chroot/var/named
相关配置文件说明:
主配置文件:/var/named/chroot/etc/named.conf设置一般的named参数,指向该服务器使用的域数据库的信息源。
根域名服务器指向文件:/var/named/chroot/var/named/named.root指向根域名服务器,用于唯高速缓存服务器的初始配置。
正向解析文件:/var/named/chroot/var/named/localhost.zonelocalhost区文件,用于将名字localhost转换为本地回送IP地址(127.0.0.1),正向解析。
反向解析文件:/var/named/chroot/var/named/named.locallocalhost区文件,用于将本地回送IP地址(127.0.0.1)转换成名字localhost,反向解析。

3.尝试启动DNS服务器:
servicenamedrestart
显示:
Stoppingnamed:[OK]
Startingnamed:[FAILED]
查看系统日志:
cat/var/log/messages|grepnamed
发现错误:
mynamed[1384]:/etc/named.conf:100configuringkey‘ddns_key’:badbase64encoding
是没有ddns_key造成的,执行/usr/sbin/dns-keygen来生成TSIGkeys。然后替换named.conf中
secret“use/usr/sbin/dns-keygentogenerateTSIGkeys”;引号内的内容。
/usr/sbin/dns-keygen
5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI
编辑/var/named/chroot/etc/named.conf文件,添加ddns_key:
vim/var/named/chroot/etc/named.conf
修改如下:
keyddns_key
{
algorithmhmac-md5;
secret“5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI”;
};
添加好ddns_key后,重启named服务成功,但是DNS服务器还不能使用,需要进行其他配置。
4.我们看到在named.conf文件中有这样几个区块:
options//设置data相关文件,对data/目录要有写的权限
logging//debuglog
view“localhost_resolver”//本地解析,cachingonlynameserver
view“internal”//限定同一个局域网的内部用户使用
keyddns_key//设置ddnskey
view“external”//限制外部用户请求这个DNS服务器

5.首先设置/var/named/chroot/var/named/data目录的用户和组为named:named:
cd/var/named/chroot/var/named
chownnamed:nameddata
6.为/var/named/chroot/var/named目录添加写权限:
cd/var/named/chroot/var
chmodg+wnamed
如果这个目录没有写权限的话,named服务可以启动,但是系统日志里会有,”theworkingdirectoryisnotwritable”错误。
7.修改name.conf中view“external”区域内设置:
vim/var/named/chroot/etc/named.conf
recursionyes;//打开递归
allow-query-cache{any;};//允许查询缓存
8.再重启DNS服务器:
servicenamedrestart
Stoppingnamed:[OK]
Startingnamed:[OK]
启动成功。
此时查看日志:
tail-30/var/log/messages|grepnamed
没有报错即可。
9.设置开机自启动:
chkconfigClevelnamed345on
此时这个DNS服务器就可以使用了。
windows系统下修改网络连接里的DNS服务器地址用ping、nslookup命令测试。
linux系统修改/etc/resolv.conf里的nameserver地址,使用host、dig、nslookup命令测试。

二、配置区域主域名服务器
以test.com域为例子:
www.test.com192.168.1.100//web服务
ns.test.com192.168.1.101//域名服务
work.test.com192.168.1.100
mail.test.com192.168.1.103//邮件服务
ftp.test.com192.168.1.104//文件服务

1.编辑/var/named/chroot/etc/named.rfc1912.zones文件:
vim/var/named/chroot/etc/named.rfc1912.zones
在最后添加正向解析区域test.com:
zone“test.com”IN{
typemaster;
file“test.com.zone”;
allow-update{none;};
};
然后添加反向解析区域1.168.192.in-addr.arpa:
zone“1.168.192.in-addr.arpa”IN{
typemaster;
file“test.com.resv”;
allow-update{none;};
};
2.创建正向解析数据文件/var/named/chroot/var/named/test.com.zone:
cd/var/named/chroot/var/named
cplocalhost.zonetest.com.zone
3.编辑test.com.zone文件:
vimtest.com.zone
修改如下
$TTL  86400
@    INSOA@  root(
42     ;serial(d.adams)
3H     ;refresh
15M     ;retry
1W     ;expiry
1D)     ;minimum
INNS     ns.test.com.
www   INA     192.168.1.100
ns    INA     192.168.1.101
work   INCNAME   www
mail    INA     192.168.1.103
@     INMX10   mail.test.com.
ftp     INA     192.168.1.104
4.创建反向解析数据文件/var/named/chroot/var/named/test.com.resv:
cpnamed.localtest.com.resv
5.编辑test.com.resv文件:
vimtest.com.resv
修改如下
$TTL  86400
@  IN  SOA  localhost.root.localhost.(
1997022700;Serial
28800  ;Refresh
14400  ;Retry
3600000 ;Expire
86400) ;Minimum
IN  NS  ns.test.com.
100  IN  PTR  www.test.com.
101  IN  PTR  ns.test.com.
103  IN  PTR  mail.test.com.
104  IN  PTR  ftp.test.com.
6.编辑named.conf,将test.com区域加入到view“external”中:
vim/var/named/chroot/etc/named.conf
由于zone“test.com”是写在named.rfc1912.zones文件中的,在view“external”中添加:
include“/etc/named.rfc1912.zones”;
7.重启服务:
servicenamedrestart
此时客户端请求解析test.com域会直接使用设置的参数,不会向根去询问。
三、配置辅域名服务器
配置辅域名服务器相对来说简单不少,只要主配置文件中加入一个区域,然后指定可以更新信息的主域名服务器就可以了,无需配置区域数据库文件。

1.编辑/var/named/chroot/etc/named.rfc1912.zones文件:
vim/var/named/chroot/etc/named.rfc1912.zones
在最后添加正向解析区域test.com:
zone“test.com”IN{
typeslave;
file“slaves/test.com.hosts”;
masters{1.1.1.1;};//这里填主DNS服务器IP
};
然后添加反向解析区域1.168.192.in-addr.arpa:
zone“1.168.192.in-addr.arpa”IN{
typeslave;
file“slaves/test.com.resv”;
masters{1.1.1.1;};//这里填主DNS服务器IP
};
2.编辑named.conf,将named.rfc1912.zones文件加入到view“external”中:
vim/var/named/chroot/etc/named.conf
在view“external”中添加:
include“/etc/named.rfc1912.zones”;
3.设置/var/named/chroot/var/named/slaves目录用户和组为root:named:
cd/var/named/chroot/var/named
chownroot:namedslaves
为/var/named/chroot/var/named/slaves添加写权限:
chmodg+wslaves
named用户对slaves目录没有写权限会同步不了主域名服务器上的解析数据文件。
4.重启DNS服务:
servicenamedrestart
5.查看/var/named/chroot/var/named/slaves目录:
产生test.com.hoststest.com.resv文件,说明更新成功。

需要注意:
1)主从服务器中正/反向zone名称必须一致。
2)从服务器中file可指定相对路径,也可指定绝对路径。
3)需将辅助DNS服务器的首选DNS服务器指向为主DNS服务器。



如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
海妖 该用户已被删除
沙发
发表于 2015-1-16 22:29:05 | 只看该作者

Linux教程之在CentOS的VPS上安装DNS服务器

把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-25 23:42:34 | 只看该作者
熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-4 19:06:07 | 只看该作者
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-10 06:27:16 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-1 03:16:33 | 只看该作者
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
若相依 该用户已被删除
7#
发表于 2015-3-10 15:03:49 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
山那边是海 该用户已被删除
8#
发表于 2015-3-17 10:23:48 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
兰色精灵 该用户已被删除
9#
发表于 2015-3-24 08:51:38 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 03:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表