我正在开发一款应用,每个客户都可以拥有自己的子域名。在本例中,他将自己的子域名设置为:whisky
我在我的 DNS 中创建了一个通配符子域名:
*.myapp.example A 192.0.2.123
因此,当他访问我的 Web 应用程序时,他将使用 URL:whisky.myapp.example
并且它将解析为192.0.2.123
。
我的应用程序还使用客户选择的相同子域发送电子邮件(电子邮件将由 sendgrid 处理):例如[email protected]
但是,当我尝试为 sendgrid 的服务器设置通配符 MX 记录时,我的 DNS 提供商不允许我这样做,理由是违反了某些标准。
例如*.myapp.example MX sendgrid.com
有什么方法可以让我同时拥有两个通配符子域名吗?
答案1
RFC1912明确承认通配符 MX 记录的存在,但发出警告
通配符 MX 仅适用于区域中未在 DNS 中列出的名称。
RFC4592是标准轨道 RFC,阐明了 MX 通配符的存在(参见第 2.2.1 节中的示例)。因此,我非常肯定您的 DNS 提供商对此非常了解。
我可以想象一些 DNS 软件也会遇到这种情况,要么是因为它们根本不支持通配符 MX 记录,要么是因为它们将“没有其他记录”理解得太过字面化,不允许同时使用通配符 MX 和通配符 A。此软件不符合标准,但祝你好运能修复它。
考虑到在客户注册时自动设置 DNS 记录是多么简单(或应该是),我会完全跳过通配符,只需让您的应用为每个客户配置 DNS 记录。