美文网首页
cmu440(15) DNS

cmu440(15) DNS

作者: lqsss | 来源:发表于2018-04-11 07:52 被阅读0次

    DNS设计

    作用

    DNS: name -> IP address

    挑战

    我们如何将这个扩展到广域网?

    为什么不是集中DNS

    • 流量
    • 遥远的中央数据库
    • 单点更新
    • 单点故障
      Doesn’t scale!

    goals

    基本上是一个广域分布式数据库
    可扩展性
    稳健性
    不需要:原子性、强一致性

    DNS主机条目的属性

    不同种类的映射是有可能的:

    1. 简单案例:1-1域名和IP地址之间的映射:
      • kittyhawk.cmcl.cs.cmu.edu maps to 128.2.194.242
    2. 多个域名映射到相同的IP地址:
      • eecs.mit.edu and cs.mit.edu both map to 18.62.1.6
    3. 单个域名映射到多个IP地址:
    4. 某些有效的域名不映射到任何IP地址:
      • for example: cmcl.cs.cmu.edu

    DNS设计:层次结构定义

    1. 层次结构中的每个节点都存储一个以相同后缀结尾的名称列表
      • Suffix = path up tree
    2. 例如,给定这棵树,在哪里将被存储:


      image.png

    DNS设计:区域定义

    1. 区域=连续的名称空间部分
      • 例如,完整的树,单个节点或子树
    2. 一个区域有一组关联的名称服务器
      • 必须存储名称和树链接的列表
    image.png

    DNS设计:续。

    1. 通过说服所有者节点创建/委托一个子区域来创建区域
      • 区域内的记录存储多个冗余名称服务器
      • 主/主名称服务器手动更新
      • 辅助/冗余服务器通过区域传输名称空间进行更新
      • 区域传输是DNS服务器“配置”的批量传输 - 使用TCP来确保可靠性
    2. Example:
      • 由CMU.EDU管理员创建的CS.CMU.EDU
      • 谁创建CMU.EDU或.EDU?

    DNS:根名称服务器

    1. 负责“根”区
    2. 全球13个根名称服务器
      • 目前{a-m} .root-servers.net
    3. 本地名称服务器在无法解析名称时联系根服务器
      • 使用众所周知的根服务器进行配置

    服务器/解析器

    1. 每台主机都有一个解析器
      • 通常是应用程序可链接到的库
      • 手动配置本地名称服务器(例如/etc/resolv.conf)
    2. 名称服务器
      • 要么负责一些区域或...
      • 本地服务器
        • 查找本地主机的远程主机名
        • 通常回答关于本地区域的查询

    Typical Resolution

    image.png

    解决www.cmu.edu的步骤

    1. 应用程序调用gethostbyname()(RESOLVER)
    2. 解析器联系本地名称服务器(S1)
    3. S1向根服务器(S2)查询(www.cmu.edu
    4. S2返回cmu.edu的NS记录(S3)

    S3的记录怎么样?
    这是附加信息部分的用途(PREFETCHING)
    S1查询www.cmu.edu的S3
    S3返回www.cmu.edu的记录

    查询方法

    1. 递归查询:
      • 服务器熄灭并搜索更多信息(递归)
      • 只返回最终答案或“找不到”
    2. 迭代查询:
      • 服务器尽可能多地响应(迭代)
      • “我不知道这个名字,但问这个服务器”

    工作负载对选择的影响?

    1. 本地服务器通常会递归
    2. 根/远程服务器进行迭代
    image.png

    工作量和缓存

    1. 所有服务器/名称是否可能同样受欢迎?
      • 为什么这会成为一个问题? 我们如何解决这个问题?
    2. DNS响应被缓存
      • 快速响应重复翻译
      • 其他查询可能会重用查找的某些部分
    3. DNS负面查询被缓存
      • 不必重复过去的错误
      • 例如。 拼写错误,在resolv.conf中搜索字符串
    4. 缓存的数据周期性超时
      • 由数据所有者控制的数据的生存时间(TTL)
      • 每条记录都传递TTL

    可靠性

    1. DNS服务器被复制
    • 如果≥一个副本启动,名称服务可用
    • 查询可以在副本之间进行负载平衡
    1. UDP用于查询
    • UDP
    • 为什么不适用TCP?
      当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(TCP)
      UDP传输速率快,不用牵手,重传丢包交给上层应用来做
    1. 超时尝试备用服务器
    2. Try alternate servers on timeout
      Exponential backoff when retrying same server
    3. Same identifier for all queries
      Don’t care which server responds

    相关文章

      网友评论

          本文标题:cmu440(15) DNS

          本文链接:https://www.haomeiwen.com/subject/tvanhftx.html