一
.DNS
简介
1.IP
地址和主机名的转换方法
主机名便于记忆
类
UNIX
中有
3
种技术来实现主机名到
IP
地址的转换
host
解析:
主要指本地
/etc/host
例
192.168.88.57 [url]www.abc.com[/url] ping [url]www.abc.com[/url]
在一个大型网络中
Hosts
文件较繁琐而又复杂,在
DNS
中起备份作用
NIS,NetWork Information System
网络信息服务系统,
NIS
将所有主机数据都保存在中央主机上,由中央主机将所需数据分配给所有的服务器,简单数据库适用于像局域网这样的中型网络
DNS
,
Domain Name system
它使用一种层次的树型结构的分布式数据库来处理
Internet
上的主机和
IP
地址的转换
2.DNS
的组成:
DNS
是基于
C/S
模型设计的,每个服务器包含指向其他域名服务器的信息,
DNS
包括
3
个部分
域名空间
:
标识一组主机并提供他的有关信息的树结构的详细说明,树上的每一个结点都有其控制下的主机的有关信息的数据库
域名服务器
:
保持和维护域名空间中数据的程序,一个域名服务器拥有其控制范围(区域)内的完整信息
解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以获得对域名空间中主机的查询,用于
DNS
客户
3.
域名注册
:
例
[url]www.bjxh.com[/url]
当子网需连接
Internet
并且需要由自己管理这个域时,
InterNIC
会把相应信息放进
.com
域的服务器上,使其传播,
DNS
服务器周期性和其他
DNS
服务器上的各种数据库同步
,
并检查其他服务器上的新表项,一个新的域名大约会在
3~4
天完成传播
二
.DNS
域名空间的分层结构
FQDN(Full Qualified Domain Name),
域名是层次的,位于右边,左边是主机名
,"
域
"
是
DNS
域名空间的基本单位
1.
根域
(Root Domain)
:全世界的
IP
地址和
DNS
域名空间都是由位于美国的
InterNIC
负责管理或进行授权管理,全世界共有
13
台根域服务器,根域服务器中只保存着顶级域的
DNS
服务器和
IP
地址的对应数据,根域是默认的不需要表示出来
2.
顶级域
(top-level domain,TLD):
顶级域由
InterNIC
统一管理,数目有限且不能轻易变动
.
顶级域有两种划分:地理域和机构域
只包括顶级的服务器和
IP
地址负责解析顶级域的
IP
地址。
顶级域:
地理域:澳大利亚
.au
俄联邦
.ru
法国
.fr
德国
.de
中国
.cn
加拿大
.ca
意大利
.jp
韩国
.kr
新加坡
.sg
英国
.uk
美国
.us
台湾省
.tw
机构域:教育
.edu
商业
.com
军事机构
.mil
政府机构
.gov
国际组织
.int
网络组织
.net
1997
年又建立了
7
个顶级域,进一步划分域名空间
firm store web arts rec info nom
3.
子域:除了根域和顶级域之外,其它域都称为子域
4.
反向域
(in-addr.arpa)
:
IP
解析为相应的
FQDN
名,反向域中有一个根域
.in-addr-arpa
,使用一个
IP
地址的一个字节值来代表一个子域,根域下面可有
256
个子域,例
1.168.192.in-addr.arpa
5.
域的委任管理:
层次结构允许将整个管理任务分成多份,分别由子域进行管理,维护属于该子域的所有主机信息,并负责回答所有相关查询,将
DNS
数据库中属于这些子域的信息放到各自的域名服务器
委托管理的优点:
1.
可以起到负载均衡的功能
2.
提高子域名服务器的响应
3.
提高带宽的利用率
6.DNS
区域
(zone):
区域是
DNS
服务器管辖范围,由单个域或具有上下隶属关系的紧密相邻的多个子域组成的一个管理单位,即由连续的域构成
一台
DNS
服务器可以管理一个或多个区域,而一个区域也可以有多台
DNS
服务器来管理
三
.DNS
域名服务器的类型:
1
、域名服务器:保存域名空间信息
2
、高速缓存服务器:提高网络带宽利用率
3
、主服务器:
权威的信息
4
:辅助服务器:可以从主服务器中复制一整套域信息,配置辅助域名服务器不需要生成本地区文件,可以从主服务器中下载该区文件。
四
.DNS
域名解析过程
1.DNS
查询模式
:
递归查询
(Recursive Query)
迭代查询
(Iterative Query)
五
.Linux
下的
DNS
服务器配置
1.
服务器:
named
客户端:
resolver
3.
启动域名服务器
#service named start
#service named restart
重新启动
bind
服务
#pstree|grep named
#rndc status
查看域名服务器的运行状态
#rndc reload
重新装载配置文件
4.
域名服务器的配置语法
域名服务器配置文件族
主配置文件
/etc/named.conf
设置一般的
named
参数,指向该服务器使用的域数据库的信息源
根域名服务器指向文件
/var/named/named.ca
指向根域名服务器,用于惟高速缓存服务器的初始配置
localhost
区文件
/var/name/localhost.zone
用于将名字
localhost
转换为本地回送
IP
地址
127.0.0.1
转换为名字
localhost
用户配置的区文件
/var/named/name2ip.conf
将主机名映射为IP地址的区文件
/var/named/ip2name.conf
将
IP
地址映射为主机名的区文件
5.
主配置文件
named.conf
配置语句
/etc/named.conf
#cat /etc/named.conf
options{
dierectory "/var/named";
定义服务器区配置文件的工作目录
};
#
定义
rndc
命令使用的控制通道
controls{
inet 127.0.0.1 allow{localhost;}keys{rndckey;};
};
#
定义根区声明
zone "." IN{
type hint;
file "named.ca"
allow-update{none;};
};
#
定义
localhost
反向解析区声明
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local"
allow-update {none;};
};
include "/etc/rndc.key"
6.
查看根域指向区文件
#grep -v ";" /var/named/named.ca
7.
查看本地域区文件
cat /var/named/localhost.zone
$TTL 86400
定义
RR
默认使用的
TTL=86400s=1
天
$ORIGIN abc.com.
设置管辖源为
abc.com.
@ 1D IN SOA rhl9.abc.com. root.abc.com.(
42 ;serial
本区信息文件的版本号
3H ;3
小时,
Refresh
辅助域名服务器多长时间更新数据库
15M ;15
分钟若辅助域名服务器更新数据失败,多长时间再试
1w ;1
若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效
1D );1
天即
RR
的
ttl
1D IN NS rhl9.abc.com.
1D IN A 127.0.0.1
rhl 9 IN A 192.168.1.57
www IN CNAME rhl9.abc.com.
abc.com
的反向解析文件
$TTL 86400
定义
RR
默认使用的
TTL=86400s=1
天
$ORIGIN abc.com.
设置管辖源为
abc.com.
@ 1D IN SOA rhl9.abc.com. root.abc.com.(
42 ;serial
3H ;3
小时
15M ;15
分钟
1w ;1
周
1D );1
天
1D IN NS rhl9.abc.com.
1 I N PTR rhl9.abc.com.
#service named restart
#rndc reload
8.
资源记录
:
RR
中的字段
name
域对象名
ttl
寿命字段
,
它以
s
为单位定义该资源记录中的信息存放在高速缓存中的时间长度
IN
将该记录标识为一个
InternetDNS
资源记录
type(A IP address
用于将主机名转换
IP
地址,任何一个主机都只能有一个
A
记录
CNAME Canonical
给定主机的别名,主机的规范名在
A
记录中给出
HINFO Hardware
机器硬件名
|Os-type
操作系统名,描述主机的信息
MX,Mail Mailer-exchanger
邮件服务器名字,
eXchanger
邮件交换记录,告诉邮件进程把邮件发送到另一个系统
NS Name-server
域名服务器的名字
,
标识一个域的域名服务器
PTR Real-name
主机的真实域名,将地址转换为主机名
SOA
标识服务器所管理的起始地方,
SOA
记录后的所有信息是控制这个域的
)
10.
配置
DNS
作简单负载均衡:利用
DNS
轮询的方法
,
通过对单个
FQDN
设置多个
IP
地址实现的,例如
HTTP
服务器
rhl9.abc.com
有
2
个主机,其
IP
地址分别是
192.168.1.201
和
192.168.1.202
,客户首次对查询
rhl9.abc.com
的地址是
192.168.1.201
,对此主机进行访问,第二次查询是的
IP
地址是
192.168.1.202
,故对
192.168.1.202
主机进行访问
.
从而实现了负载均衡
vi /etc/named/abc.com.hosts
rhl 9 I N A 192.168.1.201
rhl 9 I N A 192.168.1.202
#rndc reload
#host rhl9.abc.com
11.
配置辅助域名服务器
:
在要配置辅助域名服务器的
Linux
计算机上对主配置文件配置同名区域,注意指定辅助域名服务器的类型
slave,
区数据库文件将从主域名服务器自动获得
,
例
zone "abc.com"{
type slave;
file "abc.com.hosts";
masters{192.168.1.57;};
};
添加反向解析
zone "1.168.192.in-addr.arpa"{
type slave;
file "192.168.1.rev";
masters {192.168.1.57};
};
#service named restart
#ifconfig eth0|grep inet
12.
配置域转发
:
当
DNS
客户端向指定的
DNS
服务器要求进行域名解析时,若此域名服务器无法解析
,
它将用缓存中的信息帮助定位能解析的其他服务器,通常仅仅找到一个根域服务器,若不希望直接定位到根域服务器,可以设置域名转发器
(Forwarder),
配置了域名转发清单的域名服务器会把不能直接从自己缓存响应的请求发送给转发器中定义的服务器,可以减少广域网中的通信量,实现需修改配置文件
/etc/named.conf
options (
forwarders{202.106.192.115;202.106.196.152
;
}
;
)
13.
区域委派
可以将名称空间分割一个或多个区域的功能,可将这些区域存储、分配和复制到其他
DNS
服务器,父域对子域的
DNS
服务器进行委派
.
在父域的
DNS
服务器的正向解析文件中执行的步骤
定义子域的名称
命名负责该子域的
DNS
服务器
定义子域的
DNS
服务器的
IP
地址
但是,反向解析文件的配置相对复杂
将
IP
地址看作
4
个独立的字节
将
IP
地址看作
32
位二进制数
例
:
基于字节界限的委派
域名
域中主机所在的网段
域名服务器
FQDN
域名服务器
IP
主域
jamond.net 192.168.1.0 shrike.jamond.net 192.168.1.200
子域
osmond.jamond.net 192.168.11.0 rh9.osmond.jamond.net 192.168.11.200
shrike.jamond.net /etc/named.conf
#vi /etc/named.conf
zone "168.192.in-addr.arpa"{
type master;
file "192.168.rev";
};
#vi /var/named/jamond.net.hosts
$TTL 86400
定义
RR
默认使用的
TTL=86400s=1
天
$ORIGIN abc.com.
设置管辖源为
abc.com.
@ 1D IN SOA shrike.jamond.net. root.jamond.net.(
42 ;serial
本区信息文件的版本号
3H ;3
小时,
Refresh
辅助域名服务器多长时间更新数据库
15M ;15
分钟若辅助域名服务器更新数据失败,多长时间再试
1w ;1
若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效
1D );1
天即
RR
的
ttl
1D IN NS shrike.jamond.net.
1D IN MX 5 shrike.jamond.net.
shrike IN A 192.168.1.200
osmond IN NS rh9.osmond.jamond.net.
设置
osmond.jamond.net
域的域名服务器
rh9.osmond IN A 192.168.11.200
#rndc reload
配置基于字节界限的委派的子域的主域名服务器
zone "osmond.jamond.net"{
type master;
file "osmond.jamond.net.hosts";
};
zone "11.168.192.in-addr-arpa"{
type master;
file "192.168.11.rev";
};
#vi /var/named/osmond.jamond.net.hosts
$TTL 86400
定义
RR
默认使用的
TTL=86400s=1
天
$ORIGIN abc.com.
设置管辖源为
abc.com.
@ 1D IN SOA rh9.osmond.jamond.net. root.osmond.jamond.net.(
42 ;serial
本区信息文件的版本号
3H ;3
小时,
Refresh
辅助域名服务器多长时间更新数据库
15M ;15
分钟若辅助域名服务器更新数据失败,多长时间再试
1w ;1
若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效
1D );1
天即
RR
的
ttl
1D IN NS rh9.osmond.jamond.net.
1D IN MX 5 rh9.osmond.jamond.net.
rh 9 IN A 192.168.11.200
$TTL 86400
定义
RR
默认使用的
TTL=86400s=1
天
$ORIGIN abc.com.
设置管辖源为
abc.com.
@ 1D IN SOA shrike.jamond.net. root.jamond.net.(
42 ;serial
本区信息文件的版本号
3H ;3
小时,
Refresh
辅助域名服务器多长时间更新数据库
15M ;15
分钟若辅助域名服务器更新数据失败,多长时间再试
1w ;1
若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效
1D );1
天即
RR
的
ttl
1D IN NS shrike.jamond.net.
1D IN MX 5 shrike.jamond.net.
shrike IN A 192.168.1.200
osmond IN NS rh9.osmond.jamond.net.
设置
osmond.jamond.net
域的域名服务器
rh9.osmond IN A 192.168.11.200
14.DNS
客户端
:domain abc.com(
对于
2000
而言即附加
DNS
后缀
) nameserver 192.168.2.57