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