使用Bind部署DNS域名解析服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Bind部署DNS域名解析服务器相关的知识,希望对你有一定的参考价值。
DNS系统在网络中的作用是维护一个地址数据库,其中记录了各种主机域名与ip地址的对应关系,提供正向或反向的地址查询服务,即正向解析与反向解析。
- 正向解析:根据域名查询IP地址,将指定的域名解析为相对应的IP地址,这是DNS服务器最基本也是最常用的功能。
-
反向解析:根据IP地址查域名,将指定的IP地址解析为相应的域名,只在一些特殊场合用,不常用。
实验操作:以域名benet.com为例,使用Bind软件在Redhat6系统下配置DNS服务器,实现正向解析与反向解析。
安装Bind软件
- bind: 提供了域名服务的主要程序及相关软件。
- bind-utils: 提供了对DNS服务器的测试工具程序,如nslookup等。
- bind-libs: 提供了bind、bind-utils需要使用的库函数。
- bind-chroot: 为Bind服务提供一个伪装的根目录(将、var/named/chroot文件夹作为Bind的根目录),以提高安全性。
(1)默认已安装bind-utils和bind-libs,这里只是模拟实验环境,不是在真实的互联网环境中,不需要增强安全性,可以不安装bind-chroot,所以只需安装bind即可。
[[email protected] ~]# rpm -qa | grep "^bind" #查询是否已安装与Bind相关的软件包
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
(2)配置yum源,使用yum命令安装bind服务程序
yum install bind -y #安装Bind软件包
Bind包安装完毕会自动增加一个名为named的系统服务,还涉及三种类型的配置文件:主配置文件、区域配置文件、区域数据配置文件。这里需要注意的是每一条配置记录的行尾以“;”表示结束。
[[email protected] ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf #主配置文件(named服务全局选项)
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #区域配置文件(保存域名与IP地址对应关系)
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost #区域数据配置文件模板(保存域名与IP解析规则)
/var/named/named.loopback
下面就针对正反向解析实验分别编辑Bind服务的配置文件
正向解析实验
1. 编辑主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
#设置监听的地址和端口
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;
2. 编辑区域配置文件——添加一个正向“benet.com”区域
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
#正向“benet.com”区域
type master; #服务类型为主区域
file "benet.com.zone"; #区域数据配置文件为benet.com.zone
allow-update { none; }; #允许哪些客户机动态更新解析信息
3. 编辑区域数据配置文件
从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写到benet.com.zone文件中并保存。
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls -la named.localhost
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
[[email protected] named]# cp -p named.localhost benet.com.zone #保留文件的属性
vim /var/named/benet.com.zone
$TTL 1D
@ IN SOA benet.com. admin.benet.com. ( #域名、域名管理员邮箱(不要用@符号)
0 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #重试延时
1W ; expire #失效时间
3H ) ; minimum #无效解析记录的缓存时间
NS benet.com. #域名服务器记录
A 192.168.10.50 #服务器IPv4地址
AAAA ::1 #服务器IPv6地址
IN MX 5 mail.benet.com. #邮箱交换记录
mail IN A 192.168.10.66 #正向解析条目(mail.benet.com.)
www IN A 192.168.10.88 #正向解析条目(www.benet.com.)
ftp IN CNAME www #正向解析条目ftp.benet.com.是www.benet.com的别名
* IN A 8.8.8.8 #泛域名解析记录
需要注意的是,当使用完整的FQDN地址时,务必记得地址末尾的点号“.”不能省略。
4.启动named服务程序
service named start
5. 检验解析结果
为了使用本机提供的DNS查询服务,需要在DNS配置文件(/etc/resolv.conf)指定DNS服务器的IP地址
vim /etc/resolv.conf
nameserver 192.168.10.50 #添加nameserver参数表示解析域名时使用该地址指定的主机为域名服务
[[email protected] ~]# nslookup mail.benet.com #解析邮箱地址mail.benet.com的IP
-bash: nslooup: command not found
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: mail.benet.com
Address: 192.168.10.66
[[email protected] ~]# nslookup www.benet.com #解析网址www.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: www.benet.com
Address: 192.168.10.88
[[email protected] ~]# nslookup ftp.benet.com #解析别名地址ftp.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
ftp.benet.com canonical name = www.benet.com.
Name: www.benet.com
Address: 192.168.10.88
[[email protected] ~]# nslookup abc.benet.com #解析找不到域名解析记录abc.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: abc.benet.com
Address: 8.8.8.8
反向解析实验
1. 编辑主配置文件
同上正向解析实验。
2. 编辑区域配置文件-添加一个反向“10.168.192.in-addr.arpa"区域
vim /etc/named.rfc1912.zones
zone "10.168.192.in-addr.arpa" IN {
#反向区域“10.168.192.in-addr.arpa”
type master; #服务类型是主区域
file "192.168.10.arpa"; #区域数据配置文件为192.168.10.arpa
allow-update { none; }; #允许哪些客户机动态更新解析信息
3. 编辑区域数据配置文件(与正向解析实验同理)
vim /var/named/192.168.10.arpa
$TTL 1D
@ IN SOA benet.com. admin.benet.com. ( #域名、域名管理员邮箱(不要用@符号)
0 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #重试延时
1W ; expire #失效时间
3H ) ; minimum #无效解析记录的缓存时间
NS benet.com. #域名服务器记录
A 192.168.10.50 #服务器IPv4地址
AAAA ::1 #服务器IPv6地址
66 PTR mail.benet.com. #PTR为指针记录,仅用于反向解析
88 PTR www.benet.com.
4. 重启named服务
service named restart
5. 检验解析结果
在前面的正向解析实验里面已经指定了DNS服务器的IP地址,故可以直接使用nslookup命令
[[email protected] ~]# nslookup 192.168.10.66 #解析IP地址192.168.10.66
Server: 192.168.10.50
Address: 192.168.10.50#53
66.10.168.192.in-addr.arpa name = mail.benet.com.
[[email protected] ~]# nslookup 192.168.10.88 #解析IP地址192.168.10.88
Server: 192.168.10.50
Address: 192.168.10.50#53
88.10.168.192.in-addr.arpa name = www.benet.com.
以上是关于使用Bind部署DNS域名解析服务器的主要内容,如果未能解决你的问题,请参考以下文章
Linux (二十三)剖析DNS服务主从分离反向解析等部署方式