DNS应用
# DNS 应用
# DNS 概述
DNS:Domain Name System
- Internet上主机/路由器的识别问题
- IP地址
- 域名:www.hit.edu.cn
- 方便人记忆
- DNS 解决了域名和IP地址之间的映射关系
域名解析系统DNS
- 多层命名服务器构成的分布式数据库
- 应用层协议:完成名字的解析
- Internet核心功能,用应用层协议实现
- 网络边界复杂
DNS 服务
- 域名向IP地址的翻译
- 主机别名
- 邮件服务器别名
- 负载均衡:Web服务器
- 提供多个服务器 ip 地址,然后轮流提供
问题:为什么不使用集中式的DNS?
- 单点失败问题
- 流量问题
- 距离问题
- 维护性问题
不可伸缩
# 分布式层次式数据库
示意图
示例: 客户端想要查询www.amazon.com的IP
- 客户端查询根服务器,找到com域名解析服务器
- 客户端查询com域名解析服务器,找到amazon.com域名解析服务器
- 客户端查询amazon.com域名解析服务器,获得www.amazon.com的IP地址
# DNS根域名服务器
本地域名解析服务器无法解析域名时,访问根域名服务器
根域名服务器
- 如果不知道映射,访问权威域名服务器
- 获得映射
- 向本地域名服务器返回映射
全球根域名服务器示意图
# 顶级域名服务器
# 权威域名服务器
# 本地域名解析服务器
不严格属于层级体系
每个ISP有一个本地域名服务器
- 默认域名解析服务器
当主机进行DNS查询时,查询被发送到本地域名服务器
- 作为代理(proxy),将查询转发给(层级式)域名解析服务器系统
# 迭代查询与递归查询
Cis.poly.edu的主机想获得gaia.cs.umass.edu的IP地址
迭代查询
- 被查询服务器返回域名解析服务器的名字
递归查询
- 将域名解析的任务交给所联系的服务器
# DNS 记录缓存和更新
只要域名解析服务器获得域名—IP映射,即缓存这一映射
- 一段时间过后,缓存条目失效(删除)
- 本地域名服务器一般会缓存顶级域名服务器的映射
- 因此根域名服务器不经常被访问
记录的更新/通知机制
- RFC 2136
- Dynamic Updates in the Domain Name System (DNS UPDATE)
# DNS 记录
资源记录(RR, resource records)
- RR format:
(name, value, type, ttl)
- Type=A
- Name: 主机域名
- Value: IP 地址
- Type=NS
- Name: 域(edu.cn)
- Value: 该域权威域名解析服务器的主机域名
- Type=CNAME
- Name: 某一真实域名的别名
- Name: 某一真实域名的别名
- Type=MX
- Value是与name相对应的邮件服务器
- Type=A
# DNS 协议与消息
DNS协议:
- 查询(query)和回复(reply消息)
- 消息格式相同
消息头部
- Identification
- 16位查询编号,回复使用相同的编号
- flags
- 查询或回复
- 期望递归
- 递归可用
- 权威回答
DNS 消息示例
# 如何注册域名?
在域名管理机构(如Network Solutions)注册域名networkutopia.com
向域名管理机构提供你的权威域名解析服务器的名字和IP地址
域名管理机构向com顶级域名解析服务器中插入两条记录
(networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A)
1
2
在权威域名解析服务器中
- 为www.networkuptopia.com 加入Type A记录
- 主页地址
- 为networkutopia.com加入Type MX记录
- 邮件服务
- 为www.networkuptopia.com 加入Type A记录
DNS 在应用层实现能降低网络核心的复杂性
编辑 (opens new window)