目录
一.解析流程
DNS的解析通常由主域名服务器、辅域名服务器、缓存域名服务器、转发域名服务器进行域名解析。
1.主域名服务器负责维护这个区域的所有域名信息,需要从域管理员构造的本地磁盘文件中加载域信息进行解析。
2.辅助域名服务器作为主域名服务器的备份服务器提供域名解析服务。辅助域名服务器从主域名服务器获得授权,有一个所有域信息的完整拷贝,解析时需要访问本地存储文件。
3.缓存域名服务器可运行域名服务器软件,但是没有域名数据库,它从某个远程服务器取得每次域名服务器查询的回答,一旦取得一个答案,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。
4.转发域名服务器负责所有非本地域名的本地查询,转发域名服务器接到查询请求时,在其缓存中查找,如找不到就把请求依次转发到指定的域名服务器,直到查询到结果为止,否则返回无法映射的结果。
从上述服务器的查询机制中可以看出,缓存域名服务器通过高速缓存的存取进行域名解析,因此获取的解析结果耗时最短。
本地缓存记录—区域记录一转发域名服务器一根域名服务器
具体过程:
当DNS服务器收到查询请求后,首先在浏览器/系统缓存中找,接着在host文件中找,再在本地DNS服务器找(先找区域记录---->再找DNS服务器缓存)
如果查不到,可能是因为该服务器不是请求域的授权服务器,并且以前查询的缓存中没有需要的记录,这时DNS服务器必须向转发域名服务器(转发域名服务器负责所有非本地域名的查询)发送请求。如果没有转发域名服务器则找根域名服务器(采用迭代查询)。
当主域名服务器关闭、出现故障或负载过重时,辅助域名服务器作为备份服务器提供域名解析服务。辅助服务器从主域名服务器获得授权,并定期向主服务器询问是否有新数据,如果有则调入并更新域名解析数据,以达到与主域名服务器同步的目的。
DNS通知:及时同步主/辅DNS信息
例题:
客户端向DNS服务器发出解析请求后,没有得到解析结果,则(1) 进行解析。
(1)备选答案:
A.查找本地缓存 B.使用NetBIOS名字解析
C.查找根域名服务器 D.查找转发域名服务器
答案:B.使用NetBIOS名字解析
DNS主机名解析的查找顺序是:先查找客户端解析程序缓存;如果没有成功,则向DNS服务器发出解析请求;如果还没有成功,则尝试使用NetBIOS名字解析方法取得结果。
补充:DNS中继
如果想跨网段使用DNS服务器进行域名解析,就需要用到DNS中继(DNS relay)
在进行DNS查询的时候由DNS中继服务器将DNS查询请求转发到负责需要查询的域的DNS服务器,然后将查询结果返回。
例题:
以下关于DNS服务器的叙述中,错误的是(1)
A.用户只能使用本网段内 DNS服务器进行域名解析·
B.主域名服务器负责维护这个区域的所有域名信息
C.辅助域名服务器作为主域名服务器的备份服务器提供域名解析服务
D.转发域名服务器负责非本地域名的查询
答案 A
二.Bind配置DNS
BIND (Berkeley Internet Name Daemon)
BIND (Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
重要文件:
主要文件:
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件
type: hint(根区域)、master(主区域)、slave(辅助区域)
/var/named 数据配置文件目录
多种记录类型:
• SOA (Start Of Authoritative):开始授权记录是区域文件的第一条记录,指明区域的主服务器,指明区域管理员的邮件地址,并给出区域复制的有关信息
•序列号:当区域文件改变时,序列号要增加,辅助服务器把自己的序列号与主服务器的序列号比较,以确定是否需要更新数据
•刷新间隔:辅助服务器更新数据的时间间隔(秒)
•重试间隔:当辅助服务器不能连接主服务器进行更新时,必须每隔一定时间间隔(秒)重新试图连接
•有效期:如果辅助服务器不能更新自己的区域文件,超过有效期(秒)后就不再提供查询服务
•生命期(TTL):资源记录在其他名字服务器缓存中保存的最少有效时间(秒)
•A (Address):地址记录表示主机名到IP地址的映像
• AAAA:将DNS域名映射到ipv6(128位)的地址中
•PTR (Pointer):指针记录是IP地址到主机名的映射
•NS (Name Server):给出区域的授权服务器。通常情况下不需要设置 NS 记录,因为此时的域名解析是通过ISP提供的域名服务器解析的,若用户需要自己用 DNS 服务器来解析自己的域名,则要创建NS记录,并且将域名服务器的IP地址告诉ISP登记即可。
•MX (Mailexchanger):定义了区域的邮件服务器及其优先级(搜索顺序)
注:补充
MX (Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给user@mydomain.com时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在,用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
POP是一种电子邮件传输协议,3代表该协议第3个版本,规定了怎样将个人计算机连接到Internet邮件服务器和下载电子邮件的电子协议。配置POP包括安装组件、创建域、添加邮件等内容。“设置服务器最大连接数”是配置SMTP服务时配置的参数。
•CNAME:为正式主机名(canonical name)定义了一个别名(alias)
DNS记录:
DNS 数据库包括 DNS 服务器所使用的一个或多个区域文件。每个区域都拥有一组结构化的资源记录。资源记录的格式是:[Domain][TTL][class]record-typerecord-specific-data。
Domain:资源记录引用的域对象名。它可以是单台主机,也可以是整个域。Domain 字串用“.”分隔,只要没有用一个“.”标识结束,就与当前域有关系。
TTL:生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常该字段为空,表示生存周期在授权资源记录开始中指定。
class:指定网络的地址类。对于TCP/IP 网络使用IN。
record-type:记录类型。标识这是哪一类资源记录。
record-specific-data:指定与这个资源记录有关的数据。这个值是必要的。数据字段的格式取决于类型字段的内容。
三.域名系统DNS的逻辑结构
域名系统DNS的逻辑结构是一个分层的域名树,Internet网络信息中心(Internet Network Information Center, InterNIC)管理着域名树的根,称为根域。
根域没有名称,用圆点表示,是域名空间的最高级别。在DNS的名称中,有时在末尾附加一个就是表示根域,但经常是省略的。DNS服务器可以自动补上结尾的圆点,也可以处理结尾带圆点的域名。
根域下面是顶级域(Top-Level Domains,TLD),分为国家顶级域(country code Top Level Domain, ccTLD)和通用顶级域(generic Top Level Domain,gTLD)。国家顶级域名包含243个国家和地区代码,例如cn代表中国,uk代表英国等。最初的通用顶级域有7个,如下表所示
这些顶级域名原来主要供美国使用,随着Internet的发展,com、org和net成为全世界通用的顶级域名,这就是所谓的国际域名,而edu、gov和mil则限于美国使用。
负责互联网域名注册的服务商ICANN在2000年11月决定,从2001年开始使用7个新的国际顶级域名:biz (商业机构)、info (网络公司)、name (个人网站)、pro (医生和律师等职业人员)、aero (航空运输业专用)、coop (商业合作社专用)和museum (博物馆专用),其中前4个是非限制性域名,后3个限于专门的行业使用,受有关行业组织的管理。
2008年6月,ICANN在巴黎年会上通过了个性化域名方案,可以用公司名字为结尾的域名,例如ibm、hp、qq等。可以认为,这些域名的所有者在某种意义上就是一个域名注册机构,今后将会有无穷多的国际域名。
顶级域下面是二级域,这是正式注册给组织和个人的唯一名称,例如 www.micosoft.com中的micotsoft就是微软注册的域名。
在二级域之下,组织机构还可以划分子域,使其各个分支部门都获得一个专用的名称标识,例如www.sales.micosoft.com中的sales是微软销售部门的子域名称。划分子域的工作可以一直延续下去,直到满足组织机构的管理需要为止。
但是标准规定,一个域名的长度通常不超过63个字符,最多不能超过255个字符。
DNS标准还规定,域名中只能使用'ASCII字符集的有限子集,包括26个英文字母 (不区分大小写)和10个数字,以及连字符"-"并且连字符不能作为子域名的第一个和最后一个字母。后来的标准对字符集有所扩大。
四.资源记录
DNS 数据库包括DNS服务器所使用的一个或多个区域文件,每个区域都拥有一组结构化的资源记录。资源记录的格式为:
Domain][TTL][class]record-type record-specific-data
Domain:资源记录引用的域对象名。可以是单台主机,也可以是整个域。Domain字串用“”分隔,只要没有用一个“.”标示结束,就与当前域有关系。
TTL:生存时间记录字段。以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常该字段为空,表示生存周期在授权资源记录开始中指定。
class:指定网络的地址类。对于TCP/IP网络使用IN。
record-type:记录类型。标识这是哪一类资源记录
record-specific-data:指定与这个资源记录有关的数据。这个值是必要的。数据字段的格式取决于类型字段的内容。
nslookup(name server lookup)是一个用于查询 Internet 域名信息或诊断DNS 服务器问题的工具,nslookup有很多选项:
all:显示当前服务器或者主机的所有选项
domain=NAME:设置默认的域名为NAME
root=NAME:设置根服务器的NAME
retry=X:设置重试次数为X
timeout=X:设置超时时间为X秒
type=X:设置查询的类型,类型可以是A、ANY、CNAME、MX、NS、PTR、SOA、SRV(服务定位资源)等
querytype=X:与type命令的设置一样
exit:退出nslookup
五.DNS服务器的递归算法和迭代算法
DNS服务器的递归查询和迭代查询主要涉及的DNS服务器为本地域名服务器,根域名服务器,顶级域名服务器,权限域名服务器。(上米娜讲述的逻辑结构(顶级域名,二级域名,三级域名,四级域名)是抽象的,而具体实现则是使用域名服务器)
•本地域名服务器
本地域名服务器离用户较近,一般不超过几个路由器的距离。当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器。
•根域名服务器
根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP 地址。根域名服务器是最重要的域名服务器,因为不管是哪一个本地域名服务器,若要对互联网上任何一-个域名进行解析(即转换为IP地址)只要自己无法解析,就首先要求助于根域名服务器。
•顶级域名服务器
顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP 地址)。
•权限域名服务器
一个服务器所负责管辖的(或有权限的) 范围叫做区。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP 地址的映射。因此,权限域名服务器是负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
1.递归查询
递归查询只发出一次查询请求,要求服务器彻底地进行名字解析。当需要进一步查询时,本域名服务器向上级域名服务器返回其他域名服务器发出请求,直到查到记录。
主机向本地域名服务器的查询一般为递归查询
2.迭代查询
迭代查询可能发出多条请求,即上级域名服务器若返回的是其他域名服务器的地址,本域名服务器把这个地址发给用户,用户再进行深一级的查询。
本地域名服务器向根域名服务器的查询通常采用迭代查询。
递归查询和迭代查询
授权域名服务器是不是递归查询
递归查询要满足两个条件
1.返回IP地址
2.体现”帮忙“的过程,即向上一级询问的过程
很显然,授权域名服务器不满足条件2,所以不是递归查询,他也不一定是迭代查询,要看配置
例题:
在进行域名解析的过程中,若由授权域名服务器给客户本地传回解析结果,表明(20)
A.主域名服务器、转发域名服务器均采用了迭代算法
B.主域名服务器转发域名服务器均采用了递归算法
C.根域名服务器授权域名服务器均采用了选代算法
D.根域名服务器、授权域名服务器均采用了递归算法
答案 A
在域名解析过程中,根域名服务器一般是迭代查询,排除D。授权域名服务可能是递归、也可能是迭代查询,故C不对,主域名服务器(本地域名服务器)没有给客户返回查询结果,肯定是选代查询,故排除B正确答案选A。
注:由授权域名服务器传回解析结果,并不能说明授权域名服务器是递归查询,需要看如果他本地查不到,是否还会踢皮球,如果踢皮球那么是迭代,如果不踢皮球,就是递归(一般授权域名服务器会踢皮球)。
在域名服务器的配置过程中,通常(18)
A根域名服务器和域内主域名服务器均采用迭代算法
B.根域名服务器和域内主域名服务器均采用递归算法
C根域名服务器采用迭代算法,域内主域名服务器采用递归算法
D根域名服务器采用递归算法,域内主域名服务器采用迭代算法
答案 C
下列DNS查询过程中,采用迭代查询的是 (35),采用递归查询的是(36)
(35)
A.客市端向本地DNS服务器发出查询请求 B.客户端在本地缓存中找到目标主机的地址
C.本地域名服务器缓存中找到目标主机的地址 D.由根域名服务器找到授权域名服务器的地址(36)
A.转发查询非授权域名服务器 B.客户端向本地域名服务器发出查询请求
C.由上级域名服务器给出下级服务器的地址 D.由根域名服务器找到授权域名服务器的地址
答案: D B
主机A的主域名服务器为202.112.115.3,辅助域名服务器为202.112.115.5,域名www.aaaa.com的授权域名服务器102.117.112.254。若主机A访www.aaaa.com时,由102.117.112.254 返回域名解析结果,则(35)
A.若202.112.115.3工作正常,其必定采用了迭代算法
B.若202.112.115.3工作正常,其必定采用了递归算法
C.102.117.112.254必定采用了选代算法
D.102.117.112.254必定采用了递归算法
答案 A
主机host1对host2进行域名查询的过程如下图所示,下列说法中正确的是(35)
A.本地域名服务器采用迭代算法
C.根域名服务器采用递归算法
B.中介域名服务器采用迭代算法
D.授权域名服务器采用何种算法不确定
答案 D
进行域名解析的过程中,若主域名服务器故障,由转发域名服务器传回解析结果,下列说法中正确的是(34)
A辅助域名服务器配置了递归算法 B.辅助域名服务器配置了迭代算法
C转发域名服务器配置了递归算法 D.转发域名服务器配置了迭代算法
答案 D
下图是DNS转发器工作的过程。采用迭代查询算法的是(35)
A转发器和本地DNS服务器 B根域名服务器和本地DNS服务器
C本地DNS服务器和.com域名服务器 D.根域名服务器和com域名服务器
答案 D
下图是DNS转发器工作的过程。采用迭代查询算法的是(35)。
A.转发器和本地DNS服务器 B.根域名服务器和本地DNS服务器
C.本地DNS服务器和.com域名服务器 D.根域名服务器和.com域名服务器
【答案】D
从本题中可以看出,根域名服务器发回给转发器的是.com服务器地址,并不是结果, 故采用的是迭代算法;
.com域名服务器发回给转发器的是授权域名服务器nwtraders.com服务器地址,也不是结果,采用的也是迭代算法;
nwtraders.com服务器尽管返回给转发器域名和IP的对应关系,但它是授权域名服务器,在其资源记录中已经找到了记录,故其采用的算法未知。
本地域名服务器只向转发器发出了1条请求,转发器经过多次深层次査询,返回的是查到的记录,故转发器采用的是递归算法。本地域名服务器采用的算法未知。
六.DNS的重要配置命令
1.Nslookup
Nslookup命令用于显示DNS查询信息,诊断和排除DNS故障,有交互式和非交互式两种工作方式。
•非交互式工作就是只使用一次Nslookup命令后又返回到Cmd.exe提示符下。Nslookup命令后面可以跟随一个或多个命令行选项,用于设置查询参数。每个命令行的各选项由一个连字符后跟选项的名字,有时还要加一个等号“=”和一个数值。例如应用默认的DNS服务器由域名查找IP地址。
•交互式工作,如果需要查找多项数据,可以使用Nslookup的交互工作方式。在Cmd.exe提示符下输入nslookup后回车,就进入了交互工作方式,命令提示符变成“>”。在命令提示符 “>”下输入help或?,会显示可用的命令列表,如果输入exit,则返回Cmd.exe提示符。
在交互方式下,可以用set命令设置选项,满足指定的查询需要。例如查询本地域的邮件交换器信息的过程如下。
例题
要测试DNS服务器是否正常工作,在客户端可以采用的命令是(5)或(6)。
A. ipconfig B. nslookup C. ping D. netstat
答案 B C
解析
测试DNS服务器是否正常工作,可以采用两种方式:
第一种通过ping域名来测试;
第二种采用nslookup来查看提供服务的DNS服务器。
2.ipconfig /flushdns是清除DNS缓存记录;
3.ipconfig /displaydns为显示DNS缓存记录;
对于dns主从区域数据库的复制以及子域授权参考: