DNS(域名解析系统)
前面说的都是应用层的协议 和相关案例
应用层协议 和 例子都是所有案例中最多的。 域名解析系统是给其他应用应用的应用通过其他应用来为应用提供服务。
dns提供的是: 域名到 ip地址的转换
DNS的重要性(必要性)
- IP地址标识主机、路由器
- 但IP地址不好记忆,不便人类使用(没有意义)
- 人类一般倾向于使用一些有意义的字符串来标识 Internet上的设备(大实话)
例如:qzheng@ustc.edu.cn 所在的邮件服务器 www.ustc.edu.cn 所在的web服务器
- 存在着“字符串”—– IP地址的转换的必要性
- 人类用户提供要访问机器的“字符串”名称
- 由DNS负责转换成为二进制的网络地址
DNS系统需要解决的问题
主要解决的问题就是域名到ip地址的转换
1.问题1: 如何命名设备
需要通过一些有意义的字符串来标识设备。便于记忆
解决一个平面命名的重名问题:层次化命名
2.问题2:如何完成(域名)名字到IP地址的转换
分布式的数据库维护和响应名字查询
3.问题3:如何维护:增加或者删除一个域,需 要在域名系统中做哪些工作
DNS (Domain Name System) 的发展历史
ARPANET 的名字解析 解决方案:
- 主机名:没有层次的一个字符串(一个平面)
- 存在着一个(集中)维护站:维护着一张 主机名-IP地址 的映射文件:****Hosts.txt
- 每台主机定时从维护站取文件
上述ARPANET 的名字解析 解决方法所遇到的问题:
当网络中主机数量很大时
没有层次的主机名称很难分配
文件的管理、发布、查找都很麻烦
DNS的总体设计思路和目标
设计思路:
- 分层的、基于域的命名机制 (分层命名)
- 若干分布式的数据库完成名字到IP地址的转换
通过上面的方式来解决名字到ip地址的转换关系。
- 运行在UDP之上端口号为53的 应用服务
- 核心的Internet功能,但以应用层协议实现
- 在网络边缘处理复杂性
互联网的很多核心功能都是在网络的边缘,通过端系统之上的应用进程来实现的。(复杂性体现在边上, 传输层及以上)
DNS的主要目的:
- 实现主机名-IP地址的转换(name/IP translate)
- 其它目的
- 主机别名到规范名字的转换:Host aliasing
- 邮件服务器别名到邮件服务器的正规名字的转换:Mail server aliasing
- 负载均衡:Load Distribution
解决的三个问题 :
问题一 : DNS名字空间(The DNS Name Space)
DNS域名结构 :
- 一个层面命名设备会有很多重名
- NDS采用层次树状结构的 命名方法
- Internet 根被划为几百个顶级域(top lever domains)
通用的
.com; .edu ; .gov ; .int ; .mil ; .net ; .org .firm ; .hsop ; .web ; .arts ; .rec ;
国家级别的:
.cn ; .us ; .nl ; .jp
- 每个(子)域下面可划分为若干子域(subdomains)
- 树叶是主机
DNS: 根名字服务器
全球只有这13个。中国这边没有。
10个在美国、1个在英国、1个在瑞典、1个在荷兰
这是存在一些安全隐患的,我国只有相关的镜像
创建一个新的域,必须征得它所属域的同意 。
DNS名字空间(The DNS Name Space)
域名(Domain Name)
- 从本域往上,直到树根 所有的都属于这个域名
- 中间使用“.”间隔不同的级别
例如: ustc.edu.cn 、 auto.ustc.edu.cn …
- 域的域名:可以用于表示一个域
- 主机的域名:一个域上的一个主机
域名的管理
一个域管理其下的子域 (前缀树)
.jp 被划分为 ac.jp co.jp ;
.cn 被划分为 edu.cn com.cn ;
创建一个新的域,必须征得它所属域的同意 ()
域与物理网络无关
- 域的划分是逻辑的,而不是物理的
- 域遵从组织界限,而不是物理网络
一个域的主机可以不在一个网络 。但是, 一个网络的主机不一定在一个域