Domain-Name-System

A 和 MX 記錄的萬用字元可能嗎?

  • March 2, 2020

我正在建構一個應用程序,每個客戶都可以擁有自己的子域。對於這個例子,他將他的子域設置為:whiskey

我在我的 DNS 中創建了一個萬用字元子域:

*.myapp.example A 192.0.2.123

所以當他訪問我的 webapp 時,他會使用 URL:whisky.myapp.example並且它會解析為192.0.2.123.

我的應用程序還使用我的客戶選擇的相同子域發送電子郵件(電子郵件將由 sendgrid 處理):例如customer@whisky.myapp.example

但是,當我嘗試為 sendgrid 的伺服器設置萬用字元 MX 記錄時,我的 DNS 提供商不允許我這樣做,理由是違反了一些標準。

例如*.myapp.example MX sendgrid.com

有什麼辦法可以同時擁有萬用字元子域嗎?

RFC1912明確承認萬用字元 MX 記錄的存在,但警告

萬用字元 MX 僅適用於區域中根本未在 DNS 中列出的名稱。

RFC4592是一個標準軌道 RFC,它闡明了 MX 萬用字元的存在(參見第 2.2.1 節中的範例)。因此,我很確定您的 DNS 提供商已經充滿了它。

我可以想像一些 DNS 軟體也會遇到這種情況,要麼是因為它們根本不支持萬用字元 MX 記錄,要麼是因為它們把“沒有其他記錄”的說法過於字面化了,並且不允許同時使用萬用字元MX 和萬用字元 A。這個軟體不符合標準,但祝你好運。

鑑於在客戶註冊時自動設置 DNS 記錄是多麼微不足道(或應該如此),我將完全跳過萬用字元,讓您的應用程序為每個客戶配置 DNS 記錄。

引用自:https://serverfault.com/questions/405639