DNS CNAME的一些细节
cname的解析过程:是local dns server把cname直接解析成ip。而不是 dns resolver先请求cname拿到被指向的域名,再做一次dns请求解析到ip。对于nslookup、dig工具,会解析成cname所指向的域名,而不是直接到ip。
1, 概述
DNS中的CNAME可以减轻运维压力,使得已有的DNS配置具有一定的灵活性和可扩展性。本文对CNAME中的一些细节做阐述, 使DNS服务器的运维人员和开发人员能合理地使用CNAME。
2, zone的CNAME
你可能想把一个zone的DNS解析转发到另一个zone的DNS解析,比如这样配置
old.taobao.com. IN CNAME new.taobao.com.
实际上上面的CNAME意图是错误的,因为old.taobao.com已经有了SOA和NS的记录。如果你为old.taobao.com配置了CNAME, 那么old.taobao.com在CNAME链中的角色是一个别名alias,在SOA和NS的角度看它的角色是一个权威名canonical name, 一个domain是不能同时承担这两种角色的。
所以,正确的做法应该是为zone下面的domain设置CNAME,像下面这样:
img01.old.taobao.com. IN CNAME img.new.taobao.com.
img02.old.taobao.com. IN CNAME img.new.taobao.com.
3, 指向CNAME的CNAME
标准DNS协议是不鼓励指向CNAME的CNAME的,因为这样会导致cname loop,同时会增加解析时间。我遇到的一个DNS服务器 就因为没有做CNAME loop的检查,不断向系统申请资源从而导致内存暴增直至宕机。
如果你决定你的DNS服务器不遵循标准DNS协议,支持多层CNAME的话,那么对于CNAME链的长度限制和CNAME loop的检查是 十分有必要的。
4, 多个CNAME值
一个domain name或许会有对应的对个CNAME,像下面这样:
img.taobao.com. IN CNAME img01.taobaocdn.com.
img.taobao.com. IN CNAME img02.taobaocdn.com.
img.taobao.com. IN CNAME img03.taobaocdn.com.
这看起来好像是一个不可思议的配置。但是你可以这样实现你的DNS服务器来做基于CNAME的负载均衡(sounds pathologicall), 方法就是你的DNS服务器每次会随机返回上面三个CNAME中的一(当然也可以是你设计的任何选择策略)。
值得一体的是,BIND9不支持这种多值的CNAME。
5, CNAME作为alias
下面就是CNAME作为一个alias的配置:
mail.taobao.com. IN MX mail.taobaocdn.com.
mail.taobaocdn.com IN CNAME mail.alibaba.com.
DNS标准协议的建议是不要把一个alias当作某种资源类型的值。
当然,跟上面所有的情况一样,你怎么实现都是你自己的事情,倒是后踩到自己挖的坑还得自己填。
DNS CNAME的一些细节的更多相关文章
- 从安全的角度看待DNS
以前对DNS(Domain Name System)认识就大概的知道是一个提供域名解析服务,作为互联网的基础设施,任何一个IT人员都会或多或少都接触到DNS,随着我最近的接触不断提高,我发现DNS还是 ...
- 【转载,整理】域名CNAME解析配置,使用域名B作为域名A的CNAME记录值
最近有个需求,未备案的域名A,想解析到香港 或 国内的服务器上,但是由于未备案,直接使用cdn解析在国内访问会很慢 但是不想直接直接到ip,所以找到两个方法可以解决: 方案一:转移到其他服务器做301 ...
- DNS协议(一)
在互联网上要想与另外一台主机通信,要知道对方的IP地址,但是IP地址是很难记忆的, 比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210 ...
- DNS Bind服务配置解析
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 一.DNS服务器工作模式分类: 1.主服务器:在特定区域内具有唯一 ...
- 利用免费cdn加速webpack单页应用
回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了: 1 2 3 4 5 6 MacBook-Pro:output ba ...
- Howie带你云上飘-新浪云
介绍一下怎么在sae上做个网站 前言 曾经,sae是收费的,计时收费,还挺贵的呢.所以就试玩了一下,没敢继续鼓捣.后来,云计算越来越火了,新浪也不差钱嘛,于是直接给新注册的开发者送好多豆子,于是,免费 ...
- kubernetes进阶(04)kubernetes的service
一.service概念 Service是对一组提供相同功能的Pods的抽象,并为它们提供一个统一的入口.借助Service,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级.Service ...
- CDNI - RFC7336翻译
CDNI框架 摘要 本文档提出了CDNI的一个框架.框架的目的是提供对CDNI问题空间的总体描述,和描述CDN互连所需的各种组件之间的 关系.CDNI需要指定接口和机制解决诸如请求路由,分发交换元数据 ...
- Amazon RDS多区域高可用测试
最近在AWS上面需要部署一组多区域RDS集群,AWS的多区域简单理解就是RDS一主一从分别在当地的两个机房(两个区域).所以就有了下面各方面的测试. 我们需要测试什么? Primary挂掉时,Seco ...
随机推荐
- acm数学(待续)
意图写出http://www.cnblogs.com/kuangbin/archive/2012/08/28/2661066.html这个东西的完善版. 1.置换,置换的运算 poj 2369 Per ...
- 从零开始山寨Caffe·壹:仰望星空与脚踏实地
请以“仰望星空与脚踏实地”作为题目,写一篇不少于800字的文章.除诗歌外,文体不限. ——2010·北京卷 仰望星空 规范性 Caffe诞生于12年末,如果偏要形容一下这个框架,可以用"须敬 ...
- 深入分析Java ClassLoader原理
一.什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程 ...
- Reg于Wire的不同点
Reg 比喻为“相机” Reg型,是always中被赋值的信号,往往代表触发器,但不一定是触发器 Wire 比喻为“镜子” Wrie型,assign指定的组合逻辑的信号 好好想想 ,还是能有个大致的概 ...
- Activity与Fragment
Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似. Fragment是用来描述一些行为或一部分用户界面在一个Activi ...
- Moses 安装
参考:Moses相关介绍与安装简介 http://www.52nlp.cn/moses-introduction 一.Moses简介 http://www.52nlp.cn/moses-introdu ...
- 兼容IE浏览器的js浏览器全屏代码
众所周知,IE是个奇葩的浏览器,但是由于用户量很大,开发者还是不得不为IE考虑一下,于是,各种浏览器相关的操作,都要多一个特别的判断——专门针对IE浏览器的判断,这里的全屏也不例外.看代码: func ...
- myeclipse项目上出现红色叹号
右键选中项目:build path→configure build path (由于的我是在问题解决之后发表的博客,所以jar包上面的红色叉子不见了,只要选中红色的jar包,然后选择‘Remove’按 ...
- EXCEL技巧——SUBTOTAL函数巧妙应用
想用COUNTA来计算非空单元格的数量,但它会把隐藏的单元格也算进去,所以用到了SUBTOTAL这个函数.做个记录,方便日后使用 函数表示: SUBTOTAL(function_num, ref1, ...
- Mybatis缓存处理机制
一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...