第9章 应用层(1)_域名系统DNS
1. 域名系统DNS
1.1 主机名和域名的关系
(1)完全限定域名(Fully Qualified Domain Name, FQDN) = 主机名 + 域名
①一个域名下可以有多个服务器/主机(如上图中有3台服务器/主机)。
②主机名更多的代表一个服务或应用,它物理服务器并有没有一一对应的关系。如www、blog、bbs三个服务网站位于同一台服务器,而edu在一个独立的服务器上。
③通常所说的网站域名,严格来说是完全限定域名。
(2)域名的层次结构
①所有的域名都是以英文“.”开始,是域名的根,根下面是顶级域名,然后依次是二级、三级域名、…。如www.cctv.com.(注意com后面有一个“.”,代表根域名,可以省略)
②企业申请域名后,可以在该域名下添加多个主机名,也可以根据需要创建子域名,子域名下又可以有多个主机名。
1.2 域名的解析过程
(1)域名服务器
①每台域名服务器并不知道其上一级DNS是谁?但他们都知道根域名服务器。
②DNS服务器可以创建委派,将其下的某个子域名委派给其他DNS服务器来解析。
(2)解析过程(以Client1查询www.sohu.com为例)
①Client1向DNS服务器(13.2.1.2)发送域名解析请求
②B服务器只负责net域名解析,并不知道哪个DNS服务器负责com域名解析,但它知道根DNS服务器,于是将域名解析的请求转发给根DNS服务器。
③根DNS服务器返回查询结果,告诉B去查询C服务器。
④B服务器将域名解析请求转发到C服务器
⑤C服务器只负责com名称解析,但sohu.com名称解析委派给了E服务器,于是C服务器告诉B去查询E服务器。
⑥B服务器将域名解析请求转发到了E服务器。
⑦E服务器上有sohu.com域名下的www主机记录,于是将www.sohu.com的IP返回给B服务器。
⑧B服务器将费尽周析查找到的结果缓存一份到本地,将解析到的www.sohu.com的IP地址返回给Client1。这个查询结果是B服务器从其他服务器查询得到的(非权威应答)缓存解析的结果。
⑨Client2的DNS也指向了13.2.1.2,现在Client2也需要解析www.sohu.com的地址,将域名解析请求发送给B服务器。
⑩B服务器将刚刚缓存的www.sohu.com的查询结果直接返回给Client2。
(3)其它
①权威应答和非权威应答:当Client1向B服务器查询www.inhe.net时,由于B服务器本身存在这条主机记录,这时它向Client1返回的结果被称为权威应答。否则,如果B服务器对域名的解析是从其他服务器查询到的,则为非权威应答(如client查询sohu网站的过程)
②client3向E服务器查询www.xueit.com域名时,由于E服务器不存在这条主机记录,因此会向根服务器查询(不是C服务器)。因为对于E来说他只知道根服务器,而并不知道其上一级(C)服务器的存在!
1.3 实战:在Win2003系统上搭建DNS服务器
(1)网络拓扑图
(2)测试环境的搭建
①将xp主机和Win2003服务器放入VMNnet8网络。xp的DNS服务器设置192.168.80.20。
Win2003服务器的“首选的DNS服务器”也设置为192.168.80.20,即Win2003服务器除了为局域网内的其他主机提供DNS解析,本身所需要的DNS解析也由自己提供。
②创建DNS正向查找区域:如www.abc.com→192.168.80.10→www.abc.com(注意:要选启用DNS服务:“控制面板”→“管理工具”→“服务”→启动“DNS Server”)
A.正向查找区域:“新建区域”→输入区域名称“abc.com”→选择“创建新文件”(一个区域用一个文件记录),然后一直next。
B.新建主机:右键“abc.com” →“新建主机”→在主机名中填入“www”,IP为192.168.80.10。
③创建DNS反向查找区域:(如192.168.80.10→www.abc.com)
A.反向查找区域:“新建区域”→“主要区域”→在“网络ID”填入“192.168.80” →选择“创建新文件”。
B.“新建指针(ptr)” →在主机IP号中填入“10”,主机名为www。
(3)查看和设置DNS服务器的“根服务器”: DNS管理器中选择服务器名→“属性”→“根提示”
(4)测试域名解析
①使用ping命令:如ping www.abc.com
②查看缓存中的域名解析结果:ipconfig /displaydns
③清空DNS缓存:ipconfig /flushdns
④nslookup测试域名解析:如nslookup www.baidu.com。或输入nslookup,然后在交互模式下输入想要查询的域名,exit退出。
【测试结果】
C:\Documents and Settings\Administrator>nslookup *** Can't find server name for address 192.1 *** Default servers are not available Default Server: UnKnown Address: 192.168.80.20 > www.abc.com //正向查找 Server: UnKnown Address: 192.168.80.20 Name: www.abc.com Address: 192.168.80.10 > 192.168.80.10 //反向查找 Server: UnKnown Address: 192.168.80.20 Name: www Address: 192.168.80.10 > www.baidu.com //查找外网的baidu Server: UnKnown Address: 192.168.80.20 Non-authoritative answer: Name: www.a.shifen.com Addresses: 163.177.151.110, 163.177.151.109 Aliases: www.baidu.com >exit
1.4 实战:抓包分析域名解析过程
(1)在Win2003上运行抓包工具,然后在XP主机ping www.51cto.com
(2)Internet上DNS返回的结果
①DNS解析的4种数据包:域名解析请求(第3个数据包)、域名解析请求转发(第4个数据包)、转发包的应答(第7个数据包)及最终查询结果(第9个数据包)
②Authoritative nameservers字段中列举了负责解析51cto.com的DNS服务器域名,其IP在Additional record字段中。
(3)返回给客户端的域名解析最终结果