Używanie rekordów DNS TXT z pamięcią podręczną treści dla urządzeń Apple
Dodawanie rekordów TXT do pliku strefy DNS
Dodaj jeden lub więcej rekordów TXT do pliku strefy w swojej domenie lokalnej na swoim serwerze DNS. Rekord TXT DNS dodany do strefy musi spełniać poniższe warunki:
Jest autorytatywny dla domeny
Odpowiada domyślnej domenie wyszukiwania klientów sieci
Na przykład, jeśli Twoja organizacja zapewnia serwer DNS obsługujący Twoją domenę i będący autorytatywnym źródłem nazw hosta dla domeny betterbag.com, rekord TXT magazynu zawartości należy umieścić w pliku strefy serwera betterbag.com.
Ważne: Jeśli nie hostujesz autorytatywnej usługi DNS dla swojej domeny, nie możesz dodać samemu rekordu TXT. Skontaktuj się z dostawcą usługi DNS, aby dodał on udostępniony przez Ciebie rekord TXT.
Jeśli używasz serwera DNS typu BIND9, skopiuj wygenerowany rekord TXT i wklej go do pliku strefy DNS.
W przypadku serwera DNS BIND9 w systemie Linux, plik ten znajduje się w katalogu /private/etc/bind/, a nazwa pliku strefy zdefiniowana jest w pliku /private/etc/bind/named.conf (na przykład „db.betterbag.com”).
Jeśli używasz serwera DNS w systemie Windows, wykonaj jedną z poniższych czynności:
Jeśli rekord tekstowy wygenerowany został przy użyciu magazynu zawartości: Zastąp zmienną ZoneName w wygenerowanym poleceniu nazwą strefy DNS swojej sieci, a następnie uruchom to polecenie na obsługującym DNS komputerze z systemem Windows.
Jeśli rekord tekstowy wygenerowany został ręcznie: Wprowadź dane rekordu TXT ręcznie, używając narzędzi administrowania serwerem Windows.
Używanie rekordów DNS TXT do publikowania zawartości podczas korzystania z wielu publicznych adresów IP
Jeśli sieć używa wielu publicznych adresów IP do łączenia z Internetem, może to spowodować, że magazyn zawartości zarejestruje użycie innego adresu, niż adres używany przez klienta do wykrywania, należy więc podać magazynom zawartości i klientom listę tych publicznych adresów IP. Apple używa tych list do krzyżowego dopasowywania żądań rejestracji i wykrywania w przypadku używania wielu publicznych adresów IP.
Aby uniknąć konieczności ręcznej konfiguracji klientów, magazyn zawartości publikuje publiczne adresy IP klientów w sieci przy użyciu rekordów TXT zawierających adresy DNS. Rekord TXT musi zostać opublikowany w domyślnej domenie przeszukiwania DNS, używanej przez klientów.
W systemie macOS 10.15 lub nowszym można także podać preferowane lokalne adresy IP, aby ograniczyć wpływ innych magazynów zawartości na sieć lokalną. Jeśli w rekordzie TXT nie są zadeklarowane preferowane lokalne adresy IP, wszystkie klienty używają dowolnego dostępnego magazynu zawartości.
Prawidłowe dane rekordu TXT dotyczące zakresów publicznych adresów IP mogą zostać wygenerowane automatycznie lub ręcznie. W obu przypadkach należy dokonać edycji rekordu DNS lub przekazać ustawienia dostawcy DNS, aby utworzył lub zmodyfikował rekord TXT w pliku strefy. Zwróć uwagę, że automatyczne generowanie rekordów TXT z preferowanymi lokalnymi adresami IP nie jest możliwe — te rekordy należy utworzyć ręcznie.
Uwaga: Rekordy te są wymagane tylko w sieci wewnętrznej. Zewnętrzne serwery DNS nie wymagają dodatkowego rekordu.
Format rekordu TXT DNS
Składnia rekordów TXT oraz obsługa znaków spoza zestawu ASCII może się różnić w zależności od serwera DNS. Przedstawione przykłady mają jedynie charakter poglądowy.
Rekordy tekstowe DNS magazynu zawartości mają taki sam format, jak rekordy tekstowe DNS‑SD (pary klucz‑wartość):
name._tcp 10800 IN TXT "[prs|prn|fss|fsn]=addressRanges"
Użyj kluczy prs
i prn
do zdefiniowania zakresów publicznych adresów IP. Użyj kluczy fss
i fsn
do zdefiniowania zakresów lokalnych adresów IP preferowanych magazynów zawartości.
Każdy z poniższych przykładów definiuje ten sam zestaw dwóch zakresów adresów IP: zakres rozpoczynający się od 17.53.22.2 i kończący na 17.53.22.254 oraz zakres zawierający tylko jeden adres IP, 17.53.23.1. Różnica między nimi polega na tym, że w pierwszym przykładzie używany jest klucz prs
, natomiast w drugim przykładzie używany jest klucz 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"
Te klucze używają różnych formatów zakresów adresów IP podawanych jako wartość:
prs lub fss: Wartość klucza
prs
lubfss
to sekwencja zakresów adresów IP oddzielonych przecinkiem w formacie prezentacji (notacja kropkowa ASCII). Składnia ta pozwala na łatwą konfigurację. Zakres złożony jest z pojedynczego adresu IP lub dwóch adresów IP oddzielonych dywizem.prs lub fss: Wartość klucza
prn
lubfsn
to sekwencja złączonych zakresów adresów IP w formacie binarnym (sieciowa kolejność bajtów). Składnia ta przeznaczona jest dla sekwencji zakresów, które są zbyt długie dla rekordu DNS, jeśli przedstawione są w formacie prezentacji. Każdy zakres należący do sekwencji poprzedzony jest bajtem definiującym typ zakresu:0x14 oznacza pojedynczy adres IPv4.
0x24 oznacza początek i koniec zakresu adresów IPv4.
Możesz łączyć ze sobą wiele rekordów. W takiej sytuacji nazwij pierwszy rekord _aaplcache._tcp
, a kolejne rekordy od _aaplcache1._tcp
do _aaplcache24._tcp
, nie przekraczając 25 połączonych rekordów.
W celu zachowania zgodności z klientami używającymi systemu macOS 10.14 lub starszego, rekordy używające kluczy prs
lub prn
należy umieścić przed rekordami używającymi kluczy fss
lub fsn
.
Połącz rekordy w łańcuch, umieszczając znacznik kontynuacji na wszystkich rekordach TXT z wyjątkiem ostatniego.
Składni prs
i prn
nie można mieszać w rekordach w tym samym łańcuchu. W przypadku składni prs
dodaj „,more
” na końcu wartości rekordu. W przypadku składni prn
dodaj „+
” (0x2b) na końcu wartości rekordu. Pierwszy rekord pozbawiony tego znacznika kontynuacji stanowi zakończenie łańcucha.
Rekordy połączone w łańcuch rozpoznawane są jednocześnie w pakietach po pięć: najpierw rozpoznawane są równolegle adresy _aaplcache._tcp
oraz od _aaplcache1._tcp
do _aaplcache4._tcp
. Jeśli kończą się one znacznikami kontynuacji, rozpoznawane są następnie adresy od _aaplcache5._tcp
do _aaplcache9._tcp
— i tak dalej.
Oto przykład trzech łańcuchów rekordów:
_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"
Przykład 1
W tym przykładzie przedstawiona jest sytuacja, w której wymagany jest zarówno rekord prs
lub prn
, jak i rekord fss
lub fsn
.
Załóżmy, że masz jeden rekord DNS TXT o nazwie „_aaplcache._tcp
” zawierający wartość „prs=203.0.113.10-203.0.113.19
” oraz trzy magazyny zawartości wdrożone pod adresami 10.0.0.30, 10.1.0.30 oraz 10.2.0.30. Pierwsze dwa obsługują tylko wspólną zawartość, natomiast ostatni obsługuje wspólną zawartość oraz zawartość z iCloud.
Aby uniemożliwić klientom używanie nieautoryzowanego magazynu zawartości, możesz dodać „,more
” do tego rekordu oraz utworzyć drugi rekord:
_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
Jeśli przynajmniej jeden z tych trzech magazynów zawartości używa tej metody, urządzenia z systemem iOS 13, iPadOS 13.1, macOS 10.15 i tvOS 13 lub nowszym szukające zawartości udostępnianej używają wyłącznie tych magazynów zawartości. Jeśli wszystkie trzy są niedostępne, klienty szukające magazynów zawartości mogą używać dowolnego dostępnego magazynu.
Jeśli serwer 10.2.0.30 używa tej metody, klienty z systemem iOS 13, iPadOS 13.1, macOS 10.15 oraz tvOS 13 lub nowszym szukające zawartości iCloud używają wyłącznie jego. Jeśli ten serwer jest poza siecią, klienty szukające zawartości iCloud będą używać dowolnego dostępnego magazynu zawartości.
Urządzenia z systemem iOS 12 i starszym lub macOS 10.14 i starszym będą używały dowolnego dostępnego magazynu zawartości — nie tylko tych trzech.
Przykład 2
W tym przykładzie przedstawiona jest sytuacja, w której rekord prs
lub prn
nie jest wymagany.
Załóżmy, że masz jeden publiczny adres IP i nie używasz rekordu DNS TXT, ale masz kilka magazynów zawartości w podsieci zarezerwowanej dla serwerów (192.168.50/24).
Aby zapobiec korzystaniu z nieautoryzowanych magazynów zawartości, możesz zdefiniować następujący rekord:
_aaplcache._tcp fss=192.168.50.1-192.168.50.254
Jeśli dostępny jest przynajmniej jeden magazyn zawartości w danym zakresie (zgodnie z typem wyszukiwanym przez klienta — zawartość wspólna/zawartość z iCloud), klienty z systemem iOS 13, iPadOS 13.1, macOS 10.15 i tvOS 13 lub nowszym używają wyłącznie tego magazynu zawartości.