RedHat配置DNS服务器
使用VIM文本编辑器创建yum仓库配置文件。
[root@localhost /]# vim /etc/yum.repos.d/rhel6.repo
//使用vim文本编辑器进入/etc/yum.repos.d,并创建一个rhel6.repo文件,并配置这个文件(注意,这里创建的rhel6.repo这个文件是是根据系统的版本来决定的,比如我们使用的版本是红帽6.5,所以我们命名就是rhel6来命名的。)
[rhel6]
name=rhel6
baseurl=file:///mnt/cdrom //这里是我们系统的挂载点,我们通过这个路径是yum找到需要服务的安装包。
enable=1
gpgcheck=0
配置DNS服务器
[root@localhost /]# yum install bind-chroot
//使用yum安装DNS服务器,chroots(俗称牢笼机制)扩展包,以便于有效的限制BIND服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel6 | 3.9 kB 00:00 ...
rhel6/primary_db | 2.5 MB 00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind-chroot.i686 32:9.8.2-0.17.rc1.el6_4.6 will be installed
--> Processing Dependency: bind = 32:9.8.2-0.17.rc1.el6_4.6 for package: 32:bind-chroot-9.8.2-0.17.rc1.el6_4.6.i686
--> Running transaction check
---> Package bind.i686 32:9.8.2-0.17.rc1.el6_4.6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================
Package Arch Version Repository Size
=================================================================================
Installing:
bind-chroot i686 32:9.8.2-0.17.rc1.el6_4.6 rhel6 71 k
Installing for dependencies:
bind i686 32:9.8.2-0.17.rc1.el6_4.6 rhel6 4.0 M
Transaction Summary
=================================================================================
Install 2 Package(s)
Total download size: 4.0 M
Installed size: 7.2 M
**Is this ok [y/N]: y** //这里输入Y,确定安装此服务。
Downloading Packages:
--------------------------------------------------------------------------------
Total 28 MB/s | 4.0 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 32:bind-9.8.2-0.17.rc1.el6_4.6.i686 1/2
Installing : 32:bind-chroot-9.8.2-0.17.rc1.el6_4.6.i686 2/2
rhel6/productid | 1.7 kB 00:00 ...
Verifying : 32:bind-9.8.2-0.17.rc1.el6_4.6.i686 1/2
Verifying : 32:bind-chroot-9.8.2-0.17.rc1.el6_4.6.i686 2/2
Installed:
bind-chroot.i686 32:9.8.2-0.17.rc1.el6_4.6
Dependency Installed:
bind.i686 32:9.8.2-0.17.rc1.el6_4.6
Complete!
使用命令重启一下服务,也可检查一下服务是否安装成功。
[root@localhost 桌面]# service named restart //重启DNS服务
停止 named: [确定]
启动 named: [确定]
[root@localhost 桌面]# service named reload //重新加载DNS服务
重新载入named: [确定]
配置DNS服务的主要文件配置简介。
主配置文件(/etc/named.conf****):里面的配置文件很少,而且在除去注释信息和空白行后,实际有效的配置文件就没有多少,这些参数用来定义bind服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones****):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
数据配置文件目录(/var/named****):该目录用来保存域名和IP地址真实对应关系的数据配置文件。
对主配置文件进行配置
[root@localhost /]# vim /etc/named.conf
//****使用vim****文本编辑器对文件进行编辑。
// named.conf
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
// See /usr/share/doc/bind*/sample/ for example named configuration files.
options {
** listen-on port 53 { any; };** **//****表示在服务器上的所有IP****地址均可提供DNS****域名解析服务。**
listen-on-v6 port 53 { ::1; };
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";
** allow-query { any; };** **//****允许所有人对本地服务器发送DNS****查询请求。**
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
如前面所说的,bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等服务内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(跟区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析和将IP地址解析为域名的方向解析。
正向解析
在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应IP地址。也就是说,当用户输入一个域名后,bind服务程序会自动进行查找,并将匹配到的IP地址返给用户。这也是最常用的DNS工作模式
第一步:编辑区域配置文件。打开文件,一般我们都会将自己添加的文件加到最后面,以便于查找。(需要注意的是为了安全起见,我们可以将该文件备份,以免文件损坏,我们还能补救。)
[root@localhost /]# vim /etc/named.rfc1912.zones
//****使用vim****对文(/etc/named.rfc1912.zones****)进行编辑,以下是添加的内容。
zone "long.com" IN {
type master; //主要区域
file "named.long.com"; //域名与IP地址解析规则保存的文件地址
allow-update { none; }; //允许那些客户机动态更新解析信息
};
第二步,修改完成以后,我们对/var/named中复制一份正向解析的模板文件(named.localhost),然后把域名和IP的对应数据填写数据配置文件中并保存。在这里需要注意的是我们在复制是,我们加上 –a 参数,这样可以保留原文件的所有者,所属组、权限等信息,以便于bind服务程序顺利读取文件内容
[root@localhost /]# cd /var/named/
//进入/var/named/
[root@localhost named]# ls //查看文件内容
chroot dynamic named.empty named.loopback
data named.ca **named.localhost****(正向解析文件)** slaves
[root@localhost named]# cp -a named.localhost named.long.com //复制文件,并保留原文件的所有者,所属组、权限等信息。(将named.localhost复制为named.long.com)。
[root@localhost named]# ls //查看文件内容
chroot dynamic named.empty named.long.com slaves
data named.ca named.localhost named.loopback
打开named.long.com并对其进行配置。
[root@localhost named]# vim named.long.com //使用文本编辑器编辑此目录。
$TTL 1D //生存周期为一天
@ IN SOA dns.long.com. root.long.com. (
//授权信 //DNS 区域 //域名管理员邮箱地址(不能使用@符号,用.(点)代替。)
息开始 地址
0 ; serial //更新序列号
1D ; refresh //更新时间
1H ; retry //重试延时
1W ; expire //失效时间
3H ) ; minimum //无效解析记录的缓存时间。
@ IN NS dns.long.com. //域名服务器记录
dns IN A 192.168.1.14 //地址记录(dns.long.com.)
tzk IN A 192.168.1.20 //地址记录(tzk.long.com.)
wxl IN A 192.168.1.21 //地址记录(wxl.long.com.)
www IN A 192.168.1.22 //地址记录([www.long.com](http://www.long.com).)
@:是该域的代替符,[例如named.long.com这个文件中的@就代表long.com](mailto:例如named.long.com这个文件中的@就代表long.com).
IN:表示网络类型。
SOA:表示资源记录类型。
在这里我们需要注意,每个域名后面都需要加上“.”点。举例:我们按照上面的dns.long.com.举例,我们加点了,解析时只需输入原来的(dns.long.com.),要是我们不加,解析时我们需输入dns.dns.long.com. 表示这个是个绝对名称。
[root@localhost 桌面]# service named restart //重启DNS服务
停止 named: [确定]
启动 named: [确定]
[root@localhost 桌面]# service named reload //重新加载DNS服务
重新载入named: [确定]
下面我们进入测试,进行正向解析(域名解析成IP地址)。
测试前,我们一定要先把Linux系统网卡中的DNS地址参数修改成本机IP地址,这样才可以使用由本机提供的DNS服务。注意,里面都是注释了的,我们直接添加就可以了。
[root@localhost /]# vim /etc/resolv.conf
# Generated by NetworkManager
**nameserver 192.168.1.14 //****设置DNS**
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
检验解析结果
[root@localhost /]# **nslookup**
> **dns.long.com**
Server: 192.168.1.14
Address: 192.168.1.14#53
Name: dns.long.com
Address: 192.168.1.14
> **www.long.com**
Server: 192.168.1.14
Address: 192.168.1.14#53
Name: www.long.com
Address: 192.168.1.22
>
反向解析
[root@localhost /]# vim /etc/named.rfc1912.zones
//****使用vim****对文(/etc/named.rfc1912.zones****)进行编辑,以下是添加的内容。
[root@localhost named]# cp -a named.loopback 1.168.192
//复制文件,并保留原文件的所有者,所属组、权限等信息。(将named.loopback复制为1.168.192)。
[root@localhost named]# ls
//查看文件内容
1.168.192data named.ca named.localhost named.loopback
chroot dynamic named.empty named.long.com slaves
打开1.168.192.arpa并对其进行配置。
[root@localhost /]# vim /var/named/1.168.192
//使用文本编辑器编辑此目录。
$TTL 1D
@ IN SOA dns.long.com. root.long.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.long.com.
14 IN PTR dns.long.com.
20 IN PTR tzk.long.com.
21 IN PTR wxl.long.com.
22 IN PTR [www.long.com](http://www.long.com).
反向与正向差别不大,在正向我们已经配置了,所以这里我们直接进行解析。
[root@localhost /]# nslookup
> 192.168.1.14
Server: 192.168.1.14
Address: 192.168.1.14#53
14.1.168.192.in-addr.arpa name = dns.long.com.
> 192.168.1.22
Server: 192.168.1.14
Address: 192.168.1.14#53
22.1.168.192.in-addr.arpa name = www.long.com.
部署从服务器
作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定,快速且不间断的域名查询服务。在DNS域名解析服务中,从服务器可以从主服务器上获取指定区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。
在实验中,我们主服务器的IP地址为:192.168.1.14、从服务器的IP地址为:192.168.1.15
系统镜像均为红帽6.5版本(RHEL 6.5)。
第一步:在主服务器的区域配置文件中允许从服务器的更新要求,修改allow-update{允许更新区域信息的主机IP地址;}; 然后重启DNS服务。
[root@localhost /]# vim /etc/named.rfc1912.zones
zone "long.com" IN {
type master;
file "named.long.com";
allow-update { 192.168.1.15; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192";
allow-update { 192.168.1.15;};
};
第二步:我们重新打开一台linux虚拟机,然后安装DNS服务,要注意的是你打开的一般都是新建的虚拟机,所以我们需要进行磁盘的挂载,yum仓库的配置。然后在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。注意此时我们的服务类型应该是slave(从),而不是master(主)。Masters参数后面应该是主服务器的IP地址,而且file参数后面定义的是同步数据配置文件要保存到的位置。
[root@localhost /]# vim /etc/named.rfc1912.zones
zone "long.com" IN {
type slave;
masters {192.168.1.14;};
file "slaves/named.long.com"; //这里表示下载的文件保存到/var/named/下面的slaves中,下同(/var/named/slaves)。
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters {192.168.1.14};
file "slaves/1.168.192";
};
重启并测试
root@localhost 桌面]# service named restart
//重启DNS服务
停止 named: [确定]
启动 named: [确定]
[root@localhost 桌面]# service named reload //重新加载DNS服务
重新载入named: [确定]
[root@localhost /]# nslookup
> 192.168.1.14
Server: 192.168.1.14
Address: 192.168.1.14#53
14.1.168.192.in-addr.arpa name = dns.long.com.
> 192.168.1.22
Server: 192.168.1.14
Address: 192.168.1.14#53
22.1.168.192.in-addr.arpa name = www.long.com.
同步更新到我的个人博客曌明博客