DNS服务搭建

  背景:截至2009年六月,根域中有20 个常规顶级域名,和248 个国家代码顶级域名的记录,https://en.wikipedia.org/wiki/Root_name_server
  Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。是世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。
  作用:把域名转换成IP地址,或者把IP地址转换成域名
  类型:正向解析型,反向解析型,主从型,转发型,缓存型
  工具:nslookup,dig,ping
  端口:53
  查询方式:
    计算机在进行网络访问时,对域名的解析首先会查询自己的 /etc/hosts 列表;若在此表中检查不到相对应的 IP 地址,将会通过 DNS 服务器进行查询。
    DNS 查询分为递归查询和迭代查询。通常,DNS 客户端向DNS 服务端发送解析请求时用的是递归查询,对于递归查询,服务器回复给客户端的要么是资源记录,要么是资源不存在的错误信息。客户端向服务器发送的是迭代查询,它就允许服务器给它返回所能给的最好答案,也就是说,如果服务器没有恰好匹配的资源,服务器就给客户端回复另外一个DNS 服务器的地址,这样,客户端就可以向这个新的DNS 服务器发出一个新的解析请求。而为了完成某个客户端的递归查询请求,DNS 服务器一般会向别的DNS 服务器发起迭代查询。
# dig +trace www.baidu.com --追踪域名解析过程
 
一、正反向DNS搭建:
1、服务器搭建:
  # yum -y install bind* --安装DNS服务器软件
  # rpm -ql bind --列出安装软件相关文件
 
2、服务器配置:
  # cp /etc/named.conf /etc/named.conf.bak --备份主配置文件
  # vim /etc/named.conf --主配置文件
options {
listen-on port 53 { 127.0.0.1; 192.168.64.128;}; --监听地址,默认端口为53
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; }; --允许所有人来查询;默认是:localhost
recursion yes; --允许递归查询
dnssec-enable yes; --使用DNSSEC认证
dnssec-validation yes; --设定DNSSEC后备节点
/* 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"; --服务运行时的主进程id
severity dynamic;
  };
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
  # cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak --备份区域声明文件
  # vim /etc/named.rfc1912.zones --编辑区域声明文件
........................
zone "george.com." IN {
type master;
file "george.com.zone";
allow-update { none; };
}; --正向
zone "64.168.192.in-addr.arpa" IN {
type master;
file "192.168.64.zone";
allow-update { none; };
}; --反向
# cp -a /var/named/named.localhost /var/named/george.com.zone
# cp -a /var/named/named.loopback /var/named/192.168.64.zone --使用默认域文件进行配置
# vim /var/named/george.com.zone --编辑正向域文件
$TTL 1D
@ IN SOA george.com. rname.invalid. (
0 ;serial 版本号,下面是各种时间,如果不做主从结构,这些可以任意写
1D ; refresh slave主动联系master的间隔
1H ; retry slave 从master更新失败的重试间隔
1W ; expire 在无法联系master的情况下多久slave停止服务
3H ) ; minimum 对否定回答的缓存时间
IN NS www.george.com.
@ IN A 192.168.64.128
www IN A 192.168.64.128
client IN A 192.168.64.129
master IN A 192.168.64.1
windows IN CNAME master
@ MX 5 mail.george.com --邮件解析
mail IN A 192.168.64.88
* IN A 192.168.64.2 --不匹配上面列出的域名,都解析为该条
$GENERATE 201-251 george$ IN A 10.1.1.$  --可以自己实验体会
  # vim /var/named/192.168.64.zone --编辑反向域文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS www.george.com.
1 IN PTR master.george.com.
1 IN PTR windows.george.com.
128 IN PTR www.george.com.
129 IN PTR client.george.com.
$GENERATE 201-251 $ IN PTR george$.george.com.
# named-checkconf /etc/named.conf --检查主配置文件的正确性
# named-checkzone george.com /var/named/george.com.zone --检查域文件的正确性
# service named restart
# mv /dev/random /dev/random.orig --如果重启缓慢,可以将这个文件暂时移走,记得恢复
3、服务器测试:
# dig @192.168.64.128 www.george.com --使用DNS服务器192.168.64.128
# nslookup 192.168.64.1 --使用该工具需要配置/etc/resolv.conf
# nslookup
> george.com
> mail.george.com
 
二、配置多个DNS域:
1、在区域声明文件中增加相应的记录;
2、在 /var/named/ 目录下创建相对应的反/正向域文件。
 
三、配置转发型DNS 服务器:
# vim /etc/named.conf
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone ".com." IN {
type forward;
forward only;
forwarders { 114.114.114.114; }; --转发到的DNS服务器IP
};
 
四、配置转发缓存型DNS 服务器:
# vim /etc/named.conf
dnssec-enable no;
dnssec-validation no;
.........
recursion yes;
forward only;
forwarders { 114.114.114.114; }; --把请求转发给该服务器,然后把结果缓存起来
 
五、配置从DNS 服务器:
假设主服务器IP是10.1.1.2
假设从服务器IP是10.1.1.3
1、主服务器上的配置:
# vi /var/named/data/master.zone --编译域名文件
$TTL 60
@ IN SOA dns.infosec.com. root.infosec.com. (
2014092444 -- 序列号行,留意这行,下面有说明
10
30
40
60 )
IN NS dns1.infosec.com. --本域的域名服务器
IN NS dns2.infosec.com. --必须把从服务器列在这里
dns1 IN A 10.1.1.2
dns2 IN A 10.1.1.3 --从服务器的IP
@ IN A 10.10.10.10
www IN A 10.1.1.30
2、从服务器上面的配置:
# vim /etc/named.conf --确保主配置文件中,以下两行设置为 no
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones --编辑从服务器的区域声明文件,添加和主服务器相同的正向域
zone "abc.com" IN {
type slave; --slave表示是从服务器
file "slaves/slave.abc.com.zone"; --数据文件将会放到哪里
masters { 10.1.1.2; }; --指明从哪个服务器同步数据
};
3、测试:
3.1 在主服务器上面添加新的记录,或者修改现有的记录,增大序列号
3.2 验证用nslookup 能够在从服务器上面查到新添加的记录
posted @ 2016-09-28 10:19  一个小运维  阅读(618)  评论(0编辑  收藏  举报