Что именно требуется для того, чтобы Airplay работала через VLAN? [закрыто]

Кажется, AirPlay работает из коробки, смутно говоря, только в локальной сети. Мне непонятно, почему, но похоже, что по крайней мере открытие полагается на трансляции. Википедия заявляет, что Airplay - это проприетарный протокол , который, вероятно, объясняет, почему единственная документация, которую я нашел, является неофициальной, например эта спецификация в github .

Итак, мои вопросы:

  1. Можно ли настроить сеть таким образом, чтобы Airplay работала через VLAN?
  2. Если да, то, что именно должно быть разрешено проходить между VLAN, чтобы сделать эту работу?
  3. Это плохая идея в производственной среде, учитывая недоступность официальной документации протокола?
17 голосов | спросил alx9r 21 Jpm1000000pmTue, 21 Jan 2014 23:51:01 +040014 2014, 23:51:01

6 ответов


7

В терминах «Airplay» есть две разные вещи.

Первое - об обнаружении сервисов, и именно так как устройства, способные принимать потоки Airplay, сообщают в сеть «Эй, я могу получить Airplay!». Это делается обычно через сервис Bonjour (по крайней мере, Apple называет его так) или DNS-SD . Он использует многоадресную рассылку, и это важно, если кто-то говорит вам, что «Airplay предназначен только для локальной локальной сети» или что-то еще. Сама потоковая передача является «обычной» одноадресной рассылкой UDP.

Теперь основная проблема заключается в том, как вы получаете информацию о приемнике Airplay потенциальным отправителям в другой сети. Существует два теоретических варианта:

  1. Вы можете перенаправлять многоадресную рассылку. Это может быть сложно, но есть и маршрутизаторы /брандмауэры. RTFM, как точно, но идея состоит в том, что вам нужно перенаправить многоадресный трафик с адресом назначения 224.0.0.251 в другую сеть, и вам нужно сделать это без уменьшения TTL.

  2. Другой вариант - использовать одноадресную DNS-SD. Вы можете использовать обычный DNS, чтобы объявить ту же самую информацию, которая обычно распределяется автоматически через многоадресную DNS-SD, и вы можете использовать небольшую помощь от утилиты dns-sd (1) на вашем MacOSX, чтобы получить информацию о том, что именно записать в ваш файл зоны DNS , Выполните эту команду в локальной сети с помощью ресивера Airplay, и это даст вам всю необходимую информацию:

    $ dns-sd -Z _airplay._tcp
    Просмотр для _airplay._tcp
    ...
    
  3. Существуют также прокси-серверы DNS-SD (например, avahi может использоваться как таковой).

Теперь я сказал «теоретически», потому что я не тестировал его и все, что вы делаете с протоколами, пересылкой и т. д., МОЖЕТ быть некоторые препятствия, не зависящие от вас - это Apple в конце концов. Вы можете правильно получить всю информацию потенциальному отправителю, но iOS /MacOSX все равно может отклонить его, потому что по какой-то причине он не нравится и т. Д.

Существует еще одна (опять же теоретическая, хотя;) грубая сила - создать запись DNS-SD для вашего адреса маршрутизатора в качестве приемника Airplay для сети с отправителями Airplay и переадресацией (NAT) потока UDP к реальному приемнику Airplay , Но даже с этим есть некоторые возможности (для инженеров Apple) сломать его.

Продолжайте, проверьте и сообщите нам о ваших результатах.

ответил Thom 22 Jam1000000amWed, 22 Jan 2014 01:27:27 +040014 2014, 01:27:27
5

Это обычная проблема в образовательной среде. Apple сделала отличную работу по продаже iPads и Mac для студентов /сотрудников, и они хотят использовать функциональность Airplay /Airprint /other Bonjour. Однако, как вы указали, эти функции основаны на одном широковещательном домене для обнаружения службы. Корпоративные /образовательные сети просто не структурированы таким образом.

Проблема настолько распространена, что многие ИТ-сотрудники образовательного учреждения собрались несколько лет назад, и просил Apple исправить Bonjour , чтобы работать лучше в этих средах.


Для непосредственного решения ваших вопросов обычно требуется очень специализированная конфигурация для выполнения услуг Airplay в вашей сети. И конкретная конфигурация будет в значительной степени зависеть от вашего текущего беспроводного решения (Cisco, Aerohive, Ubiquity и т. Д.). В общем, если вы ищете своего поставщика беспроводной связи и Bonjour, вы должны найти документацию, чтобы хотя бы указать вам в правильном направлении.

У меня был смешанный успех при развертывании шлюза Avahi Bonjour от Cisco решение , и не рекомендовал бы изучать его, если вам не обязательно.

Суть в том, что, как вы указали в своем третьем вопросе, вы всегда будете по милости Apple, потому что это закрытая, проприетарная, недокументированная служба *, предназначенная для домашних сетей. Поэтому, если Apple не решит изменить это, я бы не стал реализовывать его в сети предприятия, где это возможно.

* Исходный код для mDNSResponder является открытым, незапатентованным и доступен под лицензией Apache. Тем не менее, реализации Apple этого внутреннего для их iDevices и MacOS находятся вне вашего контроля и могут меняться в любое время.

ответил Brett Lykins 22 Jam1000000amWed, 22 Jan 2014 06:36:53 +040014 2014, 06:36:53
4

Avahi может помочь вам здесь. Есть много вариантов, но этот должен получить трафик через подсети. Вы должны иметь возможность получить его на поле ddwrt или использовать интерфейсы Raspberry Pi и dot1q.

enable-reflector = принимает логическое значение («да» или «нет»). Если установлено значение
       «да» avahi-daemon будет отражать входящие запросы mDNS ко всем локальным
       сетевых интерфейсов, что позволяет клиентам просматривать mDNS /DNS-SD
       услуги во всех сетях, подключенных к шлюзу. Шлюз
       несколько интеллектуальный и должен работать со всеми видами трафика mDNS,
       хотя некоторые функции теряются (в частности, бит ответа одноадресной передачи,
       который редко используется в любом случае). Не забудьте запустить несколько отражателей
       между теми же сетями, это может заставить их играть в Ping Pong с
       mDNS-пакеты. По умолчанию «нет».

 reflect-ipv = принимает логическое значение («да» или «нет»). Если установлено «да» и
       включен разрешающий рефлектор, avahi-daemon будет перенаправлять mDNS-трафик
       между IPv4 и IPv6, что обычно не рекомендуется. По умолчанию
       «Нет».
ответил user4095 29 Jpm1000000pmWed, 29 Jan 2014 17:23:56 +040014 2014, 17:23:56
3

Это не работает, потому что это широковещательная технология ( multicast ). (см. также: Bonjour). Пересечение широковещательного домена (т. е. VLAN) требует прокси. Я не человек Mac, но я уже видел такую ​​настройку прокси-сервера, поэтому iDevices мог добраться до принтера, где беспроводные и проводные были разными. Я не помню используемую программу, но она не была бесплатной.

ответил Ricky Beam 22 Jam1000000amWed, 22 Jan 2014 00:09:26 +040014 2014, 00:09:26
1

Airplay перемещается по IP, поэтому применяется обычная маршрутизация. Вам нужен маршрутизатор для маршрутизации трафика из одной VLAN в другую. Однако, если вы не начнете возиться с Multicast, Bonjour останется в локальной VLAN.

Это плохая идея? Это зависит ;-). Вы должны рассказать нам гораздо больше о своей производственной среде, чтобы получить обоснованное предположение.

ответил Ron Trunk 22 Jam1000000amWed, 22 Jan 2014 00:07:15 +040014 2014, 00:07:15
0

Как отмечали другие, существует бесплатное решение с открытым исходным кодом под названием Avahi ( http: //www.avahi.org ), которые могут работать как прокси-сервер mDNS /Bonjour. Машина, на которой выполняется это программное обеспечение, должна иметь сетевые интерфейсы для каждой VLAN /подсети, которую вы хотели бы рекламировать в службах mDNS. Тем не менее, для фактических служб необходимо включить межсетевую маршрутизацию через VLAN или разрешить соединения TCP /UDP с устройством, поддерживающим mDNS, в ваших списках доступа или брандмауэре. Другие варианты включают Cisco или Ubiquiti wifi-контроллеры, которые также могут служить прокси-серверами mDNS, или если вы используете Mac, вы можете создать прокси для каждой службы ( https://kb.acronis.com/sites/default/files/content/2013/01/39490/wanbonjour_1.pdf ). Проблема с этим последним решением заключается в том, что вам необходимо создать прокси для каждой отдельной службы, и вам придется переделывать ее каждый раз, когда машина перезагружается.

ответил Eric 23 WedEurope/Moscow2015-12-23T21:48:23+03:00Europe/Moscow12bEurope/MoscowWed, 23 Dec 2015 21:48:23 +0300 2015, 21:48:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132