搭配內容快取將 DNS TXT 記錄用於 Apple 裝置
將 TXT 記錄加入 DNS 區域檔案
為你 DNS 伺服器上的本機網域加入一或多筆 TXT 記錄到區域檔案中。將 DNS TXT 記錄加入包含以下條件的區域:
具有網域的授權性
符合網路用戶端的預設搜尋網域
例如,若你的組織為你本身的網域提供 DNS 服務,且為 betterbag.com 作為主機名稱的授權來源,你便會將快取 TXT 記錄置於 betterbag.com 區域檔案中。
【重要事項】若你並未為你的網域託管授權性 DNS 服務,你便無法自己加入 TXT 記錄。請與 DNS 供應商協調,讓他們加入所提供的 TXT 記錄。
若你使用 BIND9 DNS,請拷貝產生的 TXT 記錄,並將其貼入你的 DNS 區域檔案。
對於 Linux 上的 BIND9-based DNS,此檔案位於 /private/etc/bind/ 目錄,而區域檔案名稱已在 /private/etc/bind/named.conf 中定義(最有可能是「betterbag.com」)。
如果你使用 Windows DNS,請執行下列其中一項操作:
若你使用內容快取服務來產生 TXT 記錄:在產生的指令中,用你網路的 DNS 區域名稱取代 ZoneName 變數,然後在你的 Windows DNS 電腦上執行指令。
若你手動製作 DNS TXT 記錄:使用 Windows 伺服器管理工具來手動輸入 TXT 記錄資訊。
使用 DNS TXT 記錄來跨多個公用 IP 位址發佈內容
如果你的網路使用多個公用 IP 位址來連接網際網路(例如,內容快取),可能使用有別於用戶端的位址註冊來進行搜索,則你需要提供那些位址的列表給內容快取和用戶端。Apple 會使用這些列表來交叉配對包含多個公用 IP 位址的註冊與搜索要求。
為了避免手動設定用戶端,內容快取使用 DNS TXT 記錄在你的網路上公佈用戶端的公用 IP 位址資訊。TXT 記錄需要在用戶端所使用的預設 DNS 搜尋網域裡發佈。
使用 macOS 10.15 或以上版本,你也可以指定偏好的本機 IP 位址來減少你網路上其他內容快取的影響。如果沒有在 TXT 記錄中宣告本機 IP 位址,所有用戶端都會使用任何可用的內容快取。
TXT 記錄中正確的公用 IP 位址範圍資料可以自動或手動產生。無論哪一種方式,你都需要編輯 DNS 記錄,或者將設定提供給你的 DNS 提供者以在區域檔案中製作或編輯 TXT 記錄。請注意,你無法自動產生偏好的 IP 位址的 TXT 記錄,而是必須手動製作。
【注意】這些記錄只有內部網路需要使用。外部 DNS 不需要其他記錄。
DNS TXT 記錄格式
指定 TXT 記錄的語法和 TXT 記錄中非 ASCII 的字元,可能會因你的 DNS 伺服器而異。此處顯示的範例僅供圖解之用。
內容快取的 DNS 文字記錄與 DNS-SD TXT 記錄的格式相同(鍵值對):
name._tcp 10800 IN TXT "[prs|prn|fss|fsn]=addressRanges"
將 prs
和 prn
鍵用於公用 IP 位址範圍;將 fss
和 fsn
鍵用於偏好內容快取的本機 IP 位址範圍。
下列範例分別定義同樣的兩個 IP 位址範圍:開頭為 17.53.22.2 且結尾為 17.53.22.254 的範圍,以及包含單一 IP 位址 17.53.23.1 的範圍。它們之間的差異在於第一個範例使用 prs
鍵,而第二個範例使用 prn
鍵。
_aaplcache._tcp 10800 IN TXT "prs=17.53.22.2-17.53.22.254,17.53.23.1"
_aaplcache._tcp 10800 IN TXT
_aaplcache._tcp 10800 IN TXT "prn=\x24\x11\x35\x16\x02\x11\x35\x16\xfe\x14\x11\x35\x17\x01"
鍵會將不同的格式用於值中指定的 IP 位址範圍:
prs 或 fss:
prs
或fss
鍵的值是一連串以逗號分隔的 IP 位址範圍,以呈現格式表示(ASCII 點記號)。此語法可方便進行設定。由單一 IP 位址或兩個 IP 位址(以連字號分隔)組成的範圍。prn 或 fsn:
prn
或fsn
鍵的值是一連串鏈結的 IP 位址範圍,以二進位「網路-位元組-順序」格式表示。此語法適用於以呈現格式指定時,對 DNS 記錄過長的範圍順序。序列中的每個範圍開頭都是一個用於指定範圍類型的位元組,其後為:0x14 表示一個 IPv4 位址。
0x24 表示一個開始和結尾 IPv4 位址範圍。
你可以串連多個記錄。若你這麼做,命名第一筆記錄 _aaplcache._tcp
和後續從 _aaplcache1._tcp
到 _aaplcache24._tcp
的記錄,上限為 25 筆串連記錄。
為了維持與使用 macOS 10.14 或較早版本的用戶端相容,請將使用 prs
或 prn
鍵的記錄放置在任何使用 fss
或 fsn
鍵的記錄之前。
請藉由在所有但非最後一個 TXT 記錄中置入連續標記來將記錄串連在一起。
prs
和 prn
語法在串連的記錄之間可以混用。prs
語法會在記錄值結尾附加「,more
」。prn
語法會在記錄值結尾附加「+
」(0x2b)。缺少此類連續標記的第一個記錄會結束串連。
串連記錄一次會以五個批次進行解決,也就是說,_aaplcache._tcp
和 _aaplcache1._tcp
到 _aaplcache4._tcp
會先並行解決。若它們都以連續標記結尾,則接下來會解決 _aaplcache5._tcp
到 _aaplcache9._tcp
,以此類推。
以下是三筆串連記錄的範例:
_aaplcache._tcp 10800 IN TXT "prs=17.250.1.1,17.250.2.1-17.250.2.254,more"
_aaplcache1._tcp 10800 IN TXT "prn=\x24\x11\xfa\x03\x01\x11\xfa\x03\xfe+"
_aaplcache2._tcp 10800 IN TXT "prs=17.250.4.5"
範例 1
此範例展示同時需要 prs
或 prn
記錄及 fss
或 fsn
記錄的情況。
假設你已有一個 DNS TXT 記錄,名稱為「_aaplcache._tcp
」,帶有值「prs=203.0.113.10-203.0.113.19
」,以及透過本機位址 10.0.0.30、10.1.0.30 和 10.2.0.30 部署的三個內容快取。前兩個只會提供共享的內容,最後一個則同時提供共享和 iCloud 內容。
若要防止用戶端使用未授權的內容快取,你可以在記錄中附加「,more
」並加入第二個記錄,如下所示:
_aaplcache._tcp prs=203.0.113.10-203.0.113.19,more
_aaplcache1._tcp fss=10.0.0.30,10.1.0.30,10.2.0.30
只要三個內容快取中至少有是一個使用此方式,執行 iOS 13、iPadOS 13.1、macOS 10.15 和 tvOS 13 或以上版本、尋找共享內容的裝置就會獨占使用那些內容快取。如果三個伺服器均離線,尋找共享內容的用戶端可以使用任何可用的內容快取。
只要 10.2.0.30 是使用此方式,執行 iOS 13、iPadOS 13.1、macOS 10.15 和 tvOS 13 或以上版本、尋找 iCloud 內容的裝置就會獨占使用該伺服器。如果此伺服器離線,尋找 iCloud 內容的用戶端就會使用任何可用的內容快取。
系統為 iOS 12 或較早版本和 macOS 10.14 或較早版本的裝置會使用任何可用的內容快取,不限於這三個。
範例 2
此範例展示不需要 prs
或 prn
記錄的情況。
假設你只有一個公用 IP 位址,且根本沒有使用 DNS TXT 記錄功能,但是子網路上有幾個為伺服器機器(192.168.50/24)保留的內容快取。
若要防止未授權的內容快取,你可以設定一個記錄,如下所示:
_aaplcache._tcp fss=192.168.50.1-192.168.50.254
只要該範圍內至少有一個內容快取可供其尋找的用戶端類型(共享或 iCloud)使用,iOS 13、iPadOS 13.1、macOS 10.15 和 tvOS 13 或以上版本用戶端就會獨占使用該內容快取。