计算机网络之(4):DNS

DNS

  • DNS 是给其他应用提供服务的,不是直接给人提供服务的(不直接给人提供服务)
  • 将域名转化为 IP 地址

必要性

在这里插入图片描述

  • DNS 为应用层的应用提供服务,得到了 IP 地址之后,应用层向传输层提交的是 IP 地址,因为 域名 是应用层的事情, IP 地址才是下层能够理解的

要解决的问题

  • 如何命名设备(如何避免重名)—— 分层化的命名方式
  • 如何解决域名到 iP 地址的转化问题——一台设备专门负责解析,要使用的人提供域名,服务器返回对应的 ip 地址(理论上可行,现实不行,因为设备太多,这种过于中心化的操作可能会导致很严重的问题)——分布式的解决思路(分布式的维护和解析域名)
  • 如何维护:增加或者删除一个域名或子域名

在这里插入图片描述

DNS 域名结构

  • NDS:域名
    在这里插入图片描述

工作原理

  • 分层式的,基于域的命名机制
  • 若干分布式的数据库完成名字到 IP 地址的转换
  • 运行在 UDP 的 53 端口的应用服务
  • DNS 是一个互联网的核心功能,但是在网络边缘的客户端上进行处理(以应用层协议的方式实现)
    在这里插入图片描述

主要目的

  • 实现主机名—IP 地址的转换(name / IP translate)
  • 其他目的:
    • 主机别名到规范名字的转换:Host aliasing
    • 邮件服务器别名到邮件服务器正规名字的转换:Mail server aliasing
    • 负载均衡:load distribution

Q1:DNS 命名空间

在这里插入图片描述

域名

在这里插入图片描述

  • 域名有两种,一种是从树的叶子节点向上找到树根(这表示的是一台机器的 域名)
  • 第二种是从树的树枝起向树根找(这表示的是一个域的域名)
  • 例如 ustc.edu.cn 表示的是一个域的域名;而 auto.ustc.edu.cn 表示的是一个服务器主机的域名

域名管理

  • 一个域管理其下的子域,例如 .cn 这个域是中国的域名,那么它可以负责子域的命名,例如 edu 表示教育网站,edu.cn 就是 .cn 的一个子域;在其他国家,教育网站未必叫 edu,这要看那个国家如何指定这个子域的名称
    在这里插入图片描述
  • 域的划分是逻辑上的,而不是物理上的,比如美国有中国的大使馆,大使馆的域名还是属于 .cn 的

Q2 : 解析问题

单个 DNS 服务器的问题

  • 如果只有一个域名服务器容易出现下面的问题:在这里插入图片描述

权威名字服务器(authoritative record)

  • 如何解决这个问题(分布式的方法):
    • 将互联网的名字空间划分成一个个的 zone,zone 之间相互不重叠
    • 在每个 zone 内部安排一个 权威名字服务器(authoritative record) 来维护这个 zone 内部的名字和 ip 地址的对应关系
      在这里插入图片描述

在这里插入图片描述

  • 每个权威名字服务器都要维护一个数据库,数据库内容包括:
    • 内部的子域
    • 内部的域名到 iP 地址的对应关系
    • 所有的这些内容,统称 资源记录(resource records)

资源记录(resource records)

  • 记录的是权威名字服务器中需要维护的内容;
  • 资源记录的内容再数据库中存储的时候使用下面几个字段:
    • Domain 域名
    • ttl time to live 生存时间(权威,缓冲记录)
    • Class 级别,Internet 的 class 是 IN
    • Value 值, 可以是数字,域名,或者 ASCII 串
    • Type 类别, 资源记录的类型
      在这里插入图片描述
TTL 生存时间
  • 如果 ttl 维护的是是一个权威记录,那么它的生存时间就是无限大,如果是一个缓存记录,那么生存时间可能是几天;
  • 例如上海交大要访问中科大,那么上交大要去中科大的权威服务器查询中科大的 IP 与 域名的对应关系,然后将中科大的域名和 ip 的对应关系维护在上交大自己的服务器中,这个记录是一个缓存记录,过几天就删掉了
  • 缓存是为了提高效率,删除是为了一致性,因为 ip 和 域名的对应关系可能会变,如果迁到另外一个 ip 那么就变了
Domain 域名: Value 值
  • 域名和 ip 地址的对应关系就分别保存在 domain 字段和 value 字段中
Type 类别
  • 控制了记录的方式,不同的字段应该记录什么内容

  • type=A 的时候,这时候的 domain 和 value 字段中分别存储的就是域名和 ip 地址

  • type=NS 的时候,domain 存的是域名,value 存的是该域名的权威服务器的域名

    • 例如下图中,如果 yale 大学 cs 学院的域名为 cs.yale.edu 那么这个域在维护资源记录(RR)的时候就需要维护一条 type=NS 的记录,这条记录的 domain 是 cs.yale.edu,value 是 yale.edu 因为这个是他的权威服务器(父亲服务器)
      在这里插入图片描述
  • type=CNAME 的时候,Name 为规范名字的别名, value 记录的是规范名字

    • 例如 www.ibm.com 是个别名,并不是规范的名字,其规范的名称是:servereast.backup2.ibm.com
  • type=MX 的时候,Value 为 Name 对应的邮件服务器的名字
    在这里插入图片描述

资源记录实例

  • 记录格式:domain, tll, class, type, value
    在这里插入图片描述
  • 图中内容的 domain 是 flits.cs.vu.nl; tll=86400s; class=IN; type=A; value=192.31.231.165
  • 下面的例子中,tll 没有标记,代表这些是权威,生存时间无限大
    在这里插入图片描述

DNS 大致工作原理

在这里插入图片描述

  • 应用application 首先向解析器 resolver;

  • 解析器作为客户向 local name server 发送查询报文

  • name server 返回响应报文(域名name/ip)

  • 解析器将结果返回给应用程序

  • 每台主机都需要主动或者通过协议自动设置将哪台 local name server 作为他查询的时候的对象。

  • 如果 local name server 中找不到对应的信息怎么办?

递归查询

如果美国某台设备想访问 www.ustc.edu.cn 的网站,首先回去找 local name server,发现本地的名字服务器没有缓存,因此 local name server 会向 cn 的根域名服务器发出请求,cn 服务器会逐步向下查找 cn -> edu -> ustc 就找到了,然后跳到 中科大的权威名字服务器,找到 www.ustc.edu.cn 与其 ip 地址的对应关系
在这里插入图片描述

迭代查询

  • 因为递归查询对于根服务器的负担太重了
    在这里插入图片描述
    在这里插入图片描述
  • 通过 cn 得到 edu 的服务器线索,返回 edu 的地址,然后 local name 服务器再向 edu.cn 的权威名字服务器发出查询请求,然后再返回 ustc.edu.cn 的域名和 ip 地址对应的信息给 local name 服务器。

提高性能:缓存

在这里插入图片描述

DNS 协议 & 报文

  • 查询和响应报文格式相同
  • 标识符(ID)16 位:谁发出的查询请求,例如我和小明分别向 DNS 服务器发出了请求,如果不使用 ID 标志我和小明,那么 DNS 只能先向目标的名字服务器发送请求得到结果后把结果给我,然后才能处理小明的解析请求。但是如果用 ID 标志了我和小明,那么我们的请求就可以被同时发出去,DNS 得到解析结果后只要分别的找到我和小明的 ID 并给我们结果就行了。
  • flags:
    • 查询 / 应答
    • 希望递归
    • 递归可用
    • 应答是否需要权威
      在这里插入图片描述

Q3: 维护问题:如何新增一个域

在这里插入图片描述

  • 首先新增一个域,它的顶级域肯定得知道并且维护这个信息,所以首先在其上级域中增加两条记录:
    • 指向这个新增的子域的域名
    • 指向这个新增的子域的服务器的地址
      在这里插入图片描述
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值