05 DNS域名系统

Posted by CodingWithAlice on April 20, 2021

05 DNS域名系统

注意:域名是大小写无关的,但通常都是用小写的形式

  • 总结

    1、域名使用字符串来代替 IP 地址,方便用户记忆,本质上一个 名字空间系统

    2、DNS 就像是我们现实世界里的电话本、查号台,统管着互联网世界里的所有网站,是一个“超级大管家”

    3、DNS 是一个 树状的分布式查询系统,但为了提高查询效率,外围有多级的缓存

    4、使用 DNS 可以 实现基于域名的负载均衡,既可以在内网,也可以在外网

域名解析

域名转换成 IP 地址的过程。

DNS核心系统 是一个三层的树状、分布式服务,基本对应域名的结构:

image-20210420142225561

1、根域名服务器 Root DNS Server:管理顶级域名服务器,返回 com/net/cn 等顶级域名服务器的 IP 地址 2、顶级域名服务器 Top-level DNS Server :管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址 3、权威域名服务器 Authoritative DNS Server:管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址

减轻域名解析的压力 – 缓存

有几种基于基本思路“缓存”的方式

1、许多大公司、网络运行商都会建立自己的 DNS 服务器,作为用户 DNS 查询的代理,代替用户访问核心 DNS 系统 –> 非权威域名服务器 –> 可以缓存之前的查询结果,如果已经有了记录,就无需再向根服务器发起查询,直接返回对应的 IP 地址

2、操作系统 里也会对 DNS 解析结果做缓存

3、另外操作系统里面还有一个特殊的 主机映射文件hosts,如果操作系统缓存里面找不到就会找这个文件

image-20210420142335520

域名系统的优势

1、重定向:因为域名代替了 IP 地址,所以可以让对外服务的域名不变,而 主机的 IP 地址任意变动,当主机有情况需要下线、迁移时,可以更改 DNS 记录,让域名指向其他的机器

2、可以使用 bind9 等开源软件搭建一个在 内部使用的 DNS,作为名字服务器,发起网络通信时也就不必再使用写死的 IP 地址了,可以直接用域名,也兼具第一种优势

3、基于域名实现的负载均衡

  • 域名解析可以返回多个 IP 地址,即 一个域名可以对应多台主机 – 客户端收到多个 IP 地址后,就可以自己使用轮询算法依次向服务器发起请求,实现负载均衡
  • 域名解析可以配置内部的策略,返回离客户端最近的主机,或者返回当前服务质量最好的主机,这样在 DNS 端把请求分发到不同的服务器,实现负载均衡