- 论坛徽章:
- 0
|
第4章 DNS服务
4.1 DNS原理
4.1.1 DNS简介
DNS(Domain Name System)域名系统
4.1.2 域名空间
DNS是一个分布式数据库,命名系统采用层次的逻辑结构
注:DNS域名空间中,树的最大深度不得超过127层,树中每个节点最长可以存储63个字符。
域名通常由一个完全正式域名(FQDN)标识。
组织域:采用3个字符的代号,表示DNS域中所包含的组织的主要功能或活动。比如com为商业机构组织,edu为教育机构组织,gov为政府机构组织,mil为军事机构组织,net为网络机构组织,org为非营利机构组织,int为国际机构组织。
地址域:采用两个字符的国家或地区代号。如cn为中国,kr为韩国,us为美国。
反向域:这是个特殊域,名字为in-addr.arpa,用于将IP地址映射到名字(反向查询)。
4.1.3 区(Zone)
区是DNS名称空间的一个连续部分,其包含了一组存储在DNS服务器上的资源记录。每个区都位于一个特殊的域节点,但区并不是域。DNS域是名称空间的一个分支,而区一般是存储在文件中的DNS名称空间的某一部分,可以包括多个域。一个域可以再分成几部分,每个部分或区可以由一台DNS服务器控制。使用区的概念,DNS服务器回答关于自己区中主机的查询,它是哪个区的授权服务器。
4.1.6 DNS查询原理及流程
(1)递归查询
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
(2)迭代查询
DNS服务器另外一种查询方式为迭代查询,DNS服务器会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。
4.1.8 资源记录
1)SOA资源记录
每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。
2)NS资源记录
名称服务器(NS)资源记录表示该区的授权服务器,它们表示SOA资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至少包含一个NS记录。
3)A资源记录
地址(A)资源记录把FQDN映射到IP地址,因而解析器能查询FQDN对应的IP地址。
4)PTR资源记录
相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。
5)CNAME资源记录
规范名字(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道。
6)MX资源记录
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器,用简单邮件传输协议SMTP把邮件发送给离最终目的地最近的邮件交换服务器,或使邮件经过一定时间的排队。
4.2 安装DNS服务
4.2.1 BIND简介
BIND全称为Berkeley Internet Name Domain(伯克利因特网名称域系统)。BIND主要有三个版本:BIND4、BIND8、BIND9。
BIND8融合了许多提高效率、稳定性和安全性的技术,而BIND9增加了一些超前的理念:IPv6支持、公开密钥加密、多处理器支持、线程安全操作、增量区传送等等。
4.2.3 DNS的安装
4.3 DNS常规服务器配置
一个比较简单的DNS服务器设置流程主要分为以下三步:
1)建立主配置文件named.conf,该文件的最主要目的是设置DNS服务器能够管理哪些区域(Zone)以及这些区域所对应的区域文件名和存放路径。
2)建立区域文件,按照named.conf文件中指定的路径建立区域文件,该文件主要记录该区域内的资源记录。
3)重新加载配置文件或重新启动named服务使用配置生效。
4.3.1 主配置文件named.conf
options {
directory "/var/cache/bind"; //用于定义服务器的工作目录,该目录存放区域数据文件。配置文件中所有相对路径的路径名都基于此目录。如果没有指定,默认的是BIND启动的目录。
// forwarders {
// 0.0.0.0;
// };
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
4.3.4 区域文件与资源记录
$ORIGIN test.com. //定义@变量的值,通常定义为本区域。
$TTL 604800 //定义资源记录在缓存的存放时间
@ IN SOA localhost. root.localhost. ( //设置SOA记录,注意root表示管理员的邮件地址,本应该表示为“root@tech.org.”,但是这是不能使用“@”符号,因为“@”在这里表示区域哈~~所以需要用“.”来代替它。表示“root.tech.org.”,可以简写成“root”。
4.3.5 SOA资源记录
OA资源记录语法格式:区域名(当前) 记录类型 SOA 主域名服务器(FQDN) 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
4.3.6 NS记录
用于指定一个区域的权威DNS服务器,通过在NS资源记录中列出服务器的名字,其他主机就认为它是该区域的权威服务器。这意味着在NS资源记录中指定的任何服务器都被其他服务器当作权威的来源并且能应答区域内所含名称的查询。
NS资源记录语法格式:
区域名 IN NS 完整主机名(FQDN)
4.3.10 根区域设置及对应区域文件
根区域是一个较为特殊的区域,记录列出了全球根域名服务器的信息,域名通常用“.”表示,类型为hint。
4.3.14 DNS应用案例Ⅱ
4.4 DNS高级服务器配置
4.4.2 子域与区域委派
域名空间由多个域构成,DNS提供了将域名空间划分为一个或多个区域的方法,这样使得管理更加方便。而对于域来说,随着域的规模和功能不断扩展,为了保证DNS管理维护以及查询速度,可以为一个域添加附加域,上级域为父域,下级域为子域。
执行区域委派时,仅仅创建子域是无法使子域信息得到正常的解析。在父域的权威域名服务器的区域文件中,务必添加子域域名服务器的记录,建立子域与父域的关联,否则,子域域名解析无法完成。
(1)设置父域名主配置文件named.conf
zone "test.com" IN {
type master;
file "test.com.zone";
};
(2)添加test.com区域文件
$TTL 86400
@ SOA ns.test.com. root.ns.test.com. (
2007070901
3H
15M
1W
1H
)
IN NS ns.test.com.
ns IN A 1.2.3.4
a IN NS ns.a.test.com. //指定委派区域,a.test.com的管理工作由域名服务器ns.a.test.com 复制
ns.a IN A 4.3.2.1 //定位子域名a.test.com的权威服务器
(3)设置子域名服务器的主配置文件named.conf
zone "a.test.com" IN {
type master;
file "a.test.com.zone";
};
(4)添加a.test.com区域文件
$TTL 86400
@ SOA ns.a.test.com. root.ns.a.test.com. (
2007070901
3H
15M
1W
1H
)
IN NS ns.a.test.com.
ns IN A 4.3.2.1
4.4.3 转发服务器
options {
recursion yes; //允许递归查询
forwarders {
0.0.0.0; //转发地址
};
forward only; //仅执行转发操作
};
4.4.4 缓存服务器(Caching-only Name Server)
options {
datasize 80M; //DNS缓存设置为80M
recursion yes; //允许递归查询
};
4.6 DNS企业实战与应用
配置acl.conf
acl "dns-ip-list" {
192.168.0.188; #主DNS服务器IP
};
acl CNC {
58.16.0.0/16;
58.17.0.0/17;
...(省略)
222.163.0.0/19;
222.163.32.0/19;
};
acl TELECOM {
58.32.0.0/13;
58.42.0.0/15;
...(省略)
222.220.0.0/15;
222.240.36.0/13;
};
view "CNC" {
match-clients { dns-ip-list; CNC; };
recursion yes;
zone "test.com" {
type master;
file "test.com.cnc.zone"; #test.com网通解析文件
allow-query { any; };
allow-update { none; };
};
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa.zone";
allow-update { none; };
};
};
view "TELECOM" IN {
match-clients { dns-ip-list; TELECOM; };
server 192.168.5.20; #同步到辅助域名服务器
recursion yes;
zone "test.com" {
type master;
file "test.com.telecom.zone"; #test.com电信解析文件
allow-query { any; };
allow-update { none; };
};
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa.zone";
allow-update { none; };
};
};
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1120/showart_1888855.html |
|