以通配符開頭的子域

以通配符開頭的子域

我想在 IIS 10 和 GoDaddy DNS 伺服器上實現此行為。

我有三台伺服器處理三個應用程序,前兩個工作正常,但第三個遇到問題:

  1. 所有www.example.com流量都non-www.example.com流向一台伺服器。
  2. 一切都api.example.com歸於另一人。
  3. 全部s*.example.com傳送到第三個伺服器(僅以字母 開頭的子網域S

考慮到明天我可能會有api2.mydomain.com等等。

謝謝!

答案1

DNS 通配符是二進制的:它要么是一切,要么什麼都不是,你不能只匹配標籤的某些部分,比如你的s*.example.com.這是協議的一部分,因此無論您使用什麼軟體,它都不起作用[1]

RFC4592及其第 2.1.1 節:

「通配符網域」是透過其初始(即最左邊或最不重要)標籤來定義的,二進位格式為:

 0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)

第一個八位元組是 1 個八位元組長標籤的正常標籤類型和長度,第二個八位元組是「*」字元的 ASCII 表示形式 [RFC 20]。

因此,如果您想做類似的事情,您需要設定一個通配符,然後在網頁伺服器中的應用程式層級處理所有請求。

請記住,通配符雖然看起來很有吸引力,但可能會產生複雜的問題,對於 CNAME 記錄更是如此。區域文件通常是文字文件,因此很容易自動建立它們並在其中放入任意數量的記錄,而不是使用通配符。

[1]:當然,使用高度特定的伺服器除外,您可以在其中插入特定的後端,該後端將按照您需要的方式對標籤進行操作。

相關內容