linux下DNS服务器配置
DNS服务的配置是个比较复杂的过程,在这里先介绍服务器的搭建过程,服务搭好之后再详细介绍
一、安装相关软件
[root@localhost bin]# yum install bind bind-chroot bind-utils caching-nameserver -y
[root@localhost bin]# rpm -qa | egrep bind
bind-utils-9.3.6-4.P1.el5_4.2 #######DNS工具包
bind-9.3.6-4.P1.el5_4.2 #######DNS软件包
bind-libs-9.3.6-4.P1.el5_4.2 #######DNS库文件包
ypbind-1.19-12.el5 #######DNS客户端搜寻主机的相关密令包
bind-chroot-9.3.6-4.P1.el5_4.2 ####禁锢DNS主目录
[root@localhost bin]# rpm -qa | egrep caching
caching-nameserver-9.3.6-4.P1.el5_4.2 #####样例包,缓存服务器包
在安装caching-nameserver之后,会生成named.caching-nameserver.conf,这是DNS缓冲配置文件,而named.conf 就是DNS的配置文件。
DNS解析的一般过程就是首先查找缓冲文件,如果缓冲文件没有然后才进行解析。展现一下DNS的树形图,便于对dns配置文件路径的理解。
[root@localhost chroot]# pwd
/var/named/chroot
[root@localhost chroot]# tree
.
|-- dev
| |-- null
| |-- random
| `-- zero
|-- etc
| |-- localtime
| |-- named.caching-nameserver.conf
| |-- named.rfc1912.zones
| `-- rndc.key
`-- var
|-- log
|-- named
| |-- data
| |-- localdomain.zone
| |-- localhost.zone
| |-- named.broadcast
| |-- named.ca
| |-- named.ip6.local
| |-- named.local
| |-- named.zero
| `-- slaves
|-- run
| `-- named
`-- tmp
二、DNS服务所需文件的配置
1、DNS主配置文件/var/named/chroot/etc/named.conf的修改
这个文件时不存在的,所以我将安装caching-nameserver之后生成named.caching-nameserver.conf 复制成named.conf
cp named.caching-nameserver.conf named.conf, 然后对这个文件进行修改
[root@localhost etc]# cat named.conf
下面的黑色部分就是我自己要设置的域avil.com
2、主配置文件完成后,就开始设置zone文件/var/named/chroot/etc/avil.com.zones
[root@localhost etc]# cp -a named.rfc1912.zones avil.com.zones ###-a 保证所有的权限一致
3、DNS 区域数据库配置文件/var/named/chroot/var/named/avil.com.zone
[root@localhost named]# pwd
/var/named/chroot/var/named
[root@localhost named]# cp -a localhost.zone avil.com.zone
[root@localhost named]# vi avil.com.zone
接下来将服务器的DNS改为我的本机
[root@localhost named]# cat /etc/resolv.conf
nameserver 192.168.254.153
search localdomain
[root@localhost named]# service named restart
停止 named: [确定]
启动 named: [确定]
三、开始测试能否解析
全都解析成功。
########以上就是DNS解析的配置截图#######下面我把自己的配置贴出来#######
四、配置文件的部分介绍
1、主配置文件
[root@localhost etc]# cat /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; }; #DNS服务的端口号53
listen-on-v6 port 53 { any; };
directory "/var/named"; #定义区域数据库配置文件的目录
dump-file "/var/named/data/cache_dump.db"; #缓存信息
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt"; # DNS的一些统计数据
allow-query { any; }; #允许查询
allow-query-cache { any; }; #允许查询缓存
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "avil.com" IN {
type master;
file "avil.com.zone";
allow-update { none; };
};
zone "254.168.192-addr.arpa" IN {
type master;
file "192.168.254.local";
allow-update { none; };
};
----------------------------------------------------------------------------------
2、 zone配置文件
[root@localhost etc]# cat /var/named/chroot/etc/avil.com.zones
zone "avil.com" IN {
type master;
file "avil.com.zone";
allow-update { none; };
};
zone "254.168.192.in-addr.arpa"{
type master;
file "avil.com.arpa.zone";
allow-update { none; };
};
-----------------------------------------------------------------------------------
3、DNS区域数据库配置文件
[root@localhost named]# cat /var/named/chroot/var/named/avil.com.zone
$TTL 86401 #DNS查询放在请求方服务器的有效时间长
@ IN SOA dns.avil.com. mail.avil.com. ( #@代表zone; # "."非常重要,带便一个完整地主机名(FQDN)
42 ; serial (d. adams) #识别序号
3H ; refresh #服务器更新时间
15M ; retry #当slave更新失败,多久重新更新一次
1W ; expiry #重复多久后就不再尝试更新
1D ) ; minimum #相当于TTL
@ IN NS dns.avil.com. #NS name server 的缩写
@ IN MX 10 mail.avil.com. #MX mail exchange 的简写
dns IN A 192.168.254.153 # A正向解析的意思 表示主机对应的IP是多少
www IN A 192.168.254.153
news IN A 192.168.254.153
itop IN A 192.168.254.46
mail IN A 192.168.254.152
IN AAAA ::1
######################################################
五、DNS语法检测工具和日志
1、配置文件检查 named-checkconf
[root@localhost named]# named-checkconf -t /var/named/chroot/
[root@localhost named]# 如果没有返回结果证明配置文件语法没有任何问题
2、zone检查 named-checkzone
[root@localhost named]# named-checkzone -t /var/named/chroot/var/named/ avil.com avil.com.zone
zone avil.com/IN: loaded serial 42
OK 正向解析配置文件没问题
[root@localhost named]# named-checkzone -t /var/named/chroot/var/named/ 254.168.192.in-arpa avil.com.arpa.zone
zone 254.168.192.in-arpa/IN: loaded serial 1997022700
OK 反向解析配置文件也没问题
3、日志文件/var/log/messages
tail -f /var/log/messages
###########################################################
六、DNS的负载均衡
如果我的网站访问量非常大,单靠一台服务器或者一个VIP是很可能顶不住的,所以在DNS解析的时候可以给该网站做个负载均衡,举个百度的例子
解析两次得到了不同的IP地址,这是怎么实现的呢?答案很简单:
只要在我们的区域数据库配置文件中再加一条A记录,然后重启服务。
www IN A 192.168.254.153
www IN A 192.168.254.46
在这里顺便提一下一个概念,泛域名解析
举个简单的例子,在我想访问我的网页时,不小心把www.avil.com输成了wwww.avil.com或者是wwwwwww.avil.com,这种情况怎么办?
那就用到泛域名解析了,其实无外乎就是再加一条A记录
dns IN A 192.168.254.153
www IN A 192.168.254.153
www IN A 192.168.254.46
news IN A 192.168.254.153
* IN A 192.168.254.46
加了这条A记录后,所有的XXX.avil.com 均可被解析成192.168.254.46.
这点其实国内有些大的网站还没有实现(或许有其它原因),例如
先到这里,后面的实验还在调试,明天继续……