V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zijian
V2EX  ›  DNS

A 记录与 CNAME 记录能同时共存吗?

  •  
  •   zijian · 91 天前 via iPhone · 3862 次点击
    这是一个创建于 91 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大佬,域名解析中,

    A 记录,比如绑定 www.xxx.com 到网站 IP
    CNAME 记录,绑定 www.xxx.com 到 cdn 节点网址

    CNAME 的线路类型选择境外,A 的线路默认,服务商是 DNSPOD,这样可以吗?
    39 条回复    2021-05-02 09:23:29 +08:00
    stabc
        1
    stabc   91 天前   ❤️ 1
    你想实现一个什么效果?
    zijian
        2
    zijian   91 天前 via iPhone
    @stabc DNS 分区解析,让国外 IP 走国外设置的 cdn,国内走源站
    tsungkang
        3
    tsungkang   91 天前   ❤️ 1
    国内的厂商基本都可以,而且你不仅可以境内外区分,还能给不同运营商指定不同的内容,比如电信 A 到 IP1,移动 CNAME 到 cf,联通又 A 到 IP2 。
    同个区域的 A 跟 CNAME 共存我倒是没试过,不过如果厂商如果比较周到的话,可能会平铺 CNAME 然后跟 IP 混在一起?
    whileFalse
        4
    whileFalse   91 天前
    你这个需求叫分区解析,不叫共存。
    zijian
        5
    zijian   91 天前 via iPhone
    @tsungkang 我试过不加代理访问我的站,dig 出来的 IP 是国内服务器本身的,加了全局代理,再 dig 出来的是国外 cdn 节点的 IP,不知道这样测试的结果是否正确。
    zijian
        6
    zijian   91 天前 via iPhone
    @whileFalse 嗯,这样对用户访问有没有影响呢?尤其是对国内 IP 的用户。
    whileFalse
        7
    whileFalse   91 天前   ❤️ 1
    @zijian 如果分区解析做得好就没影响。
    做得不好的意思是本来国内的用户 DNS 厂商以为是国外用户,然后丢给他一个 CDN 网址酱紫。
    gesse
        8
    gesse   91 天前
    DNSPOD 不行,分区解析,有 A 记录和 CNAME 记录共存也不行。
    MrUser
        9
    MrUser   91 天前
    很多年以前发现同时有 A 和 CNAME 时会影响 MX 记录的邮件接收还是发送,记不清了。
    alect
        10
    alect   91 天前
    我就是这么干的,不过我用的是阿里云
    Ljcbaby
        11
    Ljcbaby   91 天前
    @MrUser #9 CNAME 与 MX 不共存
    reed2020
        12
    reed2020   91 天前
    GeoDNS?
    no1xsyzy
        13
    no1xsyzy   91 天前
    一旦发现 CNAME 就会跟着 CNAME 走了,A 记录看都不看。
    不过如果 DNS 服务提供商可以做到你配起来是 CNAME 实质上平铺为 A,然后根据请求者 IP 返回最近的。
    cz5424
        14
    cz5424   91 天前
    跑个题:国内厂商华南华北分区能做到吗
    zijian
        15
    zijian   91 天前 via iPhone
    @whileFalse 是的,我也是考虑到会不会本来是国内 IP 访客带到国外的 cdn 上,然后造成访问超时,用户关闭页面,因为自从我这样设计后,网站流量大幅下降,所以我才来问大伙儿的。
    zijian
        16
    zijian   91 天前 via iPhone
    @gesse 哦?官方有说明吗?
    zijian
        17
    zijian   91 天前 via iPhone
    @reed2020 DNSPOD
    zijian
        18
    zijian   91 天前 via iPhone
    @naizhao 大佬我这个问题能解决吗?
    barrysn
        19
    barrysn   91 天前
    这不是以前提的 智能 dns 的概念么
    是可以实现的 ,而且好多年了
    zijian
        20
    zijian   91 天前 via iPhone
    @barrysn DNSPOD 默认套餐就支持?还是需要买付费套餐
    zijian
        21
    zijian   91 天前 via iPhone
    如果流量下降能排除 DNS 的问题我就去看服务器配置
    oott123
        22
    oott123   91 天前 via Android
    你的情况下,简而言之:如果没有 MX 、TXT 等记录在同一个子域名下,则没有影响;如果有,那么海外的 MX / TXT 这类记录会失效。
    zijian
        23
    zijian   91 天前 via iPhone
    @oott123 好的👌感谢
    gesse
        24
    gesse   91 天前
    @zijian
    我测试了。
    zijian
        25
    zijian   91 天前 via iPhone
    @gesse 怎么测试的?
    gesse
        26
    gesse   91 天前
    @zijian
    企业套餐域名
    国内线路设置 A 记录
    国外线路设置 CNAME 记录提示不支持。
    zijian
        27
    zijian   91 天前 via iPhone
    @gesse 不支持的情况我这没遇到,我这是免费套餐的。
    pengyu
        28
    pengyu   91 天前
    CNAME 和 A 记录不能共存,你的需求也不是共存,就是分区解析,国内的 DNS 运营商基本都提供这个功能,一般不会出错,Nodecache 的 DNS 也支持这个功能,节点端是我写的,如果用这个遇到问题可以找我。
    qiangzhiming
        29
    qiangzhiming   91 天前
    @alect 我测试阿里云 dns 好像同线路 A 记录和 cname 也是不能共存的,报 “CNAME”记录与“A”记录冲突
    alect
        30
    alect   91 天前
    @qiangzhiming #29 先设置国外线路用 CNAME,然后设置默认使用 A 。
    alect
        31
    alect   91 天前
    @qiangzhiming #29 同线路当然不行
    reed2020
        32
    reed2020   91 天前
    @zijian 啊不是的,我是说这个功能叫这个名字,根据地理位置解析。
    lxz6597863
        33
    lxz6597863   91 天前
    A 和 CNAME 不能共存
    变通点,把那个 A 记录也做成 CNAME,然后按线路去添加国内外的解析就行了
    zijian
        34
    zijian   91 天前 via iPhone
    @lxz6597863 您指的不能共存事说同一种线路类型下吗?我是默认(或者说境内)A 记录走源站,境外 CNAME 到 CDN
    JensenQian
        35
    JensenQian   91 天前 via Android
    @cz5424 华为云免费的
    moxnet
        36
    moxnet   91 天前
    对同一个子域名,不应该同时添加 A 记录和 CNAME 记录,也不能添加。更具体的说,在 bind 的同一个 view 中,或“智能解析”的同一个线路下,单个子域名不能同时添加 CNAME 和任何其它类型的记录。

    为什么?因为 CNAME 会缓存;并且当请求任何类型的记录时,cache dns 可以以 CNAME 的值响应。

    比如你同时添加了 dog.foo.bar 这个子域名的 A 记录 1.1.1.1,和 CNAME 类型记录值 www.v2ex.com 。若 cache dns 缓存了 CNAME 值 www.v2ex.com ,当另外有用户向 cache dns 请求解析 dog.foo.bar 的 A 记录时,cache dns 会直接把 www.v2ex.com 响应。即有些用户请求 A 记录时,获得的并不是你想让他得到的 1.1.1.1

    对 CNAME 和其它类型需要共存的一个现实的需求,可能是一个子域名即做网站又做其它应用如邮箱,而网站需要做 cdn 服务,cdn 服务厂商需要你将域名做 cname 指过去~~~
    moxnet
        37
    moxnet   91 天前
    针对楼主的问题,在不同的线路中,A 和 CNAME 可以共存,只要不在同一线路中同时共存即可。

    即 bind view 1(或智能解析的线路)中给子域名 dog.foo.bar 添加一条 A 记录,而在另一个 view 中给子域名 dog.foo.bar 添加一条 CNAME 记录,是应该允许添加的。
    flynaj
        38
    flynaj   90 天前 via Android
    @cz5424 收费功能,都可以。
    patx
        39
    patx   89 天前
    cloudflare partner
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   989 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:31 · PVG 03:31 · LAX 12:31 · JFK 15:31
    ♥ Do have faith in what you're doing.