如何将子域名解析为不同主机的另一个子域名?我需要的是
sub.firstdomain.com
解决为
sub2.seconddomain.com
我无法控制 secondomain.com(它是一个云托管),但我拥有 firstdomain.com
我无法让 CNAME 指向 IP,因为我无法解析子域的 IP。
我使用了 CNAME 记录,但是它给出了 404 错误,所以我认为转发是正确的,但是有些地方不对。
那么,我该怎么办?有 CNAME 技巧吗?或者提示?除了 CNAME 之外还有其他方法吗?
答案1
- 您不能将 CNAME 仅指向 IP 地址和另一条 A 记录
- 您混淆了 HTTP 主机标头和 DNS 条目
解释一下第二部分:
如果我设置了一个对 做出反应的 VirtualHostfirstdomain.invalid
但192.0.2.1
不创建 DNS 条目,我仍然可以通过手动添加 Host 标头并从 发出请求来浏览该网站http://192.0.2.1
。
如果我现在创建一个 DNS 条目,firstdomain.invalid A 192.0.2.1
我只需使用名称就可以浏览该网站(因为 HTTP 客户端将处理Host
需要标头的情况)
如果有人创建了 DNS 条目,seconddomain.invalid A 192.0.2.1
浏览器不会发生任何事情,因为服务器不知道相应的主机条目(暂时保留默认主机)
如果有人创建 DNS 条目,seconddomain.invalid CNAME firstdomain.invalid
则情况与上述相同。加的所有者seconddomain.invalid
将遇到邮件问题,因为任何理智的客户端都会看到一个CNAME
条目,并开始解析指向的域下的 MX 条目seconddomain.invalid
。换句话说:程序将执行以下操作:
嘿,有一个来自 seconddomain.invalid 的 CNAME。它指向 firstdomain.invalid。太好了,我将只获取 firstdomain.invalid 的 MX,因为它是一个 CNAME,并尝试将邮件发送到在那里定义为 MX 的任何主机,如果没有定义 MX,我将直接尝试将邮件发送到 firstdomain.invalid 的 A 记录
PS(完全是 OT):.invalid 域和 192.0.2.0/24 是为文档和示例目的保留的。请使用它们,因为它们(根据 RFC)保证不可访问