CNAME记录

CNAME记录

维基百科,自由的百科全书

(重定向自CNAME)

真实名称记录(英语:Canonical Name Record),即CNAME记录,是域名系统(DNS)的一种记录。CNAME记录用于将一个域名(同名)映射到另一个域名(真实名称),域名解析服务器遇到CNAME记录会以映射到的目标重新开始查询。[1]

这对于需要在同一个IP地址上运行多个服务的情况来说非常方便。若要同时运行文件传输服务和Web服务,则可以把ftp.example.comwww.example.com都指向DNS记录example.com,而后者则有一个指向IP地址的A记录。如此一来,若服务器IP地址改变,则只需修改example.com的A记录即可。

CNAME记录必须指向另一个域名,而不能是IP地址。

细节

《RFC 1034》详细定义了CNAME记录的标准,并在《RFC 2181》的第十节中做了进一步规范。

CNAME记录在域名系统中的使用有诸多限制。当一个DNS解析服务器在查询各类记录时遇到一则CNAME记录时,它会立即重启查询,查询所映射到域名的对应记录。(除非是要查询CNAME记录本身,在那种情况下会返回所映射到的域名。)CNAME记录所映射的域名可以是域名服务中的任何域名。在同一服务器上,在远程服务器上,甚至在属于不同DNS zone(解析空间)的服务器上,都可以。

假设有下述DNS zone:

NAME                    TYPE   VALUE
--------------------------------------------------
bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

当要查询bar.example.com的A记录时,域名解析器会查到对应的CNAME记录,即foo.example.com,随即开始查询该域名的A记录,查到192.0.2.23则返回结果。

误会

可以使用CNAME记录将“bar.example.com”指向“foo.example.com”。因此,可能会有人随意的将bar.example.com称作是foo.example.com的“CNAME”。然而事实并非如此,bar.example.com的“CNAME”是foo.example.com,因为CNAME的意思是真实名称,而右侧才是真实名称,才是CNAME。

这则误会在《RFC 2181》“DNS规范的解释”一章中有提到。应当说左侧标签是右侧真实名称的一个同名。即下述CNAME记录:

bar.example.com.        CNAME  foo.example.com.

应当读作:

bar.example.com的真实名称是foo.example.com。请求访问bar.example.com的客户端会得到foo.example.com返回的结果。

限制

  • CNAME记录总是指向另一则域名,而非IP地址。
  • 有CNAME记录的域名不能有其他任何记录(MX记录、A记录等,《RFC 1034》第3.6.2节、《RFC 1912》第 2.4节) 唯一的例外是在使用DNSSEC的情况下,这时可以设置相关的DNSSEC相关记录,比如RRSIG,NSEC等(《RFC 2181》第10.1节)
  • 为了保证效率,应当避免将CNAME记录指向其他的CNAME记录,但并非不可以。因此,可以通过CNAME记录创造无法被解析的循环,比如:
foo.example.com.  CNAME  bar.example.com.
bar.example.com.  CNAME  foo.example.com.
  • MX记录和NS记录永远都不应指向由CNAME记录标记的域名(《RFC 2181》第10.3节)。因此,解析空间不应有下述结构:
example.com.      MX     0   foo.example.com.
foo.example.com.  CNAME  host.example.com.
host.example.com. A      192.0.2.1
  • 根据(《RFC1912》)第2.4节,根网域(Root Domain)不应该被添加 CNAME 纪录。但部分 DNS 服务商(例如 DNSPod、NS1)可以忽略该 RFC 标准而针对根网域做出 CNAME 解析,比如:
example.com.  CNAME  foo.example.com.

但这样做会导致该网域若有用于邮箱服务,则可能造成错误,详见如下方。

而愿意遵守 RFC 标准的 DNS 供应商 (例如 Neustar UltraDNS、Cloudflare DNS)则采用了 Apex Alias 或 CNAME flattening 技术,这个技术将使得由 DNS 服务商自行处理 CNAME 解析的过程,并将最终解析的 A 纪录作为实际解析的结果,从而不与 RFC 标准抵触,比如:

example.com.  A      192.0.2.1
  • 用于邮箱服务的域名不应有CNAME记录。在实践中,这或许不会出错,但由于邮件服务的不同,可能会有意料之外的效果。[2]

DNAME记录

DNAME记录,即代理名称记录,由《RFC 6672》定义(原《RFC 2672》已经废弃)。一条DNAME记录会将某个域名的整个解析子树映射到另一域名,而CNAME只映射设定的域名,不映射子域名。如同CNAME一样,在DNS查询过程中,会查找所映射到的新域名的地址。域名解析服务器会为每一个被查询的子域名生成一则CNAME记录。为某个域名设置DNAME记录和为该域名的所有子域名设置CNAME记录的效果是一样的。

例如下述记录:

foo.example.com.        DNAME  bar.example.com.
bar.example.com.        A      192.0.2.23
xyzzy.bar.example.com.  A      192.0.2.24
*.bar.example.com.      A      192.0.2.25

查询foo.example.com的A记录不会返回任何结果。不同于CNAME记录,DNAME不会直接影响所设置域名的解析。

如果我们需要查询xyzzy.foo.example.com,则由于DNAME记录的映射会返回xyzzy.bar.example.com的A记录,即192.0.2.24。而如果将DNAME记录换成是CNAME记录的话,这样的请求则会报错提示无法找到。

由此,查询foobar.foo.example.com会由于DNAME记录映射返回192.0.2.25。

ANAME记录

部分DNS平台支持尚未被标准化的ALIAS[3]或ANAME记录类型。此类伪记录由DNS服务器维护,类似于CNAME记录,但在(某些)客户端解析时等同于A记录。ANAME记录通常会被设置指向另一域名。但在被客户端请求时候,则会直接返回对应的IP地址。ANAME记录的标准化过程正在进行中[4],但已经有许多不同的实现,所以由于平台的不同,效果也多种多样。有些存在于域名解析区的顶端,有些则为了提供邮件服务而存在。ANAME记录相对CNAME记录的一大优势是速度。服务端解析A记录的速度通常比客户端快,同时可以缓存对应的IP地址以备查询。IETF正在讨论和考虑ANAME记录的标准化。[5]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysqldump: Error 2013 导致mysql停止运行

https://www.cnblogs.com/DataArt/p/10173957.html 1 查询表大小 SELECT table_name AS "表名", round(((data_length index_length) / 1024 / 1024), 2) AS "大小(MB)" FROM information_schema.tables WHERE table_schema your_database_name AND …

Togaf培训简介

Togaf简单讲 1.定义事物,方便大家互相理解 2.做好现状和愿景设计 3.做好现状到愿景的计划 1.togaf 首先是统一语言。大家互相能理解,比如各种定义。 togaf源自美国军方理论 2.没有架构设计,烟囱式系统是必然的。 就跟之前去政府办户籍一…

抖店曝光率高,转化低,不知道怎么提升转化率?试试这四个方法

大家好,我是醒醒团队电商花花。 我们现在做抖音小店的商家或多或少都会遇到不出单,转化低的各种问题。 明明店铺的曝光不低,访客也不少,就是没转化。 下面我根据我们做店的经验,给大家分享一些问题所在,…

Git—安装及介绍

下载Git 官网地址:Git - Downloads (git-scm.com) 安装 双击安装包 点击 next 检查安装 桌面,右键鼠标,是否出现 Git GUI Here 和 Git Bash Here 打开Git Bash Here 输入命令 git --verison

NX/UG软件使用—策略OK回调环境变量

新建环境变量UGII_CAM_OPERATION_OK_EXIT,变量值为需要执行的xx.dll路径,设置后,重启NX,那么在每次点击策略OK之后,会自动执行xx.dll(注意这个dll需要在配置好的工具目录里,也就是说NX能手动加载这个dll)。…

finallyshell激活-支持所有版本(老版 + 最新版) + 所有平台(mac + windows)

一:打开finally shell的激活页面 二:点击离线激活 三:复制机器码,然后执行一下代码 原文:大哥原文,但是这个大佬是用java实现的,执行因为依赖的问题一直报错 基于以上问题,所以使…

YoLov9目标检测算法的使用

目录 一、环境安装 1、创建虚拟环境 2、安装依赖库 二、数据集准备 1、数据集的文件名 2、划分数据集 3、配置数据文件 4、修改模型结构文件的类别 5、下载模型预训练权重 三、训练 1、训练的三个文件介绍 2、训练 3、验证 4、检测单张图片 四、附录 1、训练参…

C#数据库密码加密保存和登录验证方法

目录 1. 使用哈希算法加密密码 2. 用户注册时加密密码并保存到数据库 3. 用户登录时验证密码 注意事项 如何实现加盐处理 安装BCrypt.Net包 密码哈希和验证 用户注册时加盐并哈希密码 用户登录时验证密码 1. 使用哈希算法加密密码 可以使用C#中的System.Security.Cryp…

01 区块链-- Smart Contract

Concept of Smart Contract 1. 智能合约并非区块链的专属 智能合约,就是一段部署在区块链里的代码。 合约有自己的地址,与该地址进行交易会触发代码运行,一旦某个事件触发合约中的条款,代码即自动执行。 也就是说,满…

上海市计算机学会竞赛平台2024年1月月赛丙组成绩等第

题目描述 给定一个在 00 到 100100 之间的整数 𝑎a,请将它转成等第,规则如下: 9090 或以上为 A8080 或以上为 B7070 或以上为 C6060 或以上为 D5959 或以下为 F 输入格式 单个数字表示 𝑎a 输出格式 单个字符表示…

c++快读快写

一般来讲,快读快写在针对数据量不是很大的输入输出的时候显得比较无力,但如果是多组数据或者输入量较多,就可以显著提升效率。 快读 一个一个字符读取比读入一个数字(int)快 inline int read(){int x 0, f 1;//in…

【前端】LayUI监听事件汇总

一、监听单选按钮事件 点击资源类型单选按钮时&#xff0c;请求后台接口&#xff0c;把接口返回的内容追加到选择资源下拉框内 HTML <div class"layui-form-item"><label class"layui-form-label">资源类型&#xff1a;</label><d…

【Python快速上手(二十四)】-Python3 JSON数据解析

目录 Python快速上手&#xff08;二十四&#xff09;Python3 JSON数据解析编码&#xff08;序列化&#xff09;解码&#xff08;反序列化&#xff09;读写JSON文件 Python快速上手&#xff08;二十四&#xff09; Python3 JSON数据解析 在Python 3中&#xff0c;使用JSON&…

6. 神经网络的内积

目录 1. 准备知识 1.1 NumPy 的多维数组 1.2 矩阵乘法 1.2.1 矩阵乘法顺序 1.2.2 矩阵乘法范例 2. 神经网络的内积 2.1 使用场合 2.2 Python 实现 1. 准备知识 1.1 NumPy 的多维数组 大家应该对多维数组都很熟悉&#xff0c;我不再多言。在 NumPy 模块中&#xff0c;…

声纹识别在无人机探测上的应用

无人机在民用和军事领域的应用越来越广泛。然而&#xff0c;随着无人机数量的增加&#xff0c;"黑飞"现象也日益严重&#xff0c;对公共安全和隐私构成了威胁。因此&#xff0c;开发有效的无人机探测与识别技术变得尤为重要。及时发现黑飞无人机的存在进而对其型号进…

AI地名故事:鸦岗村

鸦岗村&#xff0c;位于广州市白云区石井镇&#xff0c;是一个历史悠久、文化底蕴深厚的村落。据《广州地名志》记载&#xff0c;南宋时期&#xff0c;南雄珠玑巷的凌氏家族迁移至此地&#xff0c;并在此建立村落。由于村子周边的山岗上常有乌鸦栖息&#xff0c;因此得名“鸦岗…

Redisson中分布式锁的实现原理

redisson版本&#xff1a;3.27.2 简介 锁归根结底就是对同一资源的竞争抢夺&#xff0c;不管是在单体的应用亦或者集群的服务中&#xff0c;上锁都是对同一资源进行修改的操作。至于分布式锁&#xff0c;那就是多个服务器或资源&#xff0c;同时抢占某一单体应用的同个资源了。…

什么是Google SEO优化,如何做好谷歌seo排名?2024年谷歌搜索引擎优化(谷歌SEO)3分钟速通教程指南

1 - 什么是SEO&#xff1f; 谷歌排名优化&#xff08;SEO&#xff1a;Search Engine Optimization&#xff09;是指当您在谷歌搜索那里输入一个您正在推广的产品或服务的关键词时&#xff0c;如何在使您的站在Google里获得一个较高的排名位置而做的优化过程。谷歌排名优化的意…

算法学习笔记(LCA)

L C A LCA LCA&#xff1a;树上两个点的最近公共祖先。&#xff08;两个节点所有公共祖先中&#xff0c;深度最大的公共祖先&#xff09; L C A LCA LCA的性质&#xff1a; 在所有公共祖先中&#xff0c; L C A ( x , y ) LCA(x,y) LCA(x,y)到 x x x和 y y y的距离都最短。 x …

什么是AOT,AOT 有什么优点

JDK 9 引入了一种新的编译模式 AOT (Ahead of Time Compilation)。与 JIT (Just-In-Time Compilation) 不同&#xff0c;AOT 在程序执行前将其编译成机器码&#xff0c;属于静态编译。这种模式具有很多优点&#xff0c;但也有一些限制。本文将详细探讨 AOT 的优点以及其限制。 …