博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DNS CNAME的一些细节
阅读量:6079 次
发布时间:2019-06-20

本文共 1304 字,大约阅读时间需要 4 分钟。

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当作某种资源类型的值。

当然,跟上面所有的情况一样,你怎么实现都是你自己的事情,倒是后踩到自己挖的坑还得自己填。

转载地址:http://ckhgx.baihongyu.com/

你可能感兴趣的文章
000 Python的运行
查看>>
linux线程的实现【转】
查看>>
【Unity/Kinect】显示Kinect摄像头内容,屏幕显示环境背景及人体投影
查看>>
PHP模拟登录并获取数据
查看>>
css的padding
查看>>
如何判断一条sql(update,delete)语句是否执行成功
查看>>
CSS的!important修改权重
查看>>
spring mvc WebArgumentResolver不生效
查看>>
利用傅里叶变换去除图像中有规律的噪声
查看>>
mysql 悲观锁 的运用
查看>>
Servlet学习:实现分页效果的方法
查看>>
linux设备驱动归纳总结(四):4.单处理器下的竞态和并发【转】
查看>>
总结2016
查看>>
Cobertura 代码覆盖率测试
查看>>
Dev控件删除按钮的两种方式
查看>>
JMeter3.0 post参数/BeanShell中文乱码问题
查看>>
ps常用快捷键
查看>>
SV通过DPI调用C
查看>>
py-faster-rcnn在windows下安装
查看>>
Nodejs 如何开发 module、npm package——directory + index.js + package.json!
查看>>