DNS域名解析系统
发布时间 2023-08-02 22:15:10作者: 每天提醒自己要学习
DNS域名解析系统
DNS系统需要解决的问题
- 如何命名设备
- 用有意义的字符串:好记,便于人类使用
- 解决一个平面命名的重名问题:层次化命名
- 如何完成名字到IP地址的转换
- 分布式的数据库维护和响应名字查询
- 如何维护:增加或者删除一个域,需要在域名系统中做那些工作
DNS的主要思路
- 分层的、基于域的命名机制
- 若干分布式的数据库完成名字到IP地址的转换
- 运行在UDP之上端口为53的应用服务
- 核心的Internet,但以应用层协议实现
DNS的主要目的
- 实现主机名-IP地址的转换
- 其他目的
- 主机别名到规范名字(某地区,某机房,某机柜,某服务器)的转换
- 邮件服务器别名到邮件服务器的正规名字的转换
- 负载均衡
DNS名字空间
DNS域名结构
- 一个层面命名设备会有很多重名
- DNS采用层次树状结构的命名方法
- Internet根被划分为几百个顶级域
- 每个域下面可以划分若干个子域
- 树叶是主机
区域名字服务器维护资源记录
- 资源记录(RR)
- 作用:维护 域名-IP地址的映射关系
- 位置:Name Server的分布式数据库中
- RR格式(domain_name,ttl,type,class,Value)
- Domain_name:域名
- ttl:生存时间(权威,缓冲记录)决定了资源记录应当从缓存中删除的时间
- class类别:对于Internet,值为IN
- value值:可以是数字,域名或ASCII串
- type:
- type=A
- type=CNAME
- name为规范名字的别名
- value为规范名字
www.ibm.com
的规范名字为servereast.backup2.ibm.com
- type=NS
- name域名
- value为该域名的权威服务器的域名
- type=MX
DNS工作流程
- 首先搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表
- 若没有命中,则继续搜索操作系统的 DNS 缓存
- 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果
- 若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询
- 首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
- 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权威域名服务器的地址
- 本地域名服务器根据权威域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址
- 本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来
- 操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起
- 至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起