DNS和Route53简介
DNS基本概念
DNS(Domain Name Service)是人们使用英特网的基础服务,DNS提供的服务就像一个电话本一样, 计算机可以用它找到域名对应的IP地址。DNS采用层级的结构, 不同层采用.来分层。顶层是root, 用一个.表示,后面就是TLD了。Top Level Domain(TLD)顶级域名是域名中的最后一个部分, 比如.com. TLD又分为通用顶级域名和地域顶级域名如.cn. Internet Corporation for Assigned Names and Numbers(ICANN)
负责管理和分配部分顶级域名, 这些顶级域名下可以再分配我们常见的域名,这些域名会在Network Information Center(InterNIC)注册, 每个域名会在一个叫Whois的数据库注册, 以维护域名的唯一性。
这里有一个误区,域名如example.com, 一般所说的二级域名是应该是example(而国内的运营商叫做一级域名, .com叫顶级域名), 其他的二级域名/三级依次往后叫.
host和Subdomain
有了域名, 域名拥有者可以把自己的服务或主机定义成host, 比如大部分的web服务都可以通过www这个host访问。TLD是可以被按层级扩展成多个子域名的。如example.com中example就是SLD(Second-level domain), 又如sina.com.cn中.com是SLD. SLD和host主要的区别在于host定义的是一个资源,
而SLD是一个域名的扩展。不管是SLD还是host, 我们都从域名的左边读起, 可以看到越左边的部分意义越具体。
Name Server
名字服务器就是实际把域名解析成Ip的服务器。由于域名实在太多,名字服务器需要转发解析请求到其他服务器。如果某个域名是这台名字服务器管理的, 那么这个NS的解析相应我们认为是权威的。(authoritative)
Zone file
zone file区域档案是DNS服务器存储域名和IP映射记录的文本。一个zone file定义了一个dns域, 多个zone file通常用来定义一个域。每个文件中的记录称为资源记录(resource record)。zone file有两个指令需要注意, 一个是$ORIGIN参数设定, 代表了本NS管理的域。$TTL表示解析记录在缓存中默认过期时间。
DNS Record Types
SOA Start Of Authority, 每个区域文件的一条强制记录, 记录每个域的dns基本信息,具体包括:- 这个区域的DNS server名称
- 这个区域的管理员
- 当前文件的版本
- 二级域名服务器重试、更新、过期信息的时间设置
- RR的TTL默认时间
AandAAAA.A把一个host映射到IPv4地址,AAAA映射到IPv6地址。CNAME别名.可以为你的A或者AAAA记录映射的服务取别名.MX(Mail Exchange), 邮件交换主机记录. 此记录是用来宣告一个域底下哪一个A记录为专门负责邮件进出. 由于一个网域底下的MX记录可以超过一笔, 所以, 在众多MX记录里要排列出优先順序就必须倚靠MX记录里的另一项设定—Preference值, 值越小, 优先权越高, 最小的值为0. 同时MX不能指向CNAME.NS(Name Server). 指定哪个Name Server可以得到某个域名的权威解析, 用于TLD顶级域名服务器解析会用到.PTR(Pointer)反向解析, 把IP解析到域名.- aws还支持一种叫
alias的record, 指向aws的某个公网服务。
Fully Qualified Domain Name(FQDN)
按ICANN的标准FQDN是需要按.结尾的,虽然通常我们并没有这么做. 具体语法如下图所示
浏览器解析DNS步骤
浏览器输入域名后, 从域名解析到实际的IP, 会走如下步骤:
- 计算机先检查浏览器缓存是否存在, 如果是使用chrome, 可以在地址栏输入
chrome://net-internals/#dns查看缓存信息。 - 浏览器的缓存有一些限制, 比如缓存的条目数只有1000等等,所以如果不命中缓存, 那么就会查询本地hosts文件是否存在对应的ip。
- 如果还是不中那么检查服务器端设置的域名解析服务器
Resolving Name Servers(/etc/resolv.conf设置的DNS首选项)缓存是否命中。 - 如果还是没有命中,那么就会查询
Resolving Name Servers(通常是ISP供应商提供)。后续还会往root服务器迭代查询, root服务器又会重定向到TLD服务器,TLD再重定向到Domain-Level Name Servers等等。 但是基本上是本地设置的DNS服务器帮助用户做了和上层服务的交互。
下图很好解释流整个dns解析流程.
Route53提供的服务
Route53提供三个服务:域名注册,DNS服务,健康检查。
使用Route53和其他服务提高系统韧性
- 每个区域有一个负载均衡器, 均衡器下的服务器分布在不同可用区。
- 每个可用区都需要是自动伸缩。
- 负载均衡器需要设置健康检查。
- 每个负载均衡器上面是Route53, Route53设置别名记录
alias record指向每个负载均衡器, 同时设置路由规则采用最小延时规则, 开启每个均衡器的健康检查。 - 所有静态和动态内容使用CDN缓存。
- Title: DNS和Route53简介
- Author: Kopei
- Created at : 2018-10-27 00:00:00
- Updated at : 2025-08-13 18:15:58
- Link: https://kopei.github.io/2018/10/26/cloud-2018-10-27-DNS-and-Route53/
- License: This work is licensed under CC BY-NC-SA 4.0.
