如何 实现 A/B 域名 A CName B 时,B 隐藏

2021-09-16 21:51:57 +08:00
 SGTeam

如题 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 字节的数据:

3265 次点击
所在节点    DNS
35 条回复
defunct9
2021-09-16 21:53:56 +08:00
修改 ping 的源代码
SGTeam
2021-09-16 21:54:29 +08:00
@defunct9
2333 请不要抖机灵
SGTeam
2021-09-16 21:57:29 +08:00
因为 B 的 IP 变动是不可预测的
所以需要这样 能够时刻检测对方 IP 是否改变
最好能够直接指向对方的 变动的 A 记录最好

以我目前的知识量
我顶多能想到 nginx 重定向
求大佬提供思路
ysc3839
2021-09-16 21:59:27 +08:00
elfive
2021-09-16 21:59:36 +08:00
这个是 DNS 那边的回复,标准的 DNS 协议会在查询 a.com 回复 a.com 其实是 b.com 的一个 cname 记录。
要改,只能直接在域名服务商那里把 cname 记录改为 A 记录,值改为 b.com 对应的 A 记录值。
当然,改 DNS 回复也行,不过这个我想你也应该没这个权限。🐶
2i2Re2PLMaDnghL
2021-09-16 22:01:27 +08:00
cloudflare 我记得有个 aname 还是什么的,会把 cname 展平。

不然的话只能看看 ping 有什么选项这么做了。
2i2Re2PLMaDnghL
2021-09-16 22:04:07 +08:00
nginx 怎么重定向 ICMP ?你还是先学学吧,思而不学则殆
fetich
2021-09-16 22:04:30 +08:00
alias record
fetich
2021-09-16 22:07:05 +08:00
但这个功能可能不在所有的域名解析服务商里提供
akira
2021-09-16 22:08:10 +08:00
域名 A cname -> cf 域名 -> 域名 B

这个时候 域名 B 就是隐藏的呀
SGTeam
2021-09-16 22:10:54 +08:00
@2i2Re2PLMaDnghL
感谢您的耐心答复,我正在找 ANAME 和 flattening 的相关内容!
SGTeam
2021-09-16 22:11:53 +08:00
@akira
场景不允许走 cf 巨慢
SGTeam
2021-09-16 22:12:20 +08:00
@fetich 是境外域名
我想应该也是不可以提供服务的吧
感谢您的答复!
SGTeam
2021-09-16 22:13:53 +08:00
@elfive
我想我的需求可能是
时刻检测对方 A 记录
将对方 A 记录改成我的

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

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

听起来我的需求有点像 DDNS?
SGTeam
2021-09-16 22:16:23 +08:00
@elfive
帮大忙了 !
感谢您的答复,这可能就是我想要的功能!
fetich
2021-09-16 22:17:03 +08:00
@SGTeam 就是把 CNAME 记录改为 ALIAS 记录,完美解决你的问题
ruixue
2021-09-16 22:18:14 +08:00
你可能需要 aname 记录,这个只有部分 dns 服务商支持

https://en.wikipedia.org/wiki/CNAME_record#ANAME_record

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

优势就是可以隐藏 alias 的域名,不足之处就是不能很好的兼容 anycast
ruixue
2021-09-16 22:21:41 +08:00
看了下,免费的 dns.he.net 就支持 ALIAS Record(aname),直接像配置 cname 一样配置 ALIAS Record 即可
SGTeam
2021-09-16 22:22:38 +08:00
@2i2Re2PLMaDnghL
我看到了, 他默认 只有 根域名 是 展平的
但我 要有 6 个域名需要 展平(笑哭)
X-Force
2021-09-16 22:22:38 +08:00
间隔轮询 b.com 的 IP,发生变化就用 API 去修改 a.com 的 A 记录就行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802391

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX