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的一些细节的更多相关文章

  1. 从安全的角度看待DNS

    以前对DNS(Domain Name System)认识就大概的知道是一个提供域名解析服务,作为互联网的基础设施,任何一个IT人员都会或多或少都接触到DNS,随着我最近的接触不断提高,我发现DNS还是 ...

  2. 【转载,整理】域名CNAME解析配置,使用域名B作为域名A的CNAME记录值

    最近有个需求,未备案的域名A,想解析到香港 或 国内的服务器上,但是由于未备案,直接使用cdn解析在国内访问会很慢 但是不想直接直接到ip,所以找到两个方法可以解决: 方案一:转移到其他服务器做301 ...

  3. DNS协议(一)

    在互联网上要想与另外一台主机通信,要知道对方的IP地址,但是IP地址是很难记忆的, 比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210 ...

  4. DNS Bind服务配置解析

    DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 一.DNS服务器工作模式分类: 1.主服务器:在特定区域内具有唯一 ...

  5. 利用免费cdn加速webpack单页应用

    回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了:   1 2 3 4 5 6 MacBook-Pro:output ba ...

  6. Howie带你云上飘-新浪云

    介绍一下怎么在sae上做个网站 前言 曾经,sae是收费的,计时收费,还挺贵的呢.所以就试玩了一下,没敢继续鼓捣.后来,云计算越来越火了,新浪也不差钱嘛,于是直接给新注册的开发者送好多豆子,于是,免费 ...

  7. kubernetes进阶(04)kubernetes的service

    一.service概念 Service是对一组提供相同功能的Pods的抽象,并为它们提供一个统一的入口.借助Service,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级.Service ...

  8. CDNI - RFC7336翻译

    CDNI框架 摘要 本文档提出了CDNI的一个框架.框架的目的是提供对CDNI问题空间的总体描述,和描述CDN互连所需的各种组件之间的 关系.CDNI需要指定接口和机制解决诸如请求路由,分发交换元数据 ...

  9. Amazon RDS多区域高可用测试

    最近在AWS上面需要部署一组多区域RDS集群,AWS的多区域简单理解就是RDS一主一从分别在当地的两个机房(两个区域).所以就有了下面各方面的测试. 我们需要测试什么? Primary挂掉时,Seco ...

随机推荐

  1. HDU 1512 Monkey King ——左偏树

    [题目分析] 也是堆+并查集. 比起BZOJ 1455 来说,只是合并的方式麻烦了一点. WA了一天才看到是多组数据. 盲人OI (- ̄▽ ̄)- Best OI. 代码自带大常数,比启发式合并都慢 [ ...

  2. Trie URAL 7192 Chip Factory (15长春J)

    题目传送门 题意:从n个数中选出不同的三个数a b c,使得(a+b)^c 最大 分析:先将所有数字按位插入到字典树上,然后删除两个数字,贪心询问与剩下的数字最大异或值. /************* ...

  3. 如何使用ArcGIS Online的地图数据作为底图

    1.添加数据-GIS服务器 2.选择添加ArcGIS Server 3.使用GIS服务,下一步 4.输入url为http://cache1.arcgisonline.cn/ArcGIS/service ...

  4. 【BZOJ4008】[HNOI2015]亚瑟王 期望

    [BZOJ4008][HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最 ...

  5. BZOJ4563: [Haoi2016]放棋子

    Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在 这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行 ...

  6. mysql like 贪婪匹配 同时匹配多个值

    LIKE "%a%b%c%",这样匹配出的就是包含a,b,c三个关键词的记录  (三个关键词不在一起时) 不好用 mysql> select count(1) from dm ...

  7. 使用TFHelp解析Html

    似乎是第一次使用TFHelp解析Html,也是第一次解析Html遇到挺多的难题,现在这里简单的总结一下,慢慢补充TFHelp的使用! https://github.com/topfunky/hpple ...

  8. Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

    在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Securit ...

  9. ZeroMQ接口函数之 :zmq_ctx_term - 终结一个ZMQ环境上下文

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_ctx_term zmq_ctx_term(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_ ...

  10. BICEP单元测试——随机四则运算升级版

    一.测试方法 6个值得测试的具体部位: Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你是否可以强制错误条件发生? ...