在 Mac 上讓內容快取在多個公用 IP 地址之間搜索
如果你的網絡使用多個公用 IP 地址來連接互聯網(例如,內容快取),可能使用有別於用户端的地址註冊來進行搜索,則你需要提供那些地址的列表給內容快取和用户端。使用這些列表來交叉配對包括多個公用 IP 地址的註冊與搜索要求。
為了避免手動設定用户端,內容快取使用 DNS TXT 記錄在你的網絡上公佈用户端的公用 IP 地址資料。TXT 記錄需要在用户端所使用的預設 DNS 搜尋網域裏發佈。
使用 macOS 10.15 或以上版本,你可以指定偏好的本機 IP 地址以減少你的網絡上其他內容快取的影響。如偏好的本地 IP 地址是以 TXT 記錄宣告,所有用户端都會使用任何可用的內容快取。
正確的公用IP地址範圍 TXT 記錄資料可以自動或手動產生。無論哪一種方式,你都需要編輯 DNS 記錄,或者將設定提供給你的 DNS 提供者以在區域檔案中製作或編輯 TXT 記錄。請注意你無法為偏好的本機 IP 地址自動產生 TXT 記錄,必須手動產生。
附註:這些記錄只有內部網絡需要使用。外部 DNS 不需要其他記錄。
設定內容快取用户端來支援多個 IP 地址
在 Mac 上,選擇「蘋果」選單 >「系統偏好設定⋯」,按一下「分享」,然後選擇「內容快取」。
按住 Option 鍵,然後按一下「進階選項」。
按一下「用户端」。
按一下「我的區域網絡」彈出式選單,然後選擇「使用自訂公用 IP 地址」。
按一下「加入」按鈕 ,然後輸入一組公用 IP 地址。
為你要輸入的任何其他 IP 地址範圍重複此動作。
建立一個描述你所輸入的公用 IP 地址的 DNS TXT 記錄。
你可以使用內容快取服務來產生 TXT 記錄或手動建立 TXT 記錄(格式如下)。產生 TXT 記錄:
按一下「DNS 設定」按鈕。
選擇你的 DNS 伺服器類型(BIND 或 Windows)。
將產生的 TXT 記錄複製並貼至文字檔案,以便稍後將其加到 DNS 區域檔案時使用。
按一下「完成」。
當你完成設定時,按一下「好」。
將 TXT 記錄加到網域中獲主要授權的 DNS 區域檔案。
DNS TXT 記錄格式
指定 TXT 記錄的語法和 TXT 記錄中非 ASCII 的字元,將會因你的 DNS 伺服器而異。以下範例只供圖解之用。
文字快取的 DNS TXT 記錄與 DNS-SD TXT 記錄(鍵值對)格式相同:
name._tcp 10800 IN TXT "[prs|prn|fss|fsn]=addressRanges"
為公用 IP 地址範圍使用 prs 鍵和 prn 鍵;為偏好的內容快取的本機 IP 地址範圍使用 fss 鍵和 fsn 鍵。
IPv4 和 IPv6 都會被接受,但只可支援 IPv4。
以下範例均定義了兩個 IP 地址範圍的相同組合:一個在 17.53.22.2 開結和在 17.53.22.254 結束的範圍,以及一個包含單一 IP 地址(93.184.216.119)的範圍。兩者差別在於第一個範例使用 prs 鍵,而第二個範例則使用 prn 鍵。
_aaplcache._tcp 10800 IN TXT "\x2aprs=17.53.22.2-17.53.22.254,93.184.216.119"
_aaplcache._tcp 10800 IN TXT "\x12prn=\x24\x11\x35\x16\x02\x11\x35\x16\xfe\x14\x5d\xb8\xd8\x77"
這些鍵就值指定的 IP 地址範圍使用不同格式:
prs 或 fss:prs 鍵值或 fss 鍵值的值是一連串以逗號分隔的 IP 地址範圍,以呈現格式表示(ASCII 點記號)。此語法可方便進行設定。由單一 IP 地址或兩個 IP 地址(以連字號分隔)組成的範圍。
prn 或 fsn:prn 鍵值或 fsn鍵值的值是一連串鏈結的 IP 地址範圍,以二進位「網絡-位元組-順序」格式表示。此語法適用於以呈現格式指定時,對 DNS 記錄過長的範圍順序。序列中每個範圍之前均有一個位元組為緊接的範圍指定類型:
0x14 代表一個單一的 IPv4 地址。
0x16 代表一個單一的 IPv6 地址。
0x24 代表一個開始和結束的 IPv4 地址範圍。
0x26 代表一個開始和結束的 IPv6 地址範圍。
你可以將多個記錄串連一起。如你這樣做,請將第一個記錄命名為_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 "\x2bprs=17.250.1.1,17.250.2.1-17.250.2.254,more"
_aaplcache1._tcp 10800 IN TXT "\x0eprn=\x24\x11\xfa\x03\x01\x11\xfa\x03\xfe+"
_aaplcache2._tcp 10800 IN TXT "\x0eprs=17.250.4.5"
指定 TXT 記錄的語法和 TXT 記錄中非 ASCII 的字元,將會因你的 DNS 伺服器而異。部份伺服器不需要前導長度位元組(在此範例中分別是 \x2a、\x12、\x2b、\x0e 和 \x0e),因為他們已自動預先考慮在內。
範例 1
此範例展示了 prs 和 prn 記錄,且被要求 fss 或 fsn 記錄的情況。
假設你已擁有一個名為「_aaplcache._tcp」的 DNS TXT 記錄,其中包含「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
只要三個內容快取中有最少一個正在運作,尋找共享內容的用户端(安裝 macOS 10.15、iOS 13、iPadOS 13 或 tvOS 13 或以上版本)會專享該內容快取。
如三個地址皆離線,尋找共享內容的用户端會使用任何可用的內容快取。
只要三個 10.2.0.30 正在運作,其會專供尋找 iCloud 內容的用户端(安裝 macOS 10.15、iOS 13、iPadOS 13、tvOS 13 或以上版本)使用。如其離線,尋找 iCloud 內容的用户端會使用任何可用的內容快取。
安裝 macOS 10.14 或 iOS 12 或更舊版本的裝置會使用任何可用的內容快取,而非只限該三個。
範例 2
此範例展示的情況未有要求 prs 或 prn 記錄。
假設你只有一個公用 IP 地址,而沒有使用 DNS TXT 記錄功能,但有數個為伺服器機器(192.168.50/24)專用的子網絡。
如要避免未經授權的內容快取,你可以這樣設定一個的記錄:
_aaplcache._tcp fss=192.168.50.1-192.168.50.254
只要用户端尋找的範圍內有最少一個可用的內容快取(共享或 iCloud),安裝 macOS 10.15、iOS 13、iPadOS 13、tvOS 13 或以上版本的用户端會專享該內容快取。
將 TXT 記錄加入 DNS 區域檔案
為你 DNS 伺服器上的本機網域加入一或多筆 TXT 記錄到區域檔案中。將 DNS TXT 記錄加入區域:
具有網域的授權性
符合網絡用户端的預設搜尋網域
例如,如你的組織為你本身的網域提供 DNS 服務,且為 example.com 作為主機名稱的授權來源,你便會將快取 TXT 記錄置於 example.com 區域檔案中。
重要事項:如你並未為你的網域託管授權性 DNS 服務,你便無法自己加入 TXT 記錄。請與 DNS 提供者協調,讓他們加入所提供的 TXT 記錄。
如你使用 BIND9 DNS,請複製產生的 TXT 記錄,並將其貼入你的 DNS 區域檔案。
對於 Linux 上的 BIND9-based DNS,此檔案位於 /etc/bind/
目錄,而區域檔案名稱已在 /etc/bind/named.conf
中定義(很可能是「db.example.com」)。
如果你使用 Windows DNS,請執行下列其中一項操作:
如你使用內容快取服務產生 TXT 記錄:以你網絡的 DNS 區域名稱取代產生的命令中之 ZoneName 變數,然後在你的 Windows DNS 電腦上執行命令。
如你手動製作 DNS TXT 記錄:使用 Windows 伺服器管理工具來手動輸入 TXT 記錄資料。