Włączanie wykrywania magazynów nadrzędnych podczas korzystania z wielu publicznych adresów IP na Macu
Jeśli Twoja 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 adresów. Listy te są używane do krzyżowego dopasowywania żądań wykrywania i rejestracji w przypadku używania wielu publicznych adresów IP.
Aby uniknąć konieczności ręcznej konfiguracji klientów, magazyn zawartości używa rekordów TXT DNS do publikowania publicznych adresów IP dla klientów w sieci lokalnej. 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 zostaną zadeklarowane preferowane lokalne adresy IP, wszystkie klienty będą używać 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.
Konfigurowanie klientów magazynu zawartości do obsługi wielu adresów IP
Wybierz na Macu polecenie menu Apple > Preferencje systemowe, kliknij w Udostępnianie, a następnie zaznacz Magazyn zawartości.
Otwórz panel Magazyn zawartości w preferencjach udostępniania
Naciśnij i przytrzymaj klawisz Option, a następnie kliknij w Opcje zaawansowane.
Kliknij w Klienty.
Kliknij w menu podręczne Moje sieci lokalne, a następnie wybierz „używaj własnych publicznych adresów IP”.
Kliknij w przycisk dodawania , a następnie wprowadź zakres publicznych adresów IP.
Powtórz te czynności dla każdego zakresu adresów IP, który chcesz wprowadzić.
Utwórz rekord tekstowy DNS opisujący wprowadzone publiczne adresy IP.
Możesz wygenerować rekord tekstowy przy użyciu magazynu zawartości lub utworzyć go ręcznie (format opisany jest poniżej). Aby wygenerować rekord tekstowy:
Kliknij w przycisk Konfiguracja DNS.
Wybierz typ serwera DNS (BIND lub Windows).
Skopiuj wygenerowany rekord tekstowy, a następnie wklej go do pliku tekstowego, aby móc użyć go później (podczas dodawania go do pliku strefy DNS).
Kliknij w Gotowe.
Gdy skończysz konfigurowanie, kliknij w OK.
Dodaj rekord tekstowy do autorytatywnego pliku strefy DNS dla danej domeny.
Format rekordu TXT DNS
Składnia rekordów TXT oraz obsługa znaków spoza zestawu ASCII różni się 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.
Akceptowane są zarówno adresy IPv4, jak i adresy IPv6, ale obsługiwany jest tylko protokół IPv4.
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 — 93.184.216.119. 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 "\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"
Te klucze używają różnych formatów zakresów adresów IP podawanych jako wartość:
prs lub fss: Wartość klucza prs lub fss 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 lub fsn 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.
0x16 oznacza pojedynczy adres IPv6.
0x24 oznacza początek i koniec zakresu adresów IPv4.
0x26 oznacza początek i koniec zakresu adresów IPv6.
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, a 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 "\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"
Składnia rekordów TXT oraz obsługa znaków spoza zestawu ASCII może różnić się w zależności od serwera DNS. Niektóre serwery nie wymagają podania początkowego bajtu oznaczającego długość (czyli odpowiednio \x2a, \x12, \x2b, \x0e oraz \x0e w powyższych przykładach), ponieważ dołączają go automatycznie.
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 działa, klienty z systemem macOS 10.15, iOS 13, iPadOS 13, tvOS 13 lub nowszym szukające zawartości udostępnianej będą używały tylko tych magazynów zawartości.
Jeśli wszystkie trzy serwery będą niedostępne, klienty szukające magazynów zawartości będą używać dowolnego dostępnego magazynu.
Gdy serwer 10.2.0.30 działa, klienty z systemem macOS 10.15, iOS 13, iPadOS 13, tvOS 13 lub nowszym szukające zawartości iCloud będą używały tylko 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 macOS 10.14 i starszym lub iOS 12 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 macOS 10.15, iOS 13 i iPadOS 13, tvOS 13 lub nowszym będą używały tylko tego magazynu zawartości.
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 example.com, rekord TXT magazynu zawartości należy umieścić w pliku strefy serwera example.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 /etc/bind/
, a nazwa pliku strefy zdefiniowana jest w pliku /etc/bind/named.conf
(najczęściej jest to „db.example.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.