DNS应用
DNS(Domain Name System:域名系统)概述
DNS解决的问题:
1.主机的标识(Internet上主机/路由器的识别问题)
- IP地址(数字,不利于人使用)
- 域名:www.hit.edu.cn(日常上网时标识主机的是域名,更好识别,更有意义,更好记忆)
2.域名与IP之间通过域名解析系统DNS完成映射
- DNS是一个多层命名服务器构成的分布式数据库
- DNS也是一个应用层协议(它在这个应用层协议之上,有应用层软件完成域名的解析)
- DNS提供的服务虽是Internet的核心功能,但是它却是由应用层协议在应用层实现的(为何?)
- 网络边界复杂
DNS服务
1.提供域名向IP地址翻译的服务
2.提供主机别名的服务
3.提供邮件服务别名的服务
4.负载均衡:Web服务器【如大的门户网站对外提供Web应用的话,显然不是一台服务器能提供的。当进行域名向IP地址翻译的时候,提供多个映射(即提供多个web服务器的地址),没有新服务的时候,就把地址的顺序调整一下,这些服务器就会轮流出现在第一名上,客户端就会访问排在第一位的服务器从而实现负载均衡】
DNS不采用集中式的原因:
- 单点失败问题(上网收邮件等在做交互之前,需请求域名解析器告知IP地址。若启用集中式DNS服务,一旦DNS服务瘫痪,那么整个互联网就瘫痪了)
- 流量问题(大量主机向一服务点请求DNS查询,流量巨大,成本高昂)
- 距离问题(距离服务点过远会产生很大的延迟问题)
- 维护性问题
- 集中式DNS不可伸缩,对需要的应用需求不可行,
分布式层次式数据库
层次结构:第一层:根DNS服务器;第二层:顶级DNS服务器(如:com;org;edu);第三层:权威DNS服务器
客户端查询域名IP的过程示例,以www.amazon.com为例:
- 客户端查询根服务器,找到com域名解析服务器
- 客户端查询com域名解析服务器,找到amazom.com域名解析服务器
- 客户端查询amazon.com域名解析服务器,获得www.amazon.com的IP地址
DNS根域名服务器(全球有13个根域名服务器)
1.本地域名解析服务器无法解析域名时,访问根域名服务器
2.根域名服务器如果不知道映射,则访问权威域名服务器;如果知道,则直接获得映射,最后向本地域名服务器返回映射
TLD和权威域名解析服务器
1.顶级域名服务器(TLD,top-level domain):负责com,org,net,edu等顶级域名和cn,uk,fr等国家顶级域名。
- 顶级域名服务服务器由一些公司维护,如Network Solution维护com顶级域名服务器;Educause维护edu顶级域名服务器
2.权威(Authoritative)域名服务器:组织的域名解析服务器,提供组织内部服务器的解析服务
- 组织(或委托服务提供商)负责维护
本地域名解析服务器(或称为默认域名解析服务器)
1.不严格属于层级体系
2.每个ISP都有一个本地域名服务器
3.当主机进行DNS查询时,查询被发送到本地域名服务器
- 本地域名服务器作为代理(proxy),将查询转发给(层级式)域名解析服务器系统
DNS查询实例
迭代查询
- 被查询服务器返回域名解析服务器的名字
- “我不认识这个域名,但是你可以问这个服务器”
Cis.poly.edu的主机想获得gaia.cs.umass.edu的IP地址:
1:访问本地域名解析服务器,将它的请求发给本地域名服务器(dns.poly.edu)
2:本地DNS服务器代它问根域名服务器
3:根域名服务器返回顶级域名服务器的地址
4:问顶级服务器umass.edu的域名解析服务器
5:返给本地域名服务器umass.edu的权威域名解析服务器
6:本地域名解析器询问权威解析服务器gaia.cs.umass.edu的IP地址
7:umass的域名解析服务器把gaia.cs.umass.edu的IP地址返给poly.edu的DNS服务器
8:本地域名解析服务器告诉请求主机gaia.cs.umass.edu的IP地址
递归查询
- 将域名解析的任务交给所联系的服务器
思考:递归查询和迭代查询有什么差别,对各个域名服务器所带来的负载有什么不同
例题:
DNS记录缓存和更新
1:只要域名解析服务器获得域名——IP映射,就缓存这一映射(降低查询数量,提高响应速度)
- 一段时间过后,缓存条目失效(删除)
- 本地域名服务器一般会缓存顶级域名服务器的映射(因此根域名服务器不经常被访问)
2:记录的更新/通知机制
- RFC 2136
- Dynamic Updates in the Domain Name System(DNS UPDATE)
思考题:我国没有根域名服务器,是否会影响我国的网络安全,会有什么影响。
DNS记录和消息格式
1.DNS记录也称为资源记录(RR,resource records)
2.RR format:(name,value,type,ttl)——(名字,值,类型,时间有效性)
- ttl——time to live
- 不同类型区别在于对name和value的解释不同
3.消息格式的常见类型
- Type=A:Name:主机域名;Value:IP地址
- Type=NS:Name:域(如edu.cn);Value:该域权威域名解析服务器的主机域名
- Type=CNAME:Name:某一真实域的别名(如:www.ibm.com-servereast.backup2.ibm.com);value:真实域名
- Type=MX:Value是与Name相对应的邮件服务器
DNS协议与消息
1.DNS协议是一个查询,回复的协议。且查询回复的消息格式相同。
2.消息头部:
- Identification:16位查询编号,回复使用相同的编号
- flags(一些标识位):标识消息是查询还是回复;是否期望递归;递归是否可用;是否为权威回答
思考:DNS应用是使用TCP协议还是UDP协议?
域名注册
- 向域名管理机构提供你的权威域名解析服务器的名字和IP地址
- 域名管理机构向com顶级域名解析服务器中插入两条记录
- 在权威域名解析服务器中加入Type A和Type MX记录
思考题:请查阅相关资料,找出那些在应用层实现的Internet核心服务,调研它们的协议,消息格式