由于Amazon Route 53允许您使用Alias将A记录或CNAME设置为不同的子域名,我想知道A记录和CNAME现在有什么区别 .
为了澄清我的问题,传统NameServer中CNAME和A记录之间的区别在于只有CNAME可用于指向不同的子域,而A记录必须指向有效的IP地址 . 由于AWS Route53允许您使用具有A Rec或CNAME的子域,因此它不会模糊两者之间的区别 .
您的问题非常有效,但您使用“subdomain”这个词的方式并不十分精确 .
您实际要问的是,Route 53, A 记录可以提供引用来自另一个域的完全限定主机名,或来自其自己域的主机名或子域的外观,而在适当的DNS中,只有引用另一个主机名的方法是使用 CNAME ,但是那些不能在指向子域("www.example.com")的域("example.com")的顶点进行配置 .
A
CNAME
你说的别名似乎功能相同,但比 CNAME 更灵活,所以有区别吗?
CNAME 和别名之间的区别在于 CNAME 仍然是正确的标准普通DNS CNAME ,它返回DNS查询响应“嗨,您需要知道服务器的真实(” c anonical“) name 正在寻找是'x'“并且,根据具体情况,可能还包括目标主机的 A 记录,或者可能不包括,要求客户端进行第二次查找 .
另一方面,别名是由亚马逊创建的一个聪明的黑客,它不破坏协议,但允许Route 53在请求资源"Y"的 A 记录时直接从资源"X"分发 A 记录 . 别名也可以引用其他记录类型,但它们引用的记录类型必须相同,为了讨论的目的,我说的是 A 记录别名 .
并且,这里重要的一点是,别名实际上返回 A 记录 - 而不是对目标的引用,就像 CNAME 那样 .
问题是,使用别名,您不能在该框中放置任何主机名 . 它必须是一个域中的主机名,其中Route 53具有神奇的钩子,以便它可以检索apprpriate A 记录以提供服务 - 您所在区域中的另一个条目,或者来自S3,ELB或Cloudfront . 这与 CNAME 记录的工作方式完全不同,即使净效果看起来相同 .
把其他东西放在那里, The record set could not be saved because:- Alias Target contains an invalid value. 试试吧 . :)
The record set could not be saved because:- Alias Target contains an invalid value.
当然, CNAME 记录没有这样的限制......它们仅限于在区域顶部使用时的设计 .
所以,事实上,别名和 CNAME 记录没有你原先想象的那么多重叠 . 在某些情况下,只有一个是可用的,并且任何一个都可以工作的情况,差异可能是微不足道的 .
在可以使用任何一个的情况下,Alias的一个优点是别名从不需要2个DNS查询,如上所述 . 路由53总是直接用适当的 A 记录来回答,其中 CNAME ,至少在它引用不同顶级域中的主机名的情况下,可能需要两个连续的DNS查找,从而使Alias具有理论上的性能优势 . 案件 .
我认为你有错误的信息 . Amazon Route53不允许带子域的 A 记录 . 当我'm trying to set it to a domain name I'm收到错误时:
The record set could not be saved because: - The Value field contains invalid characters or is in an invalid format.
A 记录仅用于IP地址 .
2 回答
您的问题非常有效,但您使用“subdomain”这个词的方式并不十分精确 .
您实际要问的是,Route 53,
A
记录可以提供引用来自另一个域的完全限定主机名,或来自其自己域的主机名或子域的外观,而在适当的DNS中,只有引用另一个主机名的方法是使用CNAME
,但是那些不能在指向子域("www.example.com")的域("example.com")的顶点进行配置 .你说的别名似乎功能相同,但比
CNAME
更灵活,所以有区别吗?CNAME
和别名之间的区别在于CNAME
仍然是正确的标准普通DNSCNAME
,它返回DNS查询响应“嗨,您需要知道服务器的真实(” c anonical“) name 正在寻找是'x'“并且,根据具体情况,可能还包括目标主机的A
记录,或者可能不包括,要求客户端进行第二次查找 .另一方面,别名是由亚马逊创建的一个聪明的黑客,它不破坏协议,但允许Route 53在请求资源"Y"的
A
记录时直接从资源"X"分发A
记录 . 别名也可以引用其他记录类型,但它们引用的记录类型必须相同,为了讨论的目的,我说的是A
记录别名 .并且,这里重要的一点是,别名实际上返回
A
记录 - 而不是对目标的引用,就像CNAME
那样 .问题是,使用别名,您不能在该框中放置任何主机名 . 它必须是一个域中的主机名,其中Route 53具有神奇的钩子,以便它可以检索apprpriate
A
记录以提供服务 - 您所在区域中的另一个条目,或者来自S3,ELB或Cloudfront . 这与CNAME
记录的工作方式完全不同,即使净效果看起来相同 .把其他东西放在那里,
The record set could not be saved because:- Alias Target contains an invalid value.
试试吧 . :)当然,
CNAME
记录没有这样的限制......它们仅限于在区域顶部使用时的设计 .所以,事实上,别名和
CNAME
记录没有你原先想象的那么多重叠 . 在某些情况下,只有一个是可用的,并且任何一个都可以工作的情况,差异可能是微不足道的 .在可以使用任何一个的情况下,Alias的一个优点是别名从不需要2个DNS查询,如上所述 . 路由53总是直接用适当的
A
记录来回答,其中CNAME
,至少在它引用不同顶级域中的主机名的情况下,可能需要两个连续的DNS查找,从而使Alias具有理论上的性能优势 . 案件 .我认为你有错误的信息 . Amazon Route53不允许带子域的
A
记录 . 当我'm trying to set it to a domain name I'm收到错误时:A
记录仅用于IP地址 .