10

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

 3 years ago
source link: https://www.v2ex.com/t/802391
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
如何 实现 A/B 域名 A CName B 时,B 隐藏

V2EX  ›  DNS

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

  SGTeam · 3 小时 14 分钟前 · 453 次点击

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

27 条回复    2021-09-17 00:46:46 +08:00

defunct9

defunct9   3 小时 12 分钟前 via iPhone

修改 ping 的源代码

SGTeam

SGTeam   3 小时 11 分钟前

@defunct9
2333 请不要抖机灵

SGTeam

SGTeam   3 小时 8 分钟前

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

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

elfive

elfive   3 小时 6 分钟前 via iPhone

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

2i2Re2PLMaDnghL

2i2Re2PLMaDnghL   3 小时 4 分钟前

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

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

2i2Re2PLMaDnghL

2i2Re2PLMaDnghL   3 小时 2 分钟前

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

fetich

fetich   3 小时 1 分钟前

alias record

fetich

fetich   2 小时 59 分钟前

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

akira

akira   2 小时 58 分钟前

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

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

SGTeam

SGTeam   2 小时 55 分钟前

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

SGTeam

SGTeam   2 小时 54 分钟前

@akira
场景不允许走 cf 巨慢

SGTeam

SGTeam   2 小时 54 分钟前

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

SGTeam

SGTeam   2 小时 52 分钟前

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

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

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

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

SGTeam

SGTeam   2 小时 50 分钟前

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

fetich

fetich   2 小时 49 分钟前

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

ruixue

ruixue   2 小时 48 分钟前   ❤️ 1

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

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

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

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

ruixue

ruixue   2 小时 44 分钟前

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

SGTeam

SGTeam   2 小时 43 分钟前

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

X-Force

X-Force   2 小时 43 分钟前

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

SGTeam

SGTeam   2 小时 42 分钟前

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

SGTeam

SGTeam   2 小时 40 分钟前

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

SGTeam

SGTeam   2 小时 39 分钟前

@ysc3839

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

ruixue

ruixue   2 小时 34 分钟前

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

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

ruixue

ruixue   2 小时 19 分钟前

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

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

2i2Re2PLMaDnghL

2i2Re2PLMaDnghL   2 小时 15 分钟前

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

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1546 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 20ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
♥ Do have faith in what you're doing.


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK