如题 cloudflare cname 后
进行 ping 测试时 突然 有一个想法:
需求:
最终实现 A Cname B 之后 ping 测试时 看不到 B 域名
而直接显示 B 的 A 记录 IP
比如
A 域名
方式
B 域名
目标 IP

a.com
cname
b.com
8.8.8.8

最后实现:
正在 Ping a.com [8.8.8.8] 具有 32 字节的数据:
而不是
正在 Ping b.com [8.8.8.8] 具有 32 字节的数据:

修改 ping 的源代码

2333 请不要抖机灵

因为 B 的 IP 变动是不可预测的
所以需要这样 能够时刻检测对方 IP 是否改变
最好能够直接指向对方的 变动的 A 记录最好

以我目前的知识量
我顶多能想到 nginx 重定向
求大佬提供思路

Cloudflare 有 CNAME Flattening 功能
blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/

这个是 DNS 那边的回复,标准的 DNS 协议会在查询 a.com 回复 a.com 其实是 b.com 的一个 cname 记录。
要改,只能直接在域名服务商那里把 cname 记录改为 A 记录,值改为 b.com 对应的 A 记录值。
当然,改 DNS 回复也行,不过这个我想你也应该没这个权限。🐶

cloudflare 我记得有个 aname 还是什么的,会把 cname 展平。

不然的话只能看看 ping 有什么选项这么做了。

nginx 怎么重定向 ICMP ?你还是先学学吧,思而不学则殆

alias record

但这个功能可能不在所有的域名解析服务商里提供

域名 A cname -> cf 域名 -> 域名 B

这个时候 域名 B 就是隐藏的呀

感谢您的耐心答复,我正在找 ANAME 和 flattening 的相关内容!

场景不允许走 cf 巨慢

是境外域名
我想应该也是不可以提供服务的吧
感谢您的答复!

我想我的需求可能是
时刻检测对方 A 记录
将对方 A 记录改成我的

但我看了一圈好像 cf 的 DNS 貌似没有办法实现

cname 只会直接指向对方的 A 记录

听起来我的需求有点像 DDNS?

帮大忙了 !
感谢您的答复,这可能就是我想要的功能!

就是把 CNAME 记录改为 ALIAS 记录,完美解决你的问题

你可能需要 aname 记录,这个只有部分 dns 服务商支持

en.wikipedia.org/wiki/CNAME_record#ANAME_record

简单来说,为域名设置一个 alias 域名,收到查询请求时 dns 服务商先自行将 alias 的域名解析出 ip 地址,再将其作为 a 记录返回,而不是像 cname 一样直接返回另一个域名

优势就是可以隐藏 alias 的域名,不足之处就是不能很好的兼容 anycast

看了下,免费的 dns.he.net 就支持 ALIAS Record(aname),直接像配置 cname 一样配置 ALIAS Record 即可

我看到了, 他默认 只有 根域名 是 展平的
但我 要有 6 个域名需要 展平(笑哭)

间隔轮询 b.com 的 IP,发生变化就用 API 去修改 a.com 的 A 记录就行。

谢谢您的答复! 这也是一种可以考虑的解决办法 时刻不断地去修改 A 记录

感谢您的耐心答复!!! 我一定会去试试这个!
顺便问一下您! 他的这个支持 多个子域名吗? 有没有什么限制?

我看到了, 他默认 只有 根域名 是 展平的
但我 要有 6 个域名需要 展平(笑哭)

he dns 完全免费,一个账号可以添加 50 个 zone,支持多个子域名,没实际测试过最大限制吧但是几百条记录是没问题的

已知的限制是不支持泛域名解析,也不支持添加纯数字域名

#17 有一处笔误,不足之处是不能很好的兼容 geodns,并不是 anycast 。。

原因是 dns 服务商一般只会在特定的服务器上“代为”解析 aname 的域名,所以如果 aname 的域名配置了 geodns,它会始终返回 dns 服务商所在的地区解析出的记录,而不能很好的做到不同地理位置返回不同的解析结果

先问下你为什么要调 ping 的结果?
一般而言提供展平是为了同时存在其他记录,而避免因 CNAME 的性质导致无法保存其他记录,比如 MX 记录(邮件服务器)
只是为了 ping 去做展平有点多余。很多网站都没做展平。

这时候需要 alias 记录

doc.powerdns.com/authoritative/guides/alias.html

由你的权威 DNS 解析 cname 的域名,返回给用户 A 记录即可

可以考虑 隐式 url

DNAME

感谢您的答复! 请问 您 这是什么原理呀

感谢您的回答! DNAME 也是展平吗?

感谢您的答复!!! 我用楼上的成功啦!! 就是通过 alias 实现的!! Thanks♪(・ω・)ノ

#26 “CNAME”记录与“MX”记录冲突,好像不行吧。

不是冲突,而是 CNAME 覆盖其他任何记录。
你读读我 #26 到底写了啥,ANAME/ALIAS 就是为了避免这个问题的,而不是为了楼主的 ping