RHEL6配置DNS服务器
DNS 服务器DNS 支持两种查询方式递归查询迭代查询DNS 组织结构图DNS 工作原理 ,windows 清空本机DNS 缓存:ipconfig flushdns本地DN
DNS 服务器
DNS 支持两种查询方式
递归查询
迭代查询
DNS 组织结构图
DNS 工作原理
windows 清空本机DNS 缓存:ipconfig flushdns
本地DNS 解析
hosts 文件是Linux 系统中一个负责IP 地址与域名快速解析的文件。
文件以ASCII 格式保存在“/etc”目录下,文件名为“hosts”。
hosts 文件包含了IP 地址和主机名之间的映射,还包括主机名的别名。
hosts 文件的格式如下:
IP 地址主机名/域名 主机别名
Bind 的简介
Linux 下架设DNS 服务器通常是使用Bind 程序来实现的。
Bind 是Berkeley Internet Name Domain Service 的简写,它是一款实现DNS 服务器的开放源码软件。
Bind 原本是美国DARPA 资助伯克里大学(Berkeley )开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS 服务器软件,目前Internet 上绝大多数的DNS 服务器有都是用Bind 来架设的。
DNS 服务
后台进程:named
脚本:/etc/rc.d/init.d/named
使用端口:53(tcp ,udp )
所需RPM 包:bind-9.3.3-10.el5
相关RPM 包:bind-chroot
主配置文件:/var/named/chroot/etc/named.conf (RHEL6默认没有这个文件)
区域(zone)文件:存放域名与IP 的对应关系
相关路径:/var/named/
主配置文件
Bind 的主配置文件是/var/named/chroot/etc/named.conf ,该文件只包括Bind 的基本配置,并不包含任何DNS 区域数据。
在主配置文件中主要可分为两部分
全局声明(options )
options 语句在每个配置文件中只有一处。如果出现多个options, 则第一个options 的配置有效,并会产生一个警告信息。
区域声明(zone )
zone 语句作用是定义DNS 区域,在此语句中可定义DNS 区域选项。
全局配置
options {
directory “/var/named”; //相对目录:/var/named/chroot/var/named/
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
directory :指定zone file的存放位置。
dump-file :定义服务器存放数据库的路径。
statistics-file :设置服务器统计信息文件的路径。
forward :设置转发方式。
forwarders :指定其上级域名服务器
allow-query :指定允许向其提交请求的客户
allow-transfer :指定允许复制zone 数据的主机
allow-recursion :递归查询
,设置根区域
当DNS 服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS 服务器查询,所以在主配置文件named.conf 文件中还要定义根区域。
zone " . " {
type hint;
file "named.ca";
};
type:设置域的类型
file:设置根服务列表文件名
根域信息文件
amed.ca 是一个非常重要的文件,该文件包含了Internet 的根服务器名字和地址。
Bind 接到客户端主机的查询请求时,如果在Cache 中找不到相应的数据,就会通过根服务器进行逐级查询。
由于named.ca 文件经常会随着根服务器的变化而发生变化,因此建议最好从国际互联网络信息中心(InterNIC )的FTP 服务器下载最新的版本。
下载地址为:ftp://ftp.rs.internic.net/domain/named.root。
下载完后,应将该文件改名为named.ca ,并复制到“/var/named/chroot/var/named/”目录下。
正向解析主区域
主区域用来保存DNS 服务器某个区域(如:example.com )的数据信息。
zone "example.com " {
type master ;
file "example.com.zone ";
allow-transfer { 192.168.0.1; };
allow-query { 192.168.0.2;192.168.0.3; };
};
type:设置域名服务器的类型为主域名服务器
file :设置主区域文件的名称
allow-transfer:设置从域名服务器的地址。
反向解析区域
在大部分的DNS 查询中,DNS 客户端一般执行正向查找,即根据计算机的DNS 域名查询对应的IP 地址。但在某些特殊的应用场合中(如判断IP 地址所对应的域名是否合法),也会使用到通过IP 地址查询对应DNS 域名的情况(也称为反向查找)。
zone “0.168.192.in-addr .arpa " {
type master;
file "192.168.0.zone";
allow-transfer { 192.168.0.20; };
};
注意:在DNS 标准中定义了固定格式的反向解析区域:反顺序网络地址.in-addr.arpa ,上例中,域所在的子网为192.168.0.0/24,故完整的反向解析域名为:0.168.192.in-addr.arpa 区域文件
一个区域内的所有数据(包括主机名,对应IP 地址、辅助服务器与主服务器刷新间隔和过期时间等)必须存放在DNS 服务器内,而用来存放这些数据的文件就称为区域文件(区域数据文件使用“;” 符号注释)。
DNS 服务器的区域数据文件一般存放在/var/named/chroot/var/named目录下。
@取代在/etc/named.conf中指定的域名。
,正向区域文件
/var/named/chroot/var/named/example.com.zone文件的完整例子。
$TTL 38400 ; 生存期
example.com. IN SOA dns.example.com. root.example.com. (
2005090503 ; 序列号
3600 ; 刷新时间
300 ; 重试时间
604800 ; 过期时间
60 ; 宣布无此域名
)
example.com . IN NS dns.example.com.
example.com. IN MX 5 mail.example.com.
@ IN MX 10 pop.example.com.
dns IN A 192.168.0.20
www IN A 192.168.0.20
mail IN A 192.168.0.21
起始授权段放在每一个域文件的开头,并且定义了一些最基础的参数。
SOA 段中的数字,分别为:序列号、刷新、重试、过期、生存期
序列号:序列号用于DNS 数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。
刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别。
重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。生存期:服务器回答 ‘无此域名’ 的间隔时间。
数字的默认单位为秒。否则:W=周、D=日、H=小时、M=分钟。
NS (name server):设置域名服务器的域名
例:example.com. IN NS dns.example.com.
MX (Mail eXchanger):设置邮件交换器资源记录
例:example.com. IN MX 5 mail.example.com.
example.com. IN MX 10 smtp.example.com.
A (Address ):设置主机地址资源记录
例:dns.example.com. IN A 192.168.0.20
CNAME (Canonical Name):设置别名记录
例:smtp IN CNAME mail.example.com.
反向解析区域文件
反向解析区域文件的结构和格式与区域文件类似,只不过它的主要内容是建立IP 地址映射到DNS 域名的指针PTR 资源记录。
注意:在反向解析区域文件中必须包括SOA 初始授权记录与NS 记录。
在var/named/chroot/var/named/192.168.0.arpa 文件中定义反向解析区域。
$TTL 38400 ; 生存期
@ IN SOA dns.example.com. admin.example.com. (
2005090503 ; 序列号
3600 ; 刷新时间
300 ; 重试时间
604800 ; 过期时间
60 ; 宣布无此域名
)
@IN NS dns.example.com.
,20 IN
20IN
21IN PTR PTR PTR dns.example.com. www.example.com. mail.example.com.
BIND 语法检查工具
在BIND 出错时使用如下工具:
named-checkconf
默认检查的配置文件是 /etc/named.conf
named-checkzone 域 Zone 文件名
检查一个文件的配置
主要名称服务器的测试
测试前的准备
启动DNS 服务
/etc/rc.d/init.d/named start
配置/etc/resolv.conf
使用nslookup 程序测试
非交互式通常用于返回单块数据的情况,其命令格式为:
nslookup [-选项] 需查询的域名 [DNS服务器地址]
交互式通常用于返回多块数据的情况,其命令格式为:
nslookup [- DNS服务器地址]
使用host 程序测试
host [ip/域名] [DNS服务器的IP]
实现负载均衡
D NS 负载均衡的优点是经济简单易行,它在DNS 服务器中为同一个域名配置多个IP 地址(即为一个主机名设置多条A 资源记录),在应答DNS 查询时,DNS 服务器对每个查询将以DNS 文件中主机记录的IP 地址按顺序返回不同的解析结果,将客户端的访问引导到不同的计算机上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
例如,在企业网中需要使用3台内容相同的FTP 服务器共同承担客户对FTP 的访问,它们的IP 地址分别对应192.168.0.11、192.168.0.12和192.168.0.13。现只要在DNS 服务器的区域文件中加入以下3条A 资源记录,就可以实现3台FTP 服务器网络负载均衡功能。
ftp 0 IN A 192.168.0.11
ftp 0 IN A 192.168.0.12
ftp 0 IN A 192.168.0.13
实现直接解析域名
DNS 服务器默认只能解析完全规范域名FQDN ,不能直接将域解析成IP 地址。为了方便用户访问,可以在DNS 服务器的区域文件中加入下面一条特殊的A 资源记录,以便支持实现直接解析域名功能。
example.com. IN A 192.168.0.20
或
@ IN A 192.168.0.20
实现泛域名的解析
泛域名是指一个域名下的所有主机和子域名都被解析到同一个IP 地址上 。可以在DNS 服务器的区域文件末尾(域名从上到下解析)加入下面一条特殊的A 资源记录(符号“*”是代表任何字符的通配符),以便支持实现泛域名解析功能。
,例
*.example.com. IN A 192.168.0.20
或
•IN A 192.168.0.20
实现连续域解析
在一个企业中,可能有上百台计算机,如果要为每一个计算机分配一个域名,如果一条一条的添加到域文件中,则相当耗时。
实现连续域解析
正向解析
$GENERATE 1-200 host$ IN A 192.168.0.$
反向解析
$GENERATE 1-200 $ IN PTR host$.example.com.
配置辅助名称服务器
辅助名称服务器也可以向客户机提供域名解析功能,但它的数据不是直接输入的,而是从主要名称服务器或其他的辅助名称服务器中复制过来的,只是一份副本,所以辅助名称服务器中的数据无法被修改。在一个区域中设置多台辅助名称服务器具有以下优点。
提供容错能力。当主要名称服务器发生故障时,由辅助名称服务器提供服务。
分担主要名称服务器的负担。在DNS 客户端较多的情况下,通过架设辅助名称服务器完成对客户端的查询服务,可以有效地减轻主要名称服务器的负担。
加快查询的速度。例如,一个公司在远地有一个与总公司网络相连的分公司网络,这时可以在该处设置一台辅助名称服务器,让该分公司的DNS 客户端直接向此辅助名称服务器进行查询,而不需要通过速度较慢的广域网向总公司的DNS 服务器查询,减少用于DNS 查询的外网通信量。
辅助名称服务器的主配置文件是/etc/named.conf,也需要设置服务器的选项和根区域,方法与配置主要名称服务器的方法相同。
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters { 192.168.0.20; };
};
type:设置辅助名称服务器的类型
file:设置同步后的zone 文件存放位置
masters:指定主名称服务器的地址。
缓存服务器
Cache-only 服务器是很特殊的DNS 服务器,它本身并不管理任何区域,但是DNS 客户端仍然可以向它请求查询。
Cache-only 服务器类似于代理服务器,它没有自己的域名数据库,而是将所有查询转发到其他DNS 服务器处理。
当Cache-only 服务器收到查询结果后,除了返回给客户机外,还会将结果保存在缓存中。当下一个DNS 客户端再查询相同的域名数据时,就可以从高速缓存里查出答案,加快DNS 客户端的查询速度。
配置缓存服务器
修改主配置文件/var/named/chroot/etc/named.conf 具体的代码如下。
options {
,directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file /var/named/data/named_stats.txt";
forward only;
forwarders { 192.168.0.20;61.139.2.69; };
};
forward only:设置本DNS 服务器只作转发
forwarders:定义将客户机的查询转发到哪些DNS 服务器,可以为多个IP 地址。
ACL
BIND 支持Access Control Lists(访问控制列表),ACL 可以使BIND 的访问控制便于维护。例
acl query { 192.168.0.0/24;192.168.1.0/24; };
options {
directory “/var/named”; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt";
allow-query { query; };
allow-transfer { query; };
};
DNS 服务器配置文件
/etc/resolv.conf
DNS 解析
host IP/域名