LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2836|回复: 7

[学习笔记]搭建DNS服务

[复制链接]
发表于 2007-10-22 10:31:29 | 显示全部楼层 |阅读模式
学习笔记

搭建DNS服务器

实验环境:
操作系统:RHEL 5
网段:192.168.0.0/255.255.255.0
服务器地址:192.168.0.1

目标:
搭建DNS服务器,允许192.168.0.0/255.255.255.0网段的客户端查询。
仅允许辅DNS服务器从主服务器下载DNS信息。
设置正向解析和反向解析。
配置辅DNS服务器,服务器IP:192.168.0.254
配置客户端可以从DNS服务器查询。


步骤:

安装DNS服务包bind
安装配置文件包caching-nameserver
安装bind-chroot增强安全性

要说明下,安装bind-chroot这个包后
bind的配置文件被转移到/var/named/chroot中来了
而不是原来的地方哦。


写配置文件。
进如/var/named/chroot/etc
我直接拷贝了俄caching-nameserver的配置模版
cp named.caching-nameserver.conf named.conf
编辑named.conf

为了以下设置方便,我采用acl声明了我的子网范围:
acl “munet” {
        192.168.0.0/24;
};

listen-on选项声明了监听范围,把子网的范围全部添加进去。
Listen-on port 53 { 127.0.0.1; mynet; };
allow-query设定允许查询的主机,同样添加mynet

下面有个include
我们要用自己的配置文件,所以把
include “/etc/named.rfc1912.zones”改成include “/etc/named.zones”
这里我们要设置区域文件的配置

拷贝zones模版
cp named.rfc1912.zones named.zones
修改named.zones配置

因为我要设定的domain是alin
所以添加如下配置:
zone “alin” IN {
        type master;
        file “alin.zone”;
        allow-update { none; };
};

然后添加alin的zone文件:
进入/var/named/chroot/var/named/
把localhost.zone cp 成alin.zone当模版用
编辑alin.zone
做如下设置
server1        IN A        192.168.0.1
server2        IN A        192.168.0.254
然后为server1.alin设置别名
server                IN CNAME        server1
设置主机信息
server                IN HINFO        “AMD””Fedora”
这里要写两个文本,表示硬件等级和操作系统
dns1.server        IN CNAME        server1
dns2.server        IN CNAME        server2
nis1.server        IN CNAME        server1
nis2.server        IN CNAME        server2
search                IN CNAME        server1.alin.
mail                IN CNAME        server1.alin
这里如果要写域名全名,比如在后面加一个点哦
设置邮件服务器地址
mail                IN MX 5        server1


另外
AAAA表示IPv6格式
NS声明DNS主机
TXT只是说明文件
PRT是反向解析

保存。这样DNS的正向解析似乎就做好了。
启动DNS。失败。
检查语法,没错,每条设置后面的分号“;”也有。
ls -l看以下。
原来我们cp过去的文件权限是root的
OK
chown root:named /var/named/chroot/etc/*
chown root:named /var/named/chroot/var/named/*

OK
启动named,搞定。

nslookup以下
nslookup server.alin
搞定。


设置反向解析。
在/var/named/chroot/etc/named.zone区域文件配置中添加反向解析配置
zone “0.168.192.in-addr.arpa” IN {
        type master;
        file “named.alin”;
        allow-update { none; };
};

然后添加alin的反向解析文件:
进入/var/named/chroot/var/named/
把named.local cp 成named.alin当模版用
记录格式如下
1        IN        PTR        server1.alin.
1        IN        PTR        server.alin.
254        IN        PTR        server2.alin.
保存退出。重启服务。注意权限。chwon一下。
nslookup 192.168.0.1
搞定。


到这里,主DNS服务器搭建基本完成。




搭建辅DNS服务器

装好DNS的三个包。
写配置文件。
进如/var/named/chroot/etc
我直接把主DNS服务器的named.conf和named.zones两个配置拷了过来修改。
修改我们的alin域和反向解析
把type master改成type slave
把allow-update选项去掉,改成主DNS服务器的地址
masters { 192.168.0.1; };
把区域文件设定放在slaves文件夹里面
file “alin.zone”改成 file”slaves/alin.zone”
file “named.alin”改成 file”slaves/named.alin”

chown root:named *

重启DNS,成功。查看/var/named/chroot/var/named/slaves
没东西。为什么?
因为没有在主DNS设置允许辅DNS的授权。

OK,回到主DNS服务器上。
修改named.conf
在解决方案中添加辅DNS机器。
View localhost_resolver {
        match-clients                { localhost; 192.168.0.254; };
        match-destinations        { localhost; };
        rescursion yes;
        include “/etc/named.zones”;
};
重启主DNS服务器
重启辅DNS服务器

查看辅DNS服务器的slaves文件夹,OK。正向解析文件和反向解析文件都给更新过来了。


补充:
在zone文件里面,@表示本地。
zone配置文件SOA里面serial是版本号,如果主DNS服务器和辅DNS服务器的serial相同,则不更新。
refresh是主动更新时间,单位是秒



配置客户端
在/etc/resolv.conf中添加
dns地址即可
nameserver 192.168.0.1
nameserver 192.168.0.254


更新时间:10212207
 楼主| 发表于 2007-10-22 10:33:34 | 显示全部楼层
我有一个疑问
我在refresh里面设置更新时间是30
重试时间是10秒
但是实际更新时间大概在1-3分钟左右
这个是为什么呢?
我用的是虚拟机。这个是和虚拟机有关,还是是我的配置问题?
回复 支持 反对

使用道具 举报

发表于 2007-10-22 12:03:12 | 显示全部楼层
TTL 大于 refresh 的时候客户端会在TTL超时后才请求dns下次解析! slave改了但client未必会立刻重新请求!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-24 12:13:26 | 显示全部楼层
恩,十分感谢解答。
我下午再试试看~~~
^_^
回复 支持 反对

使用道具 举报

发表于 2007-11-21 16:03:18 | 显示全部楼层
LZ,问一个问题,我看其他资料的时候发现说安装好BIND后,都会自动生成一个named.conf文件,但是我没有找到,无论是在/etc还是在/var/named/choot/etc下,我都没有找到,而且我觉得啊,安装choot就是为了不让root有权限去更改DNS配置的,从而达到安全的目的,你给他权限了,我觉得貌似安装choot就没有什么必要了,你觉得呢?
回复 支持 反对

使用道具 举报

发表于 2007-11-21 17:04:03 | 显示全部楼层
Post by willfate815;1785622
LZ,问一个问题,我看其他资料的时候发现说安装好BIND后,都会自动生成一个named.conf文件,但是我没有找到,无论是在/etc还是在/var/named/choot/etc下,我都没有找到,而且我觉得啊,安装choot就是为了不让root有权限去更改DNS配置的,从而达到安全的目的,你给他权限了,我觉得貌似安装choot就没有什么必要了,你觉得呢?


1. caching-nameserver 包你装了吗? /etc/named.conf 文件在RedHat系统里是由这个包安装的!

2. 建议你先了解chroot的作用再下定论!
回复 支持 反对

使用道具 举报

发表于 2008-5-21 15:50:47 | 显示全部楼层
我还真的很多看不懂呀    真是菜鸟
回复 支持 反对

使用道具 举报

发表于 2009-2-26 11:07:38 | 显示全部楼层
谢谢,很清楚
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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