Linux下DNS服务器的搭建
DNS
DNS 是域名系统 (Domain Name Server或Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。
实验环境:
Centos 6.4
所需软件包:bind、bind-chroot、bind-utils
案例一:
有一个abc.com的域,DNS服务器地址为192.168.3.100 。添加www主机1.1.1.1、ftp主机2.2.2.2、mail主机3.3.3.3、别名为pop3、smtp的主机还有MX记录。
实验步骤:
[root@localhost ~]# cd /media/cdrom/Packages/
[root@localhost Packages]# ll |grep bind
-r--r--r--. 2 root root 97700 Feb 24 2013 PackageKit-device-rebind-0.5.8-21.el6.x86_64.rpm
-r--r--r--. 2 root root 4157992 Feb 24 2013 bind-9.8.2-0.17.rc1.el6.x86_64.rpm
-r--r--r--. 2 root root 71924 Feb 24 2013 bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm
-r--r--r--. 2 root root 70056 Feb 24 2013 bind-dyndb-ldap-2.3-2.el6.x86_64.rpm
-r--r--r--. 2 root root 902940 Feb 24 2013 bind-libs-9.8.2-0.17.rc1.el6.i686.rpm
-r--r--r--. 2 root root 891916 Feb 24 2013 bind-libs-9.8.2-0.17.rc1.el6.x86_64.rpm
-r--r--r--. 2 root root 186068 Feb 24 2013 bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm
[root@localhost Packages]# yum --disablerepo=\* --enablerepo=c6-media install bind-9.8.2-0.17.rc1.el6.x86_64.rpm bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm
・・・・・・・・
・・・・・・・・
・・・・・・・・
Complete!
安装完毕之后我们来看看他的配置文件
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# ll
total 12
-rw-r--r--. 1 root root 405 Apr 18 04:23 localtime
drwxr-x---. 2 root named 4096 Feb 22 2013 named
drwxr-x---. 3 root named 4096 Apr 18 04:23 pki
//这个就是DNS的配置文件我们发现在 /var/named/chroot/etc/ 这个目录下,什么文件也没有。我们得自己产生一个配置文件,我们先产生一个钥匙文件
[root@localhost etc]# rndc-confgen -a // 产生钥匙文件
wrote key file "/etc/rndc.key"
[root@localhost etc]# service named start //启动DNS服务
Starting named: [ OK ]
这时我们再来看一下/var/named/chroot/etc/这个目录,发现他已产生了配置文件
[root@localhost etc]# ll
total 32
-rw-r--r--. 1 root root 405 Apr 9 03:51 localtime
drwxr-x---. 2 root named 4096 Feb 22 2013 named
-rw-r-----. 1 root named 1008 Jul 19 2010 named.conf
-rw-r--r--. 1 root named 2389 Feb 22 2013 named.iscdlv.key
-rw-r-----. 1 root named 931 Jun 21 2007 named.rfc1912.zones
-rw-r--r--. 1 root named 487 Jul 19 2010 named.root.key
drwxr-x---. 3 root named 4096 Apr 18 04:23 pki
-rw-------. 1 root root 77 Apr 18 04:34 rndc.key
我们重新加载rndc
[root@localhost ~]# rndc reload
rndc: connect failed: 127.0.0.1#953: connection refused
加载失败,原因是953端口没有启动。
我们要把rndc.key的所属组改为named
[root@localhost etc]# chgrp named rndc.key
然后再给named组添加r权限
[root@localhost etc]# chmod g+r rndc.key
[root@localhost etc]# service named restart // 重启DNS服务
[root@localhost etc]# netstat -tulpn |grep 953
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3801/named
tcp 0 0 ::1:953 :::* LISTEN 3801/named
953端口已开启。
下面我们配置DNS的配置文件
[root@localhost etc]# vim named.conf
接下来编辑 named.rfc1912.zones
我们指明了abc.com.zone这个区域,我们还得有这个区域的配置文件。我们要把这个文件放置在/var/named/chroot/var/named/目录下
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost named]# ll
total 32
drwxr-x---. 6 root named 4096 May 6 10:12 chroot
drwxrwx---. 2 named named 4096 Feb 22 2013 data
drwxrwx---. 2 named named 4096 May 6 10:15 dynamic
-rw-r-----. 1 root named 1892 Feb 18 2008 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 Feb 22 2013 slaves
我们拷贝named.localhost这个样例文件为abc.com.zone,然后对其进行修改
[root@localhost named]# cp -p named.localhost abc.com.zone
[root@localhost named]# vim abc.com.zone
修改之后
重新加载rndc
[root@localhost named]# rndc reload
server reload successful
为了方便测试我们配置一下我们的DNS
[root@localhost named]# vim /etc/resolv.conf
测试:
dig www.abc.com
nslookup www.abc.com
host www.abc.com
MX记录查询
[root@localhost etc]# dig -t mx www.abc.com
测试结果都没有问题,DNS服务器搭建成功。