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

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

  •  
  •   zijian · 2021-04-30 08:09:32 +08:00 via iPhone · 5041 次点击
    这是一个创建于 423 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大佬,域名解析中,

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

    即 bind view 1(或智能解析的线路)中给子域名 dog.foo.bar 添加一条 A 记录,而在另一个 view 中给子域名 dog.foo.bar 添加一条 CNAME 记录,是应该允许添加的。
    flynaj
        38
    flynaj  
       2021-05-02 01:29:46 +08:00 via Android
    @cz5424 收费功能,都可以。
    patx
        39
    patx  
       2021-05-02 09:23:29 +08:00
    cloudflare partner
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2807 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:32 · PVG 22:32 · LAX 07:32 · JFK 10:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.