mDNS Repeater
mDNS Repeater (Multicast DNS Repeater) позволяет ретранслировать Multicast DNS пакеты между различными сегментами сети (VLAN), обеспечивая обнаружение устройств и сервисов через границы подсетей.
Обзор
mDNS (Multicast DNS, также известный как Avahi, Bonjour, Zeroconf) - это протокол для обнаружения устройств и сервисов в локальной сети без необходимости настройки DNS сервера. mDNS использует multicast адрес 224.0.0.251 (IPv4) и ff02::fb (IPv6), и по умолчанию пакеты не покидают локальную подсеть.
Проблема: В сегментированных сетях с множественными VLAN устройства в одном VLAN не могут обнаружить сервисы в другом VLAN.
Решение: mDNS Repeater ретранслирует mDNS пакеты между указанными интерфейсами, сохраняя оригинальные адреса источников.
Типичные сценарии использования
Home Automation (Умный дом):
- Apple HomeKit устройства в IoT VLAN доступны из основной сети
- Интеграция с Home Assistant, Homebridge
- Управление умным освещением, климатом, камерами
Медиа стриминг:
- Apple AirPlay (AirPlay 2) для трансляции аудио/видео
- Google Chromecast обнаружение между VLAN
- Spotify Connect, DLNA/UPnP устройства
Сетевые сервисы:
- Обнаружение сетевых принтеров (AirPrint, IPP)
- Сканеры и многофункциональные устройства
- NAS (Synology, QNAP) в отдельном VLAN
Корпоративные сети:
- Общие принтеры для разных отделов
- Беспроводные презентационные системы (Apple TV, Miracast)
- Конференц-залы с AirPlay/Chromecast
Как работает mDNS Repeater
- Устройство в VLAN A отправляет mDNS query multicast на 224.0.0.251
- VyOS mDNS repeater перехватывает пакет на интерфейсе VLAN A
- Repeater ретранслирует пакет (без изменения источника) на другие настроенные интерфейсы
- Устройства в VLAN B получают query и отвечают
- Repeater ретранслирует ответы обратно в VLAN A
- Устройство в VLAN A обнаруживает сервис в VLAN B
Важно: mDNS Repeater работает на канальном уровне и не изменяет IP-адреса источников. Это означает, что между VLAN должна быть настроена маршрутизация.
Технические детали
Multicast адреса:
- IPv4:
224.0.0.251 - IPv6:
ff02::fb
UDP порт: 5353
Типы сервисов (примеры):
_airplay._tcp- Apple AirPlay_homekit._tcp- Apple HomeKit_googlecast._tcp- Google Chromecast_ipp._tcp- Internet Printing Protocol_printer._tcp- Принтеры_http._tcp- HTTP сервисы_ssh._tcp- SSH сервисы_smb._tcp- Samba/Windows shares_afpovertcp._tcp- Apple File Protocol
Базовая конфигурация
Минимальная настройка
Для работы mDNS repeater необходимо указать минимум 2 интерфейса:
set service mdns repeater interface eth1
set service mdns repeater interface eth2
commit
saveЭта конфигурация ретранслирует все mDNS пакеты между eth1 и eth2.
Структура конфигурации
service mdns repeater
├── disable # Отключить сервис
├── interface <interface> # Интерфейс для repeater (минимум 2)
├── ip-version <ipv4|ipv6|both> # Версия IP протокола
├── allow-service <service> # Ограничить сервисы (опционально)
└── browse-domain <domain> # Дополнительные домены (опционально)Настройка интерфейсов
Указание интерфейсов
# Основная сеть
set service mdns repeater interface eth0
# VLAN 10 - Гостевая сеть
set service mdns repeater interface eth1.10
# VLAN 20 - IoT устройства
set service mdns repeater interface eth1.20
# VLAN 30 - Мультимедиа
set service mdns repeater interface eth1.30
commit
saveВажно: Можно указать любое количество интерфейсов. mDNS пакеты будут ретранслироваться между всеми указанными интерфейсами.
Поддерживаемые интерфейсы
mDNS repeater работает на следующих типах интерфейсов:
- Физические Ethernet:
eth0,eth1 - VLAN интерфейсы:
eth1.10,eth1.100 - Bonding интерфейсы:
bond0 - Bridge интерфейсы:
br0
Версия IP протокола
Выбор IPv4, IPv6 или оба
По умолчанию mDNS repeater работает для обеих версий IP. Можно ограничить:
# Только IPv4 mDNS
set service mdns repeater ip-version ipv4
# Только IPv6 mDNS
set service mdns repeater ip-version ipv6
# IPv4 и IPv6 (по умолчанию)
set service mdns repeater ip-version both
commit
saveРекомендация: Используйте both если в сети используется dual-stack (IPv4 + IPv6).
Ограничение сервисов
Allow-service фильтрация
Для безопасности и производительности можно ограничить ретрансляцию только нужными сервисами:
# Разрешить только AirPlay
set service mdns repeater allow-service '_airplay._tcp'
# Разрешить AirPlay и HomeKit
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_homekit._tcp'
# Разрешить принтеры
set service mdns repeater allow-service '_ipp._tcp'
set service mdns repeater allow-service '_printer._tcp'
commit
saveБез allow-service: Все mDNS сервисы ретранслируются (по умолчанию).
С allow-service: Только указанные сервисы ретранслируются.
Популярные сервисы
# Apple экосистема
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_raop._tcp'
set service mdns repeater allow-service '_airplay-audio._tcp'
# Google/Chromecast
set service mdns repeater allow-service '_googlecast._tcp'
set service mdns repeater allow-service '_googlezone._tcp'
# Печать
set service mdns repeater allow-service '_ipp._tcp'
set service mdns repeater allow-service '_ipps._tcp'
set service mdns repeater allow-service '_printer._tcp'
set service mdns repeater allow-service '_pdl-datastream._tcp'
# Файловые сервисы
set service mdns repeater allow-service '_smb._tcp'
set service mdns repeater allow-service '_afpovertcp._tcp'
set service mdns repeater allow-service '_nfs._tcp'
# Медиа серверы
set service mdns repeater allow-service '_http._tcp'
set service mdns repeater allow-service '_spotify-connect._tcp'
set service mdns repeater allow-service '_daap._tcp'
commit
saveДополнительные домены
Browse-domain
Некоторые устройства используют специфические домены для обнаружения:
# Стандартный mDNS домен .local уже включен
# Добавление дополнительных доменов (редко требуется)
set service mdns repeater browse-domain 'example.local'
commit
saveПримечание: В 99% случаев эта опция не требуется. По умолчанию используется .local.
Отключение сервиса
Временное отключение
Для отключения mDNS repeater без удаления конфигурации:
set service mdns repeater disable
commit
saveВключение обратно:
delete service mdns repeater disable
commit
saveПримеры конфигурации
Пример 1: Простая домашняя сеть
Topology:
Main Network (192.168.1.0/24) --- eth0
IoT Network (192.168.10.0/24) --- eth1.10Задача: Apple TV в основной сети должен обнаруживать HomeKit устройства в IoT VLAN.
Конфигурация:
# Интерфейсы для repeater
set service mdns repeater interface eth0
set service mdns repeater interface eth1.10
# Ограничить только Apple сервисами
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_raop._tcp'
commit
saveПример 2: Корпоративная сеть с принтерами
Topology:
Management VLAN 10 (10.10.10.0/24) --- eth1.10
IT VLAN 20 (10.10.20.0/24) --- eth1.20
Finance VLAN 30 (10.10.30.0/24) --- eth1.30
Printers VLAN 50 (10.10.50.0/24) --- eth1.50Задача: Все отделы должны видеть принтеры в VLAN 50.
Конфигурация:
# Все VLAN для принтеров
set service mdns repeater interface eth1.10
set service mdns repeater interface eth1.20
set service mdns repeater interface eth1.30
set service mdns repeater interface eth1.50
# Только печать
set service mdns repeater allow-service '_ipp._tcp'
set service mdns repeater allow-service '_ipps._tcp'
set service mdns repeater allow-service '_printer._tcp'
commit
saveПример 3: Медиа сеть (AirPlay + Chromecast)
Topology:
Living Room VLAN 100 (192.168.100.0/24) --- eth1.100
Bedroom VLAN 101 (192.168.101.0/24) --- eth1.101
Office VLAN 102 (192.168.102.0/24) --- eth1.102Задача: Все устройства должны видеть Apple TV и Chromecast в любой комнате.
Конфигурация:
# Все VLAN для медиа
set service mdns repeater interface eth1.100
set service mdns repeater interface eth1.101
set service mdns repeater interface eth1.102
# AirPlay и Chromecast
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_raop._tcp'
set service mdns repeater allow-service '_googlecast._tcp'
set service mdns repeater allow-service '_spotify-connect._tcp'
commit
saveПример 4: Home Assistant + HomeKit
Topology:
Main Network (192.168.1.0/24) --- eth0
Home Assistant VLAN 20 (192.168.20.0/24) --- eth1.20
IoT VLAN 30 (192.168.30.0/24) --- eth1.30Задача: Home Assistant в VLAN 20 управляет IoT в VLAN 30, iPhone в Main Network видит все HomeKit устройства.
Конфигурация:
# Все три сети
set service mdns repeater interface eth0
set service mdns repeater interface eth1.20
set service mdns repeater interface eth1.30
# HomeKit и IoT протоколы
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_hap._tcp'
set service mdns repeater allow-service '_http._tcp'
commit
saveПример 5: Полная конфигурация без ограничений
Конфигурация:
# Все VLAN участвуют в mDNS discovery
set service mdns repeater interface eth0
set service mdns repeater interface eth1.10
set service mdns repeater interface eth1.20
set service mdns repeater interface eth1.30
# Поддержка IPv4 и IPv6
set service mdns repeater ip-version both
# Без ограничений сервисов (все разрешено)
# (не устанавливаем allow-service)
commit
saveПример 6: Yandex Cloud конфигурация
Topology:
Public Subnet (10.128.0.0/24) --- eth0
Private Subnet 1 (10.128.1.0/24) --- eth1
Private Subnet 2 (10.128.2.0/24) --- eth2Задача: Внутренние сервисы обнаруживаются через mDNS в приватных подсетях.
Конфигурация:
# Только приватные подсети (не включаем публичный eth0)
set service mdns repeater interface eth1
set service mdns repeater interface eth2
# Ограничить сервисы
set service mdns repeater allow-service '_http._tcp'
set service mdns repeater allow-service '_ssh._tcp'
set service mdns repeater allow-service '_prometheus-http._tcp'
commit
saveПример 7: VK Cloud multi-tenant конфигурация
Topology:
Tenant A VLAN 100 (172.16.100.0/24) --- eth1.100
Tenant A VLAN 101 (172.16.101.0/24) --- eth1.101
Tenant B VLAN 200 (172.16.200.0/24) --- eth1.200
Tenant B VLAN 201 (172.16.201.0/24) --- eth1.201Задача: mDNS только внутри tenant (изоляция между Tenant A и B).
Конфигурация для Tenant A:
# Только VLAN Tenant A
set service mdns repeater interface eth1.100
set service mdns repeater interface eth1.101
commit
saveОтдельный VyOS для Tenant B или использование VRF для изоляции.
Firewall правила
Разрешение mDNS трафика
mDNS использует UDP порт 5353 и multicast адрес 224.0.0.251. Необходимо разрешить этот трафик в firewall.
VyOS 1.4 (Sagitta) - iptables:
# Разрешить mDNS multicast в INPUT
set firewall name WAN_LOCAL rule 100 action accept
set firewall name WAN_LOCAL rule 100 protocol udp
set firewall name WAN_LOCAL rule 100 destination port 5353
set firewall name WAN_LOCAL rule 100 destination address 224.0.0.251
# Разрешить в FORWARD (для ретрансляции между VLAN)
set firewall name LAN_FORWARD rule 100 action accept
set firewall name LAN_FORWARD rule 100 protocol udp
set firewall name LAN_FORWARD rule 100 destination port 5353
commit
saveVyOS 1.5 (Circinus) - nftables:
# Input chain
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 protocol udp
set firewall ipv4 input filter rule 100 destination port 5353
set firewall ipv4 input filter rule 100 destination address 224.0.0.251
# Forward chain
set firewall ipv4 forward filter rule 100 action accept
set firewall ipv4 forward filter rule 100 protocol udp
set firewall ipv4 forward filter rule 100 destination port 5353
commit
saveIPv6 mDNS (ff02::fb)
# VyOS 1.5 - IPv6
set firewall ipv6 input filter rule 110 action accept
set firewall ipv6 input filter rule 110 protocol udp
set firewall ipv6 input filter rule 110 destination port 5353
set firewall ipv6 input filter rule 110 destination address ff02::fb
set firewall ipv6 forward filter rule 110 action accept
set firewall ipv6 forward filter rule 110 protocol udp
set firewall ipv6 forward filter rule 110 destination port 5353
commit
saveБезопасность: Ограничение на интерфейсах
Блокируйте mDNS на WAN интерфейсе для безопасности:
# Блокировать mDNS на WAN
set firewall ipv4 input filter rule 90 action drop
set firewall ipv4 input filter rule 90 protocol udp
set firewall ipv4 input filter rule 90 destination port 5353
set firewall ipv4 input filter rule 90 inbound-interface name eth0
commit
saveОперационные команды
Перезапуск mDNS Repeater
restart mdns repeaterПросмотр логов
show log mdns repeaterReal-time мониторинг:
monitor log mdns repeaterПроверка конфигурации
show service mdns repeaterПример вывода:
service mdns repeater {
interface eth0
interface eth1.10
interface eth1.20
allow-service _airplay._tcp
allow-service _homekit._tcp
ip-version both
}Тестирование mDNS discovery
На клиенте (macOS):
# Обнаружение всех mDNS сервисов
dns-sd -B _services._dns-sd._udp .
# Обнаружение AirPlay устройств
dns-sd -B _airplay._tcp .
# Обнаружение принтеров
dns-sd -B _ipp._tcp .
# Обнаружение HomeKit устройств
dns-sd -B _homekit._tcp .На клиенте (Linux):
# Установка avahi-tools
sudo apt install avahi-utils
# Обнаружение всех сервисов
avahi-browse -a
# Обнаружение конкретного сервиса
avahi-browse _airplay._tcp
# Детальная информация
avahi-browse -a -v -rНа клиенте (Windows):
Используйте программы:
- Bonjour Browser
- Discovery - DNS-SD Browser
- VLC (Media → Open Network Stream → обнаружение)
Packet capture
Захват mDNS трафика для диагностики:
# Захват на интерфейсе
monitor traffic interface eth1.10 filter 'udp port 5353'
# Расширенный фильтр
monitor traffic interface eth0 filter 'host 224.0.0.251 and udp port 5353'Пример вывода mDNS пакета:
18:24:35.123456 IP 192.168.1.10.5353 > 224.0.0.251.5353: UDP, length 45
0x0000: 4500 0049 0000 4000 ff11 0000 c0a8 010a E..I..@.........
0x0010: e000 00fb 14e9 14e9 0035 0000 0000 0000 .........5......
0x0020: 0001 0000 0000 0000 075f 6169 7270 6c61 ........._airpla
0x0030: 7904 5f74 6370 056c 6f63 616c 0000 0c00 y._tcp.local....
0x0040: 0100 0011 9400 1400 ........Мониторинг и диагностика
Проверка работы repeater
# Проверка процесса
ps aux | grep avahi
# Статус systemd сервиса
systemctl status avahi-daemonЛоги
# Все логи mDNS repeater
show log | match mdns
# Последние 50 строк
show log | match mdns | tail 50
# Real-time мониторинг
monitor log | match mdnsПроверка multicast маршрутизации
# Просмотр multicast routes
show ip multicast route
# Интерфейсы с multicast
show ip multicast interfaceСтатистика интерфейсов
# Multicast пакеты
show interfaces ethernet eth0 statistics
# Подробная статистика
show interfaces detailУстранение неполадок
Проблема 1: Устройства не обнаруживаются
Диагностика:
# 1. Проверка конфигурации
show service mdns repeater
# 2. Проверка интерфейсов
show interfaces
# 3. Проверка firewall
show firewall ipv4 input filter
show firewall ipv4 forward filter
# 4. Packet capture
monitor traffic interface eth1.10 filter 'udp port 5353'Решение:
# Убедитесь что сервис не отключен
delete service mdns repeater disable
# Проверьте что указаны правильные интерфейсы
set service mdns repeater interface eth0
set service mdns repeater interface eth1.10
# Разрешите mDNS в firewall
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 protocol udp
set firewall ipv4 input filter rule 100 destination port 5353
set firewall ipv4 forward filter rule 100 action accept
set firewall ipv4 forward filter rule 100 protocol udp
set firewall ipv4 forward filter rule 100 destination port 5353
commit
save
# Перезапуск сервиса
restart mdns repeaterПроблема 2: Работает только в одном направлении
Причина: Неправильная маршрутизация или firewall блокирует обратный трафик.
Решение:
# Проверьте маршруты между VLAN
show ip route
# Убедитесь что есть маршруты для обеих подсетей
# Например:
# 192.168.1.0/24 via eth0
# 192.168.10.0/24 via eth1.10
# Проверьте FORWARD правила firewall
show firewall ipv4 forward filter
# Разрешите bidirectional трафик
set firewall ipv4 forward filter rule 100 action accept
set firewall ipv4 forward filter rule 100 protocol udp
set firewall ipv4 forward filter rule 100 destination port 5353
commit
saveПроблема 3: Некоторые сервисы не обнаруживаются
Причина: allow-service фильтр блокирует нужные сервисы.
Диагностика:
# Проверьте allow-service
show service mdns repeater
# Если есть allow-service, проверьте списокРешение:
# Добавьте нужный сервис
set service mdns repeater allow-service '_googlecast._tcp'
# Или удалите все ограничения для теста
delete service mdns repeater allow-service
commit
save
restart mdns repeaterПроблема 4: mDNS packet storm
Симптомы: Высокая загрузка CPU, большое количество mDNS пакетов в network.
Причина: Петля в конфигурации или несколько mDNS repeaters в одной сети.
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: НЕ используйте mDNS repeater в VRRP setup с несколькими активными VyOS роутерами в одной сети. Это создаст mDNS packet storm.
Решение:
# Временно отключите repeater
set service mdns repeater disable
commit
# Проверьте топологию:
# - Только один VyOS должен быть mDNS repeater в сегменте
# - Не должно быть петель в конфигурации интерфейсов
# Исправьте конфигурацию и включите обратно
delete service mdns repeater disable
commit
saveПроблема 5: IPv6 mDNS не работает
Диагностика:
# Проверьте ip-version
show service mdns repeater
# Проверьте IPv6 firewall
show firewall ipv6 input filter
show firewall ipv6 forward filterРешение:
# Установите ip-version both
set service mdns repeater ip-version both
# Разрешите IPv6 mDNS
set firewall ipv6 input filter rule 110 action accept
set firewall ipv6 input filter rule 110 protocol udp
set firewall ipv6 input filter rule 110 destination port 5353
set firewall ipv6 input filter rule 110 destination address ff02::fb
set firewall ipv6 forward filter rule 110 action accept
set firewall ipv6 forward filter rule 110 protocol udp
set firewall ipv6 forward filter rule 110 destination port 5353
commit
save
restart mdns repeaterПроблема 6: Apple AirPlay не работает
Особенность: AirPlay использует несколько сервисов одновременно.
Решение:
# Добавьте все AirPlay сервисы
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_raop._tcp'
set service mdns repeater allow-service '_airplay-audio._tcp'
commit
save
restart mdns repeaterТакже убедитесь что открыты дополнительные порты для AirPlay:
- TCP 7000 (AirPlay data)
- TCP 7100 (AirPlay mirroring)
- UDP 6001-6011 (AirPlay audio)
- UDP 47998-48000 (AirPlay control)
Проблема 7: HomeKit устройства недоступны
Решение:
# HomeKit сервисы
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_hap._tcp'
commit
save
restart mdns repeaterFirewall для HomeKit (дополнительно к mDNS):
- TCP 80 (HTTP)
- TCP 443 (HTTPS)
- TCP 8080 (альтернативный HTTP)
Проблема 8: Chromecast не обнаруживается
Решение:
# Chromecast сервисы
set service mdns repeater allow-service '_googlecast._tcp'
set service mdns repeater allow-service '_googlezone._tcp'
commit
save
restart mdns repeaterFirewall для Chromecast:
- TCP 8008-8009 (Chromecast HTTP)
- UDP 32768-61000 (Dynamic ports для streaming)
Лучшие практики
1. Минимальное количество интерфейсов
Указывайте только необходимые интерфейсы:
# Правильно
set service mdns repeater interface eth0
set service mdns repeater interface eth1.10
# Неправильно - слишком много VLAN
# (приводит к ненужному трафику)2. Используйте allow-service
Всегда ограничивайте сервисы для безопасности и производительности:
# Правильно - только нужные сервисы
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_homekit._tcp'
# Неправильно - все сервисы (по умолчанию)3. Не включайте WAN интерфейс
# Правильно - только LAN/VLAN
set service mdns repeater interface eth1
set service mdns repeater interface eth1.10
# Неправильно - включен WAN
# set service mdns repeater interface eth0 # WAN4. Firewall правила
Всегда настраивайте firewall для mDNS:
# Разрешить mDNS на LAN
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 protocol udp
set firewall ipv4 input filter rule 100 destination port 5353
set firewall ipv4 input filter rule 100 inbound-interface name eth1
# Блокировать mDNS на WAN
set firewall ipv4 input filter rule 90 action drop
set firewall ipv4 input filter rule 90 protocol udp
set firewall ipv4 input filter rule 90 destination port 5353
set firewall ipv4 input filter rule 90 inbound-interface name eth05. Избегайте VRRP + mDNS Repeater
НЕ используйте mDNS repeater на обоих VyOS в VRRP setup. Это создаст packet storm.
Правильно: Используйте mDNS repeater только на master роутере или на отдельном выделенном устройстве.
6. Мониторинг packet storm
Регулярно проверяйте логи на признаки packet storm:
monitor log mdns repeaterЕсли видите множественные повторяющиеся пакеты, проверьте топологию.
7. Документирование allow-service
Документируйте зачем нужен каждый сервис:
# AirPlay для конференц-залов
set service mdns repeater allow-service '_airplay._tcp'
# Принтеры для всех отделов
set service mdns repeater allow-service '_ipp._tcp'8. Тестирование после изменений
После каждого изменения конфигурации тестируйте работу:
# На macOS
dns-sd -B _airplay._tcp .
# На Linux
avahi-browse -a9. Резервное копирование конфигурации
show configuration service mdns repeater > /config/mdns-repeater-backup.txt10. Использование с NAT
Если используете NAT, убедитесь что mDNS трафик не NAT-ится:
# mDNS multicast не должен проходить NAT
# Настройте NAT exclude если необходимоСовместимость с VyOS версиями
VyOS 1.4 (Sagitta LTS)
mDNS repeater полностью поддерживается.
Базовые команды:
set service mdns repeater interface <interface>
set service mdns repeater allow-service <service>VyOS 1.5 (Circinus)
mDNS repeater полностью поддерживается с новыми опциями.
Новые возможности:
- Улучшенная производительность
- Лучшая интеграция с nftables firewall
- Поддержка дополнительных browse-domain
Команды те же:
set service mdns repeater interface <interface>
set service mdns repeater ip-version <ipv4|ipv6|both>Интеграция с Home Automation
Home Assistant
VyOS конфигурация:
# Main network где работает Home Assistant
set service mdns repeater interface eth0
# IoT VLAN
set service mdns repeater interface eth1.30
# Сервисы для Home Assistant
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_hap._tcp'
set service mdns repeater allow-service '_http._tcp'
commit
saveHome Assistant configuration.yaml:
# mDNS обнаружение уже встроено в Home Assistant
# Никаких дополнительных настроек не требуется
# Интеграции будут автоматически обнаруживать устройства:
discovery:
enable:
- homekit
- zeroconf
homekit:
auto_start: trueHomebridge
VyOS конфигурация:
# Homebridge VLAN
set service mdns repeater interface eth1.20
# Main network
set service mdns repeater interface eth0
# HomeKit сервисы
set service mdns repeater allow-service '_homekit._tcp'
set service mdns repeater allow-service '_hap._tcp'
commit
saveApple Home App
После настройки mDNS repeater, устройства автоматически появятся в Apple Home App на iPhone/iPad.
Проверка:
- Откройте Home App
- Tap (+) → Add Accessory
- Устройства в других VLAN должны появиться
Производительность
Влияние на систему
mDNS repeater - легковесный сервис:
- CPU overhead: < 1% в типичных сценариях
- Memory: ~5-10 MB RAM
- Network: Минимальный трафик (только multicast retransmission)
Рекомендации по масштабированию
- До 10 устройств: Любая конфигурация работает отлично
- 10-50 устройств: Рекомендуется allow-service фильтрация
- 50-100 устройств: Обязательна фильтрация, мониторинг packet rate
- 100+ устройств: Рассмотрите централизованный mDNS proxy (не repeater)
Оптимизация
# Используйте allow-service для снижения трафика
set service mdns repeater allow-service '_airplay._tcp'
set service mdns repeater allow-service '_homekit._tcp'
# Не указывайте лишние интерфейсы
# Только необходимые VLANАльтернативные решения
Когда НЕ использовать mDNS Repeater
- VRRP setup: Несколько активных роутеров приведут к packet storm
- Очень большие сети: 100+ mDNS устройств
- Строгие security требования: mDNS может раскрывать информацию об устройствах
- WAN использование: mDNS только для локальных сетей
Альтернативы
Централизованный Avahi Reflector:
# Установка на отдельном сервере (не VyOS)
sudo apt install avahi-daemon
# /etc/avahi/avahi-daemon.conf
[reflector]
enable-reflector=yesDNS-SD с централизованным DNS:
- Wide-Area Bonjour (Apple)
- DNS-Based Service Discovery (RFC 6763)
Application-specific решения:
- Homebridge для Apple HomeKit
- ChromecastDiscovery для Google Cast
- Dedicated IoT hub (Home Assistant, OpenHAB)
Следующие шаги
- LLDP - обнаружение сетевых устройств
- UDP Broadcast Relay - ретрансляция других broadcast протоколов
- DHCP Relay - централизованный DHCP
- Firewall - защита сети
- VLAN Configuration - настройка VLAN интерфейсов
Заключение
mDNS Repeater в VyOS - это мощный инструмент для обеспечения обнаружения сервисов через границы VLAN. Он незаменим для:
- Apple экосистемы (AirPlay, HomeKit)
- Google Chromecast
- Сетевых принтеров
- Home automation систем
- IoT устройств
Ключевые моменты:
- Минимум 2 интерфейса для работы
- Используйте allow-service для фильтрации
- Настраивайте firewall правила
- НЕ используйте в VRRP setups
- Тестируйте после каждого изменения
С правильной конфигурацией mDNS Repeater обеспечит seamless discovery устройств в сегментированных сетях без компромиссов в безопасности.