1. DNS 简介
1. 简单介绍
DNS(Domain Name System,域名系统),其主要作用就是将主机名解析成 ip 地址的过程,完成了从域名到主机识别 ip 地址的转换。
- DNS 是一个分布式、分层次的主机名管理架构,通过配置 DNS 服务器地址,主机不需要知道对应的 ip 地址就能通过主机名的形式访问互联网。
- DNS 利用类似倒状树的目录结构将主机名的管理分配在不同层级的 DNS 服务器当中,经过分层管理,每一级 DNS 服务器负责部分域名信息,这就减轻了 DNS 服务器的负载,同时也方便记录更新同步。
- DNS 是一个网络服务,因此就有对应的端口,其端口号为53。DNS 查询的时候,是以 udp 这个较快速的传输协议来查询的,但万一没有方法查询到完整的信息时,就会再次以 tcp 这个协议来重新查询,DNS 服务在启动的时候会同时开启 tcp 的 53 端口和 udp 的 53 端口。
- DNS 在进行区域传输的使用使用 TCP 协议,其他的时候使用 UDP 协议。
- FQDN(Full Qualified Domain Name):完整主机名,是由主机名和域名构成。例如 www.baidu.com 中,www 就是 web 网站服务器的主机名,baidu.com 就是域名,主机名和域名之间用实心点号来表示。
- DNS 是基于 C/S 架构(多数基于套接字架构的 C/S 架构),对于每一级域名长度的限制是 63 个字符,域名总长度不超过 253 字符。
- DNS 系统记录的信息非常多,不过重点就两个:一个是记录服务器所在的 NS(Name Server)标识,另一个是记录主机名对应的 A(Address)标志。
2. DNS 的域名结构
- DNS 的域名是倒状的树状结构,在顶层是一个根服务器,它主要负责顶级域名的管理。
- 一级域名共分为三类,组织域、国家域和反响域,最多可以有 127 级域名。
- 每一级的域名服务器只负责对下级的域的管理,其中根节点是分布在世界各地的 13 台服务器组成,其中 10 台位于美国地区,另外 3 台分别设置于英国、瑞典和日本。
2. DNS 工作原理
- DNS 解析域名到 IP 要经过三个阶段:
- 本地 DNS 缓存解析。
- 本地 DNS 服务器解析,递归查询。
- 根域及各级域名服务器解析,迭代查询。
3. DNS 负载均衡
- DNS 负载均衡技术的实现原理是:在 DNS 服务器中为同一个主机名配置多个 IP 地址,多个 IP 地址以轮询的方式选择。
- 操作系统:Ubuntu 18.04
- DNS 服务器软件:bind9
4. DNS 与其他负载均衡工具的对比
- DNS 负载均衡:
- 对同一个请求的域名,映射为不同的服务器 IP 地址。
- HTTP 重定向:
- HTTP 代理(比如浏览器)向 Web 服务器请求某一 url 后,Web 服务器根据 http 响应头信息中的 location 标记来返回一个新的 url,然后 http 代理继续请求访问这个新的 url。
- 反向代理负载均衡:
- 反向代理指的是以代理服务器来接收对 Web 服务器的连接请求,然后转发给内部网络中不同的 Web 服务器,并将从 Web 服务器请求得到的结果返回给请求连接的客户端,以 Nginx 为代表。
- NAT 负载均衡:
- 将公网地址映射为多个私网地址,解决 IP 地址紧张,不想让外部网络知道内部网络结构的问题。
- CDN:
- CDN 即 Content Delivery Network,内容分发网络。通过发布机制将内容同步到大量的缓存节点,并在 DNS 服务器上进行扩展,找到离用户最近的缓存节点作为内容提供节点。
- 混合型负载均衡:
- 在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。