域名

本文涉及的产品
.cn 域名,1个 12个月
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 域名是互联网上某一台计算机或计算机组的名称。域名可以说是一个 IP 地址的代称,目的是为了便于记忆。通过阅读本篇文章,你可以了解到:1、域名的结构;2、域名的解析过程;3、记录类型(A记录、CNAME记录 等)4、域名的应用

介绍域名

网域名称(英语:Domain Name,简称:Domain),简称域名、网域。

域名是互联网上某一台计算机或计算机组的名称。

域名可以说是一个 IP 地址的代称,目的是为了便于记忆。例如,wikipedia.org 是一个域名。人们可以直接访问 wikipedia.org 来代替 IP 地址,然后 DNS 系统就会将域名转化成便于机器识别的 IP 地址。这样,人们只需要记忆 wikipedia.org 这一串带有特殊含义的字符,而不需要记忆没有含义的数字。

域名的结构

域名由多个部分组成,每个部分由 “.” 点分隔。最右边的一个部分是顶级域名,从右侧到左侧隔一个点依次下降一层。每个部分可以包含 1 到 63 个字节。域名的总长度则不能超过 253 个字节。域名里的英文字母不区分大小写。


image-20230209222449782.png

整个互联网中的域名空间结构就像一棵倒置的树,如上图所示。

  • 这棵域名树的根称为根 DNS 服务器,在 Internet 上总共有 13 个根 DNS 服务器(每个根 DNS 服务器都是一个集群),大部分位于北美。
  • 根往下的第一级节点称为顶级域(Top Level Domain,TLD),目前共有 7 个这样的顶级域名,分别是:1.com 商业组织;2.edu 教育机构;3.gov 政府部门;4.mil 军事部门;5.net 网络基础设施;6.org 非营利性组织;7.int 国际组织。每个顶级域由对应的顶级域(TLD)服务器负责管理,除了以上 7 个顶级域名,还有各个国家的顶级域名(如 cn、uk、ca 和 fr 等)也在这一级别进行管理。
  • 每个顶级域再向下展开分支,每个分支域都是一个子域。比如 CDNbook.com 是顶级域 com 的子域。CDNbook.com 也可以再包含子域,比如 a.CDNbook.com、b.CDNbook.com。一个域就是域名空间中的一棵子树。域的名字也就是这棵子树的根节点的域名。例如在下图中,CDN.com 域的顶端节点就是 CDN.com。

image-20230209223812002.png


在每个域中,会有一台或多台服务器用来保存这个域名空间的所有信息,并且响应关于该域名空间的所有请求。这种服务器就叫做这个域的权威域名服务器(也常称为授权域名服务器),它拥有这个域所有的域名信息。

每个域都可以分为多个子域,而每个权威域名服务器可以给一个或多个区域进行解析。但即使各个区域被授权给同一个权威域名服务器,它们之间仍然是彼此独立的。例如,CDNbook.com 被划分为三个子域:a.CDNbook.com、b.CDNbook.com 和 c.CDNbook.com。每个子域都可以自行维护自己的权威域名服务器。当一个子域被授权出去,它原本所属的域就不再包含它的数据(A 记录),而只留下一些指针,这些指针指向相应子域的权威域名服务器(NS 记录)。如果有一个询问该子域信息的请求,所返回的应该是该子域的权威域名服务器列表。

一个域可以有多台权威域名服务器,但是只有一台是主域名服务器,这台主域名服务器负责向其他辅域名服务器分发每个域名空间的更新信息。


根 DNS 服务器、顶级 DNS 服务器和权威 DNS 服务器共同组成了 DNS 服务器层,共同维护分布式、层次化的 DNS 数据库。

DNS 系统采用树形设计的一个主要目的就是为了分散管理。而这种分散管理是通过 “授权” 来实现的。对域进行授权,就是域管理组织把子域授权给其他组织进行管理,由子域管理者来维护子域中的数据,可以自由改动数据,包括对子域再进行划分,再授权。

域名解析

域名解析包括正向解析和反向解析。

  • 正向解析是把域名转换为 IP 地址。这需要由专门的域名解析服务器来完成。
  • 反向解析是把 IP 地址转换为域名。反向解析比较罕见,.arpa 顶级域名专门用于这类用途。

本地 DNS 服务器收到客户端的域名解析请求后,会采用递归查询方式(recursive query)或者迭代查询方式(iterative query)向 DNS 系统中的其他远程 DNS 服务器发送查询请求。

  • 迭代查询方式指的是:每次查询请求都由【本地 DNS 服务器】发起,收到答复后再由【本地 DNS 服务器】向下一个远程 DNS 服务器发送查询请求,直到获得结果。
  • 递归查询方式指的是:【本地 DNS 服务器】向【根 DNS 服务器】发送查询请求,并从【根 DNS 服务器】获取域名的解析结果。

image-20230225172236793.png


在实际应用中,迭代查询方式是比较常见的。下图描述的就是一个典型的 DNS 递归查询过程。

当用户在浏览器的地址栏中输入 URL 并点击回车后,浏览器首先判断 URL 中的是 IP 地址,还是域名。如果 URL 中的是域名,那么首先要做的就是域名解析。

域名解析的流程:首先是浏览器查看浏览器的缓存。如果浏览器中没有该域名的缓存,那么浏览器询问【本地 DNS 解析器】,【本地 DNS 解析器】首先查看本地 DNS 缓存。如果本地 DNS 缓存中没有该域名的缓存,那么【本地 DNS 解析器】请求【本地 DNS 服务器】进行域名解析。如果【本地 DNS 服务器】中没有该域名的缓存,那么【本地 DNS 服务器】向 DNS 系统中的其他远程 DNS 服务器发送查询请求。

不能把数据永远放在缓存中,缓存中的数据都被设置了一个生存时间(time to live,TTL)。超过 TTL 时间的数据会被清除,需要再重新获取新的数据。


image-20230209231325837.png

以【本地 DNS 解析器】请求【本地 DNS 服务器】进行 www.CDNbook.com 域名的解析为例:

(1)【本地 DNS 解析器】向【本地 DNS 服务器】发送域名解析请求。(8)【本地 DNS 解析器】收到来自【本地 DNS 服务器】的应答。

(2)【本地 DNS 服务器】向【根 DNS 服务器】发送域名解析请求,【根 DNS 服务器】返回 .com 顶级域的域名服务器列表(多条 NS 记录)。

(4)【本地 DNS 服务器】收到应答后,在 .com 顶级域的域名服务器列表中选择一个 IP 地址,向这个 IP 地址对应的 DNS 服务器发送域名解析请求,.com 顶级域的域名服务器返回 CDNbook.com 域的域名服务器列表。

(6)【本地 DNS 服务器】收到应答后,在 CDNbook.com 域的域名服务器列表中选择一个 IP 地址,向这个 IP 地址对应的 DNS 服务器发送域名解析请求,CDNbook.com 域的域名服务器返回 www.CDNbook.com 域的 A 记录列表(多个 IP 地址)。

(8)【本地 DNS 服务器】收到应答后,在 www.CDNbook.com 域的 A 记录列表中选择一个 IP 地址,将该 IP 地址返回给【本地 DNS 解析器】。

记录类型

域名服务器是根据资源记录来对域名解析请求进行应答的。在 DNS 系统中,最常见的资源记录是 Internet 类记录。

资源记录是一个包含了下列字段的 4 元组:Name、Value、Type、TTL。

  • TTL 是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间
  • Type 是该记录的类型
  • Name 和 Value 的值取决于 Type

Internet 类资源记录主要分为以下几种类型:

  • A 记录,Address:A 记录用于描述域名到 IP 地址的映射关系。将域名指向一个 IPv4 地址。同一个域名,可以有多条 A 记录。也就是说,一次 DNS 查找可以返回多个 IP 地址。
  • NS 记录,Name Server:NS 记录是域名服务器记录,用于指定该域名由哪个 DNS 服务器来进行解析。每个区域可以有多个域名服务器,因此可以有多条 NS 记录。如果需要把子域名交给其他的 DNS 服务器来进行解析,就需要添加 NS 记录。
  • SOA 记录,Start Of Authority:SOA 记录用于指定该区域的权威域名服务器。每个区域允许且只允许有一个 SOA 记录,它是资源记录的第一个条目。
  • CNAME 记录,Canonical Name:CNAME 记录是规范名称,用于描述域名到规范名称的映射关系。将域名指向另外一个域名,指向的域名是规范名称。【本地 DNS 服务器】收到 CNAME 记录后,它会用 CNAME 记录中的规范名称来重新查询新域名的 A 记录。
  • PTR 记录,Pointer Record:PTR 记录是逆向查询记录,返回一个域名,它用于根据 IP 地址查询域名(反向解析)。逆向查询的一个应用是:可以防止垃圾邮件,即验证发送邮件的 IP 地址,是否真的有它所声称的域名。

image-20230208230650583.png

假设有上述的 DNS zone:当要查询 bar.example.com 的 A 记录时,域名解析服务器会查到对应的 CNAME 记录,即foo.example.com,随即开始查询 foo.example.com 域名的 A 记录,查到 192.0.2.23 返回结果。

CNAME 的意思是真实名称。正确的理解是:bar.example.com 的真实名称是 foo.example.com。请求访问bar.example.com 的客户端会得到 foo.example.com 返回的结果。

域名的应用

域名服务器可以将域名映射为 IP 地址。基于这个特点,域名解析除了可以用于浏览器之外,域名解析还可以用于以下的场景:

  • 基于域名实现重定向:使用域名代替 IP 地址。可以让对外提供服务的域名不变,而主机的 IP 地址任意变动。当主机有情况需要下线、迁移时,可以更改 DNS 记录,让域名映射到其他的 IP 地址。
  • 基于域名搭建名字服务器:因为域名是一个名字空间,所以可以使用 BIND 9 等开源软件搭建一个内网的本地 DNS 服务器作为名字服务器。这样我们开发的各种内部服务就可以都用域名来标记,比如数据库服务都用域名 “mysql.inner.app”,商品服务都用 “goods.inner.app”,发起网络通信时使用域名,不必再使用写死的 IP 地址了。
  • 基于域名实现负载均衡,从而提高系统的可用性:基于域名实现负载均衡有两种方式:

    • 第一种方式:域名解析返回多个 IP 地址,客户端收到多个 IP 地址后,自己根据负载均衡策略选择一个 IP 地址使用,把请求分发到不同的服务器。
    • 第二种方式:域名解析内部配置负载均衡策略,在 DNS 端把请求分发到不同的服务器。

参考资料

《CDN 技术详解》雷葆华著

CDN技术详解-雷葆华著-微信读书 (qq.com)

DNS 原理入门 - 阮一峰的网络日志 (ruanyifeng.com)

06 | 域名里有哪些门道? (geekbang.org)

相关文章
|
4月前
|
存储 缓存 网络协议
什么是域名?
域名(Domain name)是互联网的基础组成部分,为网络上的Web服务器提供便于人们理解的地址标识。通过使用域名,人们可以轻松访问互联网上的各种服务,而无需记住复杂的IP地址。域名由若干部分组成,从右至左阅读,其中顶级域名(TLD)揭示了域名的一般用途。购买域名实际上是在一定期限内获得使用权,这一过程需通过域名注册商完成。当用户在浏览器中输入域名时,系统会通过DNS服务器解析成对应的IP地址,从而实现内容的访问。
295 3
|
安全 网络协议 网络安全
单域名证书
单域名证书是指只包含一个具体域名的SSL/TLS证书,它可以用于保护单个主机名的HTTPS通信。例如,如果您有一个网站http://www.example.com,则单域名证书将仅为该域名颁发。
321 0
|
安全 网络安全 数据安全/隐私保护
什么是域名证书?
SSL证书的种类有好几种,都是用于保证网络传输的安全的。其中运用得比较普遍化的是域名证书,那么什么是域名SSL证书呢,很多人都不理解,下面就来看看吧。  首先要明确的是,SSL是一种网络传输安全协议,所以在网站的正常使用中都需要配置相关的SSL证书。
6202 0
|
弹性计算 网络协议 物联网
阿里云域名查询、域名注册、域名实名认证和域名备案全过程
阿里云域名查询、域名注册、域名实名认证和域名备案全过程
|
域名解析 安全 网络协议
什么是域名?(上)
什么是域名?(上)
154 0
什么是域名?(上)
阿里云网站域名的购买,域名的解析还有备案
这是一篇会持续更新的博客,主要因为我自己也还没有完整的把整个流程走完,所以就先做到哪里记录到哪里吧!
412 0
阿里云网站域名的购买,域名的解析还有备案
|
域名解析 缓存 网络协议
域名
简单 实用
958 0
|
域名解析 弹性计算 网络协议
如何在万网注册域名及域名解析?
域名是由字符和点组成的,常见taobao.com就是一个域名。购买域名主要有以下作用:第一,在制作网站时,用户会去选购域名作为网址使用;第二,作为邮箱的后缀来使用;第三,有些用户购买域名进行投资;还有一种情况,就是企业出于一种品牌保护的目的,注册与企业品牌相关的域名,其中最常用的是网站和邮箱。
|
域名解析 存储 弹性计算
在哪里注册域名比较好?
在哪里购买域名?购买域名的网站有很多,新手站长网只说知名云厂商,如阿里云、腾讯云都可以购买域名,至于那些小的域名商新手站长就不提及了,无论是后续域名解析管理、域名转入转出等都有大厂商方便透明:
5003 0