CentOS 6.5下构建DNS域名解析服务(BIND)

  整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分网站、邮件服务器都使用了域名形式的地址,例如www.google.com、mail.163.com等。很显然这种地址形式要比使用64.223.189.147、202.108.33.74的IP地址形式更加直观,而且很容易呗用户记住。

DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析反向解析

※正向解析:根据域名查IP地址,即将指定的域名解析为对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常见的功能。

※反向解析:根据IP地址查域名,即将指定的IP地址解析为对应的域名。域名的方向解析不是很常见,只在一些特殊场合才会用到,如可用于反垃圾邮件的验证。

一、BIND安装和控制

1.环境准备

首先虚拟机的我是用的CentOS6.5系统,双网卡,eth0是内网,eth1是桥接上网(也可以共享VM8上网);虚拟机配置如下
CentOS 6.5下构建DNS域名解析服务(BIND)-Linux-me

首先安装DNS主程序以及所需程序包,这里我直接使用yum安装.
[root@localhost ~]# yum -y install bind bind-chroot bind-utils bind-libs
各软件包主要作用如下
bind:提供域名服务的主要程序及相关文件。
bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等。
bind-libs:提供了bind、bind-utils需要使用的库函数。
bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。

2.BIND服务控制

BIND软件包安装完毕以后,会自动增加一个名为named的系统服务,通过脚本文件/etc/init.d/named或service工具都可以控制DNS域名服务。例如,执行以下操作可以查询named服务的运行状态。

[root@localhost ~]# service named status
rndc: connect failed: 127.0.0.1#953: connection refused
named is stopped

下面修改named.conf 主配置文件,修改前建议先备份一下named配置文件.

[root@localhost ~]# cp /etc/named.conf /etc/named.conf-BAK
修改主配置文件和配置正反向参数
[root@localhost ~]# vi /etc/named.conf
options {
        listen-on port 53 { any; };//监听地址和端口
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";//区域数据文件的默认存放位置
        allow-query     { any; };//允许使用本DNS服务的网段
};

zone "linux-me.com" IN {
        type master;
        file "linux-me.com.zone";
};

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.arpa";
};
修改完成后保存重启named服务
CentOS 6.5下构建DNS域名解析服务(BIND)-Linux-me

添加正反向区域数据文件

首先配置正向解析
[root@localhost named]# vi /var/named/linux-me.com.zone
$TTL 86400
@ SOA linux-me.com. admin.linux-me.com. (
          2015112311
          4H
          30M
          12H
          1D
)
@      IN    NS    ns1.linux-me.com.
       IN    NS    ns2.linux-me.com.
       IN    MX 10 mail.linux-me.com.
ns1    IN    A     192.168.1.1
ns2    IN    A     192.168.1.2
mail   IN    A     192.168.1.3
www    IN    A     192.168.1.1
*      IN    A     192.168.1.4
保存退出
其次添加反向解析文件
[root@localhost ~]# vim /var/named/192.168.1.arpa
$TTL 86400
@ SOA linux-me.com admin.linux-me.com. (
        2016113016
        4H
        30M
        12H
        1D
)
      IN    NS   ns1.linux-me.com.
      IN    NS   ns2.linux-me.com.
1     IN    PTR  ns1.linux-me.com.
2     IN    PTR  ns2.linux-me.com.
3     IN    PTR  mail.linux-me.com.
4     IN    PTR  www.linux-me.com.
保存退出
重启named服务测试
[root@localhost ~]# echo nameserver 192.168.1.1 >> /etc/resolv.conf
[root@localhost ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@localhost ~]# chkconfig named on
[root@localhost ~]# chkconfig --list named
named          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
CentOS 6.5下构建DNS域名解析服务(BIND)-Linux-meCentOS 6.5下构建DNS域名解析服务(BIND)-Linux-me
客户机测试如下:
首先确保客户机和服务器正常通讯,其次保证客户机DNS是服务器的地址。
[root@localhost ~]# echo 192.168.1.1 >> /etc/resolv.conf 
客户机使用nslookup命令验证,首先需要安装bind-utils
[root@localhost ~]# yum -y install bind-utils
指定DNS服务器为服务器地址
[root@localhost ~]# echo nameserver 192.168.1.1 >> /etc/resolv.conf
CentOS 6.5下构建DNS域名解析服务(BIND)-Linux-me
CentOS 6.5下构建DNS域名解析服务(BIND)-Linux-me