DNS全面解析
DNS 简介域名系统(DNS)在TCP/IP结构的网络中,是一种很重要的Internet 和Intranet 服务,它是一种组织成域层次结构的计算机和网络服务命名系统,通过DNS 服务可以将易于记忆的
DNS 简介
域名系统(DNS)在TCP/IP结构的网络中,是一种很重要的Internet 和Intranet 服务,它是一种组织成域层次结构的计算机和网络服务命名系统,通过DNS 服务可以将易于记忆的域名和不易记忆的IP 地址进行转换,从而使得人们能够通过简单好记的域名来代替IP 地址访问的网络。承担DNS 解析任务的网络主机称为DNS 服务器,建立一台DNS 服务器,需要具备的条件:
一个IP 地址
域名
网络与Internet 连接(不包括使用调制解调器进行的连接)
DNS 的特征
通常认为DNS 只是将域名换成IP 地址,然后再使用查找IP 地址连接目标主机,这个过程称为正向查找。事实上,IP 地址转换成相应域名的功能也经常需要使用到。这个过程称为反向查找。
适合于任何网络规模,DNS 工作不依赖于大规模的IP 地址映射表。 采用分布式数据系统结构,易于管理,网络运行可靠性高。
在DNS 系统中,新入网的IP 信息可以在需要时自动广播到网络的任意一处。
DNS 的组成
域名或资源记录(Domain Name and Resource Records):用来指定结构化的域名空间和相应的数据。
,域名服务器(Domain Name Server ):它是一个服务器端程序,包括域名空间树结构的部分信息。
解析器(Resolves):它是客户端用户向域名服务器提交解析请求的程序。
DNS 层次结构与域名分配
DNS在运行中需要进行委派,这项工作由Internet 协会授权委员会完成,该协会管理Internet 的地址和域名登记。下属三个机构分别管理全球不同地区的域名和地址分配:欧洲信息网络中心、负责管理欧洲的域名分配;InterNIC 负责管理南北美和非亚太所属区的域名;亚太地区的APNIC ,负责管理该地区域名和地址的分配。
在DNS 系统内,存在着一个最上级的服务器,通常被称为根节点服务器(Root Server) 。各国家和地区的根节点服务器只为该国家和地区的网络提供IP 查询服务,而具体的映射是由其下属服务器来实现的。各根节点下的一级域名服务器仅负责管理其二级域的IP 地址信息,二级域名服务器则仅为其所属范围内的各个三级域提供服务,三级域以下的各子域则各个入网单位自己管理。三级域名一般有各个国家管理中心(Network Information Center)统一分配和管理。
一级域名:也叫根域名,世界各国和地区的根域名均依照国际标准化组织的规定,采用双字符方式来表示。中国为cn
二级域名
各国有各国的规定,中国的二级域名定义如下:
edu :教育科研机关。
com :企事业单位。
gov :政府机关。
,net :网络管理机关。
org :网络服务性机关。
在中国,ChinaNet 由CNIC(China Network Information Center)统一负责IP 地址的分配和二级域名的命名。
三级域名
常常以各单位的英文缩写来命名。例如:北京大学为pku ,清华大学为tsinghua 。tsinghua.edu.cn
Windows server 2003下的DNS 配置过程
安装DNS 服务
开始—〉设置—〉控制面板—〉添加/删除程序—〉添加/删除Windows 组件—〉“网络服务”—〉选择“域名服务系统(DNS )”—〉按确定进行安装
创建DNS 正相解析区域
开始—〉程序—〉管理工具—〉选择DNS ,打开DNS 控制台—〉右击“正相
搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”(或“Active Directory 集成区域”或“标准辅助区域”)--〉输入域名“abc.com ” —〉输入要保存的区域的文件名“abc.com.dns ”— 〉
按完成,完成创建创建主机记录等:
右击“abc.com ”—〉“新建主机” —〉在名称处输入“www ”,在“IP 地址”处输入“192.168.0.3”,—〉按“添加主机”完成
创建DNS 反向解析区域
,开始—〉程序—〉管理工具—〉选择DNS ,打开DNS 控制台—〉右击“反向搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”—〉输入用来标示区域的“网络ID”—〉输入要保存的区域的文件名
“0.168.192.in-addr.arpa.dns”—〉按完成,完成创建创建指针PTR :
右击“192.168.1.x.subnet”—〉选择“新建指针”—〉在“主机IP 号”中输入2—〉在“主机名”中输入ftp —按 “确定”完成添加
启用DNS 循环复用功能
如www.abc.com 对应于多个IP 地址时DNS 每次解析的顺序都不同。右击选择“DNS服务器”—〉属性—〉高级—〉选择“启用循环”(round robin )--〉选择“启用netmask 排序”—〉按“ 确定”返回。注:如所有的IP 和域名服务器在同一子网时需要取消“启用netmask 排序”,才能实现循环复用功能。即启用循环时,当主机的IP 和dns 在同一个子网时将始终排在最前面,当都在一个子网时就不进行循环,只有去除了“启用netmask 排序” 时才能实现循环复用。DNS 服务器会优先把与自己的网络ID 相同的记录返回给客户端
创建标准辅助区域,实现DNS 区域复制
在另一台DNS 服务器上,右击“正向搜索区域”—〉选择“新建区域”—〉选择“标准辅助区域”—〉输入“abc.com”—〉输入主域名服务器的IP 地址—〉选择“完成”
可手工要求同步:
在辅域名服务器上右击“abc.com”的域—〉选择“从主服务器传输”,并且可以设置允许传输的域名服务器:在主域名服务器上右击“abc.com”的域—〉选择“属性”—〉选择“区域复制”—〉在“允许复制”前打勾,并选择允许复制的主机(到所有服务器、只有在“名称服务器”选项卡中列出的服务器、只允许到下列服务器)完成服务器类型的转换:右击区域—〉选择 “属性”—〉选择“类型”的“更改”按钮—〉选择要更改的区域类型—〉按“确定” 实现DNS 唯高速缓存服务器
,创建一个没有任何区域的DNS 服务器—〉右击DNS 服务器—〉选择“属性”—〉选择“转发器”中的“启用转发器”—〉输入转发器的IP 地址—〉按“确定”完成,清除“唯高速缓存”中的cache 内容:右击“DNS服务器”—〉选择“清除缓存”,或者选择“DNS服务器”—〉在菜单中选择“查看”,高级—〉右击“缓存的查找”—〉选择“清除缓存”
(客户端清空DNS 缓存—)ipconfig /flushdns)
DNS 的委派(子域的转向)
在原域名服务器上建立“subdomain.abc.com”的主机—〉右击abc.com 的域,选择“新建委派”—〉将subdomain.abc.com 的域代理给subdomain.abc.com 的主机—〉在subdomain.abc.com 上建立“正向标准区
域”subdomain.abc.com—〉添加相关主机记录
设置 DNS区域的动态更新
右击选择DNS 上区域—〉选择“属性”—〉选择“常规”中的“允许动态更新”,选是— 〉然后按 “确定”—〉在本机的DHCP 服务器中—〉右击选择DHCP 服务器—〉选择“属性”—〉选择“DNS”—〉选择“为不支持动态更新的DNS 客户启用更新”—〉在客户端使用ipconfig /registerdns来更新域名的注册信息
注意客户端需要将完整的计算机名改成myhost.abc.com
配置DNS 客户端
在客户端计算机上打开tcp/ip属性对话框,在dns 服务器地址栏输入dns 服务器的ip 地址 1、安装DNS 服务
开始—〉设置—〉控制面板—〉添加/删除程序—〉添加/删除Windows 组件—〉“网络服务”—〉选择“域名服务系统(DNS )”—〉按确定进行安装
,Linux 系统下配置过程
DNS 查询过程
DNS是典型的客户机/服务器(C/S)模式结构。DNS 的查询过程如下:首先请求程序通过客户端解释器向服务端发出查询请求,等待由服务器端数据库给出应答,并解释server 给出的答案,然后把所得信传给提出请求的程序。客户端将请求传送给这台计算机所设置的DNS Server,指定的DNS Server先查看该域名是不是在它的缓存文档中,如果是则回复答案;如果不是,就从最上一级查起。 Linux系统上使用的DNS 服务器软件是伯克利域名系统(Berkeley Internet Name Domain),即BIND 。BIND 系统由服务器端和解释器端两部分组成。
服务器:其作用是对查询请求加以应答,它一般为一个独立的进程,该进程是常驻进程。
解释器:其作用是向服务器进程提供查询请求。解释器一般并非一个常驻程序,而是作为库程序。该程序提供与域名服务器的连接和信息交换的方法。 DNS服务器有若干种,每种服务器在域名服务系统中所起的作用都不一样。 Master Server(主服务器)
某个区域的主DNS 服务器。它是给定域的所有信息的授权来源,它所装载的域信息来源于管理员所创建的磁盘文件,通过本地维护,更新有关服务器授权管理域的最精确的信息。
Slave Server(辅助服务器)
从主服务器上获得域信息的完整集合。域文件是从主服务器上传过来的并以本地的文件形式存储在辅助服务器的硬盘上。辅助服务器保留了一份所有域信息的完整备份,有时也被称为备份域名服务器。
Caching only Server(缓存服务器)
运行域名服务器软件,但并没有域名服务器数据库文件。它记录每一个从远
,程服务器传到服务器的查询结果。一旦获得答案,该服务器就将答案缓存起来以备将来对同一信息的查询。
Forward Server(转发服务器)
将需要解析的DNS 请求发送到该网络以外的服务器上,它可以保持局域网上的其他服务器对Internet 隐藏。
DNS 的启动
Red Hat Linux 9中,系统一般默认安装了BIND ,可以通过以下命令进行查询: rpm -qa | grep bind
DNS 的启动:
service named restart
查询DNS 的状态:
service named status
配置主域名服务器
主配置文件:named.conf ,其路径为/etc/named.conf。它用来设置全局参数,调配正向解析数据库文件和逆向解析数据库文件。
例:域名为test.net ,主机IP 为192.168.1.2,主域名服务器为x.test.net 。 zone "test.net" IN{->定义正向解析区声明
type master;->类型为主域名服务器
file "localhost.zone";->定义正向解析文件为/etc/named/localhost.zone
,allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {->反向解析区声明
type master;
file "named.local";->定义反向解析文件为/var/named/named.local allow-update { none; };
};
正向数据库文件:localhost.zone ,其路径为/var/named/localhost.zone,该文件用来将域名转换为IP 地址,是区域文件的一部分。
IN NS x.test.net->设置域名记录
x IN A 192.168.1.2->设置地址记录,可连续多设
逆向解析数据库文件:named.local ,其路径为/var/named/named.local,该文件用来将IP 地址转换成域名,也是区域文件的一部分。
IN NS x.test.net->设置域名记录
2 IN PTR x.test.net->设置反向地址指针记录,对应正向文件中的设置,2即
2.1.168.192
根域名服务器指向文件:named.ca ,其路径为/var/named/named.ca。它用来缓存服务器的初始设置。
辅助域名服务器
辅助域名服务器向客户机提供域名解析功能与主域名服务器不同,它不使用本身的配置信息,而是从主域名服务器中复制配置信息过来,该信息只是一份备份。辅助域名服务器中的信息是无法修改的,当启动辅助域名服务器时,它会和
,它建立联系的所有主要域名服务器建立联系,并从中复制信息,在辅助域名服务器工作期间,它会定期地更改原有的信息,以尽可能地保证副本与正本数据的一致性。
辅助域名服务器的配置比较简单,只需要在另外用作辅助域名服务器的计算机(主域和备份域不能配置在同一台计算机上) 上修改主配置文件/etc/named.conf即可,在配置辅助名称服务器时,只需要提供区域名和主名称服务器IP 地址,其他配置文件不用配置,系统将直接从主域名服务器上自动进行调用。 zone "test.net" IN {->从区域名称要与主名称服务器的名称相同。 type slave;->slave类型为辅助域名服务器类型。
file "localhost.zone";->定义正向解析文件为/var/named/localhost.zone,可删除
master { 192.168.1.2; };->指向主DNS 的IP 地址。
};
zone "1.168.192.in-addr.arpa" IN {->定义反向解析区声明
type slave;
file "named.local";->定义反向解析文件为/var/named/named.local,可删除 master { 192.168.1.2; };->定义主DNS 的IP 地址。
};
配置域名服务器的负载均衡
域名服务器负载均衡的实现方法是在网络中为域名服务器中的同一个域名配置多个IP 地址,即为一个主机名设置多条A 资源记录,在应答DNS 查询时,域名服务器对每个查询将以域名服务器中主机记录的IP 地址按顺序返回不同的
,解析结果,将客户端的访问引导到不同的计算机上去。域名服务器的负载均衡的优点是经济、简单和易行。
例如:需要使用4台内容相同的www 服务器共同承担客户对网站的访问,其IP 地址分别是192.168.1.2、192.168.1.4和192.168.1.5、192.168.1.6。那么只需要编辑域名服务器的区域文件/var/named/localhost.zone。如: IN NS x.test.net
x IN A 192.168.1.2->原来用作www 服务器的IP 。
xx IN A 192.168.1.3
x IN A 192.168.1.4->实现负载均衡设置。
x IN A 192.168.1.5->实现负载均衡设置。
x IN A 192.168.1.6->实现负载均衡设置。
配置直接域名解析
一些用户在访问某些网站时,在浏览器中不输入主机名,而是直接输入主机名后面的内容。如sohu.com 。其实并不是所有的网站都支持这种访问方式,支持这种访问方式的网站都是在其域名服务器中进行了相应的配置,即进行直接解析域名的配置。
编辑域名服务器的区域文件/var/named/localhost.zone,可加入一条特殊的A 资源记录。如:
x IN A 192.168.1.2->用作www 服务器的IP
. IN A 192.168.1.2->前面可直接用. 代替x
test.net IN A 192.168.1.2->也可以用test.net 代替x
配置DNS 泛域名解析功能