Обнаружение кэшей контента при использовании нескольких общедоступных IP‑адресов на Mac
Если для подключения к интернету Ваша сеть использует несколько общедоступных IP-адресов, т. е. адрес кэша контента может отличаться от адреса, используемого клиентом для обнаружения, Вам нужно предоставить список этих адресов кэшу контента и клиентам. Эти списки используются для взаимного сопоставления запросов на регистрацию и обнаружение, включающих несколько общедоступных IP-адресов.
Чтобы избежать ручной настройки клиентов, служба кэширования контента публикует информацию об общедоступных IP-адресах для клиентов в сети. Для публикации используются записи TXT DNS. Запись TXT должна быть опубликована в поисковом домене DNS по умолчанию, который используется клиентами.
В macOS 10.15 и новее также можно указать доверенные локальные IP-адреса, чтобы уменьшить влияние других кэшей контента в Вашей сети. Если в записи TXT не указаны доверенные локальные IP-адреса, то все клиенты будут использовать любой доступный кэш контента.
Данные для записи TXT с диапазонами общедоступных IP-адресов могут быть сгенерированы автоматически или созданы вручную. В любом случае Вам потребуется отредактировать запись DNS или предоставить настройки поставщику DNS для создания или редактирования записи TXT в файле зоны. Записи TXT с доверенными локальными IP-адресами нельзя сгенерировать автоматически: их необходимо создать вручную.
Примечание. Эти записи необходимы только для Вашей внутренней сети. Внешний сервер DNS не нуждается в дополнительной записи.
Настройка клиентов кэширования контента для поддержки нескольких IP‑адресов
На Mac выберите меню Apple > «Системные настройки», нажмите «Общий доступ», затем выберите «Кэширование контента».
Открыть панель «Кэширование контента» в настройках общего доступа
Удерживая клавишу Option, нажмите «Дополнительные параметры».
Нажмите «Клиенты».
Нажмите раскрывающееся меню «Мои локальные сети», затем выберите «используют общедоступные пользовательские IP-адреса».
Нажмите кнопку «Добавить» и укажите диапазон общедоступных IP-адресов.
Повторите процедуру для дополнительных диапазонов IP-адресов, которые Вы хотите ввести.
Создайте текстовую запись DNS с описанием указанного Вами общедоступного IP-адреса.
Можно сгенерировать текстовую запись, используя службу кэширования контента, или создать ее вручную (формат описан ниже). Для генерирования текстовой записи:
Нажмите кнопку «Конфигурация DNS».
Выберите тип сервера DNS (BIND или Windows).
Скопируйте созданную текстовую запись и вставьте ее в текстовый файл для последующего использования (при ее добавлении в файл зоны DNS).
Нажмите «Готово».
Завершив настройку, нажмите «OK».
Добавление текстовых записей в файл авторитетной зоны DNS для домена.
Формат записи TXT DNS
Синтаксис для указания записей TXT и не-ASCII символы в записях TXT для Вашего сервера DNS будут отличаться. Приведенные здесь примеры предназначены только для иллюстрации.
Записи DNS для кэширования контента имеют такой же формат, как у записей TXT DNS-SD (пары ключ-значение):
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 и не-ASCII символы в записях TXT для Вашего сервера DNS могут отличаться. Некоторые серверы не требуют использования байта длины в начале (в примерах это \x2a, \x12, \x2b, \x0e и \x0e, соответственно), поскольку они добавляют его автоматически.
Пример 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
Пока работает хотя бы один из трех кэшей контента, клиенты под управлением macOS 10.15, iOS 13, iPadOS 13, tvOS 13 или новее смогут использовать только их для кэширования общего контента.
Если все три сервера недоступны, клиенты смогут использовать любой доступный кэш для кэширования общего контента.
Пока работает кэш 10.2.0.30, клиенты под управлением macOS 10.15, iOS 13, iPadOS 13, tvOS 13 или новее смогут использовать только его для кэширования контента из iCloud. Если он недоступен, клиенты смогут использовать любой доступный кэш для кэширования контента из 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
Добавьте одну или несколько записей TXT в файл зоны для Вашего локального домена на Вашем сервере DNS. Добавьте запись TXT DNS в зону, которая:
является авторитетной для домена;
совпадает с поисковым доменом по умолчанию для сетевых клиентов.
Например, если Ваша организация предоставляет службу DNS для Вашего собственного домена и является авторитетным источником имен узлов для example.com, Вам необходимо поместить запись TXT кэширования в файл зоны example.com.
Важно! Если Вы не предоставляете службу DNS, которая является авторитетной для Вашего домена, Вы не можете самостоятельно добавить запись TXT. Попросите поставщика DNS добавить предоставленную Вами запись TXT.
Если Вы используете DNS BIND9, скопируйте созданную запись TXT и вставьте ее в файл зоны DNS.
Для DNS BIND9 в Linux этот файл находится в каталоге /etc/bind/
, а имя файла зоны задается в /etc/bind/named.conf
(скорее всего, это «db.example.com».).
Если Вы используете DNS Windows, выполните одно из следующих действий:
Если Вы создали текстовую запись, используя службу кэширования содержимого: Вместо переменной ZoneName в созданной команде вставьте имя зоны DNS в своей сети, затем запустите эту команду на компьютере DNS Windows.
Если Вы создали текстовую запись DNS вручную: Введите информацию из записи TXT вручную, используя инструменты администрирования Windows Server.