UDP Broadcast Relay
UDP Broadcast Relay - сервис для перенаправления UDP broadcast-пакетов между различными сетевыми сегментами и VLAN.
Обзор
UDP Broadcast Relay решает проблему изоляции broadcast-доменов, позволяя сервисам, использующим UDP broadcast для обнаружения, работать через границы сетей.
Основные возможности
- Перенаправление UDP broadcast между интерфейсами и VLAN
- Поддержка до 99 независимых relay-конфигураций
- Фильтрация по портам UDP
- Защита от broadcast-штормов
- Возможность указания source IP для исходящих пакетов
- Независимое включение/отключение relay без удаления конфигурации
Типичные сценарии использования
- DHCP Relay - перенаправление DHCP-запросов между подсетями
- NETBIOS/WINS - обнаружение сетевых ресурсов Windows
- Wake-on-LAN (WoL) - удаленное включение компьютеров через VLAN
- SONOS/UPnP/SSDP - обнаружение медиа-устройств в мультикаст-сетях
- Сетевое оборудование - обнаружение принтеров, IP-камер, точек доступа
- Игровые консоли - обнаружение игр и устройств в локальной сети
Как работает
- VyOS прослушивает UDP broadcast на указанных интерфейсах
- При получении broadcast-пакета на указанном порту, ретранслирует его на все остальные интерфейсы в группе
- Пакет отправляется как broadcast на каждый интерфейс
- Механизм защиты предотвращает циклические ретрансляции
Базовая конфигурация
Структура команд
set service broadcast-relay id <relay-id>
├── description <text>
├── interface <interface>
├── port <udp-port>
└── address <source-ip>
Минимальная конфигурация
Простейший relay между двумя интерфейсами:
set service broadcast-relay id 1 interface eth0
set service broadcast-relay id 1 interface eth1
set service broadcast-relay id 1 port 9
commit
Параметры конфигурации
Relay ID
Уникальный идентификатор relay-группы (1-99):
set service broadcast-relay id 1
Можно создать до 99 независимых relay-конфигураций.
Интерфейсы
Интерфейсы для ретрансляции broadcast-пакетов:
set service broadcast-relay id 1 interface eth0
set service broadcast-relay id 1 interface eth1
set service broadcast-relay id 1 interface eth0.10
set service broadcast-relay id 1 interface eth0.20
Поддерживаются:
- Физические интерфейсы (eth0, eth1)
- VLAN интерфейсы (eth0.10, eth0.100)
- Bridge интерфейсы (br0)
- Bonding интерфейсы (bond0)
UDP порт
Указание UDP порта для фильтрации:
set service broadcast-relay id 1 port 67
Relay будет обрабатывать только broadcast на указанном UDP порту.
Описание
Текстовое описание relay-группы:
set service broadcast-relay id 1 description 'DHCP Relay between VLANs'
Source Address (опционально)
Указание source IP для исходящих пакетов:
set service broadcast-relay id 1 address 192.168.1.1
Полезно для контроля источника пакетов в маршрутизируемых сетях.
Отключение без удаления
Временное отключение relay:
set service broadcast-relay id 1 disable
Конфигурация сохраняется, но relay не активен.
Типовые конфигурации
DHCP Relay
Перенаправление DHCP-запросов (порты 67/68) между VLAN:
# DHCP Server Request (port 67)
set service broadcast-relay id 1 description 'DHCP Relay'
set service broadcast-relay id 1 interface eth0.10
set service broadcast-relay id 1 interface eth0.20
set service broadcast-relay id 1 interface eth0.30
set service broadcast-relay id 1 port 67
commit
Важно: Для полноценного DHCP relay рекомендуется использовать встроенный service dhcp-relay
:
set service dhcp-relay interface eth0.10
set service dhcp-relay interface eth0.20
set service dhcp-relay server 192.168.1.1
NETBIOS Name Service
Обнаружение Windows-ресурсов (порт 137):
set service broadcast-relay id 2 description 'NETBIOS Name Service'
set service broadcast-relay id 2 interface eth0
set service broadcast-relay id 2 interface eth1
set service broadcast-relay id 2 interface eth2
set service broadcast-relay id 2 port 137
commit
Wake-on-LAN (WoL)
Перенаправление magic packets для удаленного включения (порт 9):
set service broadcast-relay id 3 description 'Wake-on-LAN'
set service broadcast-relay id 3 interface eth0.10
set service broadcast-relay id 3 interface eth0.20
set service broadcast-relay id 3 interface eth0.30
set service broadcast-relay id 3 port 9
commit
Также поддерживается порт 7 (некоторые реализации WoL):
set service broadcast-relay id 4 description 'Wake-on-LAN (port 7)'
set service broadcast-relay id 4 interface eth0.10
set service broadcast-relay id 4 interface eth0.20
set service broadcast-relay id 4 port 7
commit
SONOS Discovery
Обнаружение SONOS аудиосистем (порт 1900 - SSDP):
set service broadcast-relay id 5 description 'SONOS Discovery'
set service broadcast-relay id 5 interface eth3
set service broadcast-relay id 5 interface eth4
set service broadcast-relay id 5 interface eth5
set service broadcast-relay id 5 port 1900
commit
UPnP/SSDP
Universal Plug and Play discovery (порт 1900):
set service broadcast-relay id 6 description 'UPnP/SSDP Discovery'
set service broadcast-relay id 6 interface eth0.100
set service broadcast-relay id 6 interface eth0.200
set service broadcast-relay id 6 port 1900
commit
Chromecast Discovery
Google Chromecast использует mDNS (порт 5353):
set service broadcast-relay id 7 description 'Chromecast mDNS'
set service broadcast-relay id 7 interface eth0.10
set service broadcast-relay id 7 interface eth0.20
set service broadcast-relay id 7 port 5353
commit
Принтеры и сканеры
Обнаружение сетевых принтеров (SNMP trap - порт 161):
set service broadcast-relay id 8 description 'Network Printers'
set service broadcast-relay id 8 interface eth0.50
set service broadcast-relay id 8 interface eth0.60
set service broadcast-relay id 8 port 161
commit
Практические сценарии
Сценарий 1: Корпоративная сеть с VLAN
Задача: Обеспечить работу DHCP и Wake-on-LAN между VLAN отделов.
Топология:
- VLAN 10 - Management (192.168.10.0/24)
- VLAN 20 - Development (192.168.20.0/24)
- VLAN 30 - Production (192.168.30.0/24)
- DHCP сервер: 192.168.10.5
Конфигурация:
# DHCP Relay между всеми VLAN
set service broadcast-relay id 1 description 'Corporate DHCP Relay'
set service broadcast-relay id 1 interface eth0.10
set service broadcast-relay id 1 interface eth0.20
set service broadcast-relay id 1 interface eth0.30
set service broadcast-relay id 1 port 67
# Wake-on-LAN между VLAN
set service broadcast-relay id 2 description 'Corporate WoL'
set service broadcast-relay id 2 interface eth0.10
set service broadcast-relay id 2 interface eth0.20
set service broadcast-relay id 2 interface eth0.30
set service broadcast-relay id 2 port 9
commit
Сценарий 2: Домашняя мультимедийная сеть
Задача: SONOS, Chromecast и Smart TV должны обнаруживаться между гостевой и домашней сетью.
Топология:
- VLAN 100 - Home (192.168.100.0/24)
- VLAN 200 - Guest (192.168.200.0/24)
- VLAN 300 - IoT (192.168.300.0/24)
Конфигурация:
# SONOS Discovery
set service broadcast-relay id 10 description 'SONOS Audio'
set service broadcast-relay id 10 interface eth0.100
set service broadcast-relay id 10 interface eth0.300
set service broadcast-relay id 10 port 1900
# Chromecast mDNS
set service broadcast-relay id 11 description 'Chromecast'
set service broadcast-relay id 11 interface eth0.100
set service broadcast-relay id 11 interface eth0.200
set service broadcast-relay id 11 interface eth0.300
set service broadcast-relay id 11 port 5353
# UPnP для Smart TV
set service broadcast-relay id 12 description 'Smart TV UPnP'
set service broadcast-relay id 12 interface eth0.100
set service broadcast-relay id 12 interface eth0.300
set service broadcast-relay id 12 port 1900
commit
Сценарий 3: Дата-центр с изолированными зонами
Задача: Обеспечить централизованное управление через Wake-on-LAN и PXE boot.
Топология:
- VLAN 500 - Management (10.0.0.0/24)
- VLAN 501 - DMZ Servers (10.0.1.0/24)
- VLAN 502 - Internal Servers (10.0.2.0/24)
- VLAN 503 - Database Zone (10.0.3.0/24)
Конфигурация:
# Wake-on-LAN для всех серверных зон
set service broadcast-relay id 20 description 'Datacenter WoL'
set service broadcast-relay id 20 interface eth0.500
set service broadcast-relay id 20 interface eth0.501
set service broadcast-relay id 20 interface eth0.502
set service broadcast-relay id 20 interface eth0.503
set service broadcast-relay id 20 port 9
set service broadcast-relay id 20 address 10.0.0.1
# TFTP для PXE Boot
set service broadcast-relay id 21 description 'PXE Boot TFTP'
set service broadcast-relay id 21 interface eth0.500
set service broadcast-relay id 21 interface eth0.501
set service broadcast-relay id 21 interface eth0.502
set service broadcast-relay id 21 port 69
set service broadcast-relay id 21 address 10.0.0.1
commit
Сценарий 4: Множественные офисы через VPN
Задача: Relay broadcast между VPN интерфейсами для обнаружения сетевых ресурсов.
Топология:
- Local LAN - eth1 (192.168.1.0/24)
- VPN Office 1 - wg0 (10.10.1.0/24)
- VPN Office 2 - wg1 (10.10.2.0/24)
Конфигурация:
# NETBIOS между офисами
set service broadcast-relay id 30 description 'Inter-Office NETBIOS'
set service broadcast-relay id 30 interface eth1
set service broadcast-relay id 30 interface wg0
set service broadcast-relay id 30 interface wg1
set service broadcast-relay id 30 port 137
# Wake-on-LAN между офисами
set service broadcast-relay id 31 description 'Inter-Office WoL'
set service broadcast-relay id 31 interface eth1
set service broadcast-relay id 31 interface wg0
set service broadcast-relay id 31 interface wg1
set service broadcast-relay id 31 port 9
commit
Общие UDP порты для Relay
Порт | Протокол/Сервис | Описание |
---|---|---|
7 | Echo / WoL | Wake-on-LAN (альтернативный) |
9 | Discard / WoL | Wake-on-LAN (основной) |
67 | DHCP Server | DHCP запросы от клиентов |
68 | DHCP Client | DHCP ответы от сервера |
69 | TFTP | Trivial File Transfer Protocol |
137 | NETBIOS-NS | NetBIOS Name Service |
138 | NETBIOS-DGM | NetBIOS Datagram Service |
161 | SNMP | Simple Network Management Protocol |
427 | SLP | Service Location Protocol |
1900 | SSDP | Simple Service Discovery Protocol (UPnP) |
5353 | mDNS | Multicast DNS (Bonjour/Avahi) |
6969 | BitTorrent | BitTorrent tracker discovery |
10001 | Ubiquiti | Ubiquiti device discovery |
Операционные команды
Просмотр конфигурации
Все relay:
show service broadcast-relay
Конкретный relay:
show service broadcast-relay id 1
Текущая конфигурация в CLI-формате:
show configuration commands | grep broadcast-relay
Мониторинг трафика
Просмотр UDP broadcast на интерфейсе:
monitor traffic interface eth0 filter "udp and broadcast"
Мониторинг конкретного порта:
monitor traffic interface eth0 filter "udp port 67"
Подробный вывод с содержимым пакетов:
monitor traffic interface eth0.10 filter "udp port 9" verbose
Логи
Системные логи relay:
show log | grep broadcast
Мониторинг в реальном времени:
monitor log | grep broadcast
Статистика интерфейсов
Проверка broadcast-пакетов на интерфейсе:
show interfaces ethernet eth0 statistics
Тестирование
Отправка Wake-on-LAN с роутера:
generate wol interface eth0 mac 00:11:22:33:44:55
Устранение неполадок
Broadcast-пакеты не перенаправляются
Проверка 1: Убедитесь, что relay активен:
show service broadcast-relay id 1
Если показывает disabled
, включите:
configure
delete service broadcast-relay id 1 disable
commit
Проверка 2: Проверьте, что интерфейсы up:
show interfaces
Проверка 3: Убедитесь, что broadcast достигает интерфейса:
monitor traffic interface eth0 filter "udp port 67"
Проверка 4: Проверьте firewall правила:
show firewall
Убедитесь, что UDP broadcast не блокируется:
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 67
commit
DHCP relay не работает
Проблема: Клиенты не получают адреса через relay.
Решение: Используйте специализированный DHCP relay вместо broadcast relay:
delete service broadcast-relay id 1
set service dhcp-relay interface eth0.10
set service dhcp-relay interface eth0.20
set service dhcp-relay server 192.168.1.1
commit
DHCP relay поддерживает DHCP-specific функции (giaddr, relay agent information).
Wake-on-LAN не пробуждает устройства
Проверка 1: Убедитесь, что устройство поддерживает WoL:
- BIOS/UEFI настройка включена
- Сетевая карта поддерживает WoL
- ОС настроена на WoL
Проверка 2: Проверьте порт: Некоторые реализации используют порт 7, другие - порт 9:
set service broadcast-relay id 3 port 7
commit
Проверка 3: Тестируйте из той же подсети сначала:
generate wol interface eth0.10 mac 00:11:22:33:44:55
Проверка 4: Убедитесь, что broadcast адрес правильный:
- 255.255.255.255 (limited broadcast)
- 192.168.1.255 (subnet broadcast для 192.168.1.0/24)
SONOS/Chromecast не обнаруживаются
Проблема: Устройства в разных VLAN не видят друг друга.
Решение 1: Добавьте mDNS relay (порт 5353):
set service broadcast-relay id 10 description 'mDNS Relay'
set service broadcast-relay id 10 interface eth0.100
set service broadcast-relay id 10 interface eth0.200
set service broadcast-relay id 10 port 5353
commit
Решение 2: Используйте специализированный mDNS repeater:
set service mdns repeater interface eth0.100
set service mdns repeater interface eth0.200
commit
mDNS repeater более эффективен для multicast DNS.
Broadcast storm
Проблема: Циклическая ретрансляция вызывает перегрузку сети.
Объяснение: Встроенная защита VyOS предотвращает это, но проверьте топологию:
Проверка: Убедитесь, что нет петель на L2:
show spanning-tree
Решение: Включите STP на bridge интерфейсах:
set interfaces bridge br0 stp
commit
High CPU usage
Проблема: Высокая нагрузка на CPU из-за relay.
Причина: Слишком много broadcast-трафика.
Решение 1: Фильтруйте relay только на необходимых портах.
Решение 2: Ограничьте количество интерфейсов в relay группе.
Решение 3: Используйте специализированные протоколы вместо broadcast relay:
- DHCP relay вместо broadcast relay
- mDNS repeater вместо broadcast relay для mDNS
Безопасность и лучшие практики
1. Минимизируйте broadcast-домены
Используйте relay только когда необходимо. Не создавайте большие broadcast-домены без причины.
2. Фильтруйте по портам
Всегда указывайте конкретные UDP порты:
set service broadcast-relay id 1 port 67
Не используйте relay для всех портов.
3. Ограничивайте интерфейсы
Добавляйте в relay только необходимые интерфейсы:
set service broadcast-relay id 1 interface eth0.10
set service broadcast-relay id 1 interface eth0.20
Не добавляйте WAN интерфейсы в relay!
4. Используйте описания
Документируйте назначение каждого relay:
set service broadcast-relay id 1 description 'DHCP for Office VLANs 10-30'
5. Контролируйте source address
Для маршрутизируемых сетей указывайте source:
set service broadcast-relay id 1 address 192.168.1.1
6. Защита firewall
Ограничьте broadcast relay firewall правилами:
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 source address 192.168.0.0/16
set firewall ipv4 forward filter rule 100 destination port 67
7. Мониторинг
Регулярно проверяйте broadcast трафик:
show interfaces statistics
8. Альтернативы broadcast relay
Используйте специализированные протоколы где возможно:
- DHCP relay для DHCP
- mDNS repeater для mDNS/Bonjour
- IGMP proxy для multicast
9. Разделение relay групп
Не объединяйте разные сервисы в один relay:
# Хорошо - отдельные relay
set service broadcast-relay id 1 port 67 # DHCP
set service broadcast-relay id 2 port 9 # WoL
# Плохо - один relay для всего
set service broadcast-relay id 1 port 67
set service broadcast-relay id 1 port 9 # Невозможно!
10. Тестирование перед продакшеном
Всегда тестируйте relay в лабораторной среде перед развертыванием.
Интеграция с другими сервисами
DHCP Server + Broadcast Relay
Комбинация для централизованного DHCP:
# DHCP Server на роутере
set service dhcp-server shared-network-name LAN subnet 192.168.10.0/24 subnet-id 10
set service dhcp-server shared-network-name LAN subnet 192.168.10.0/24 option default-router '192.168.10.1'
set service dhcp-server shared-network-name LAN subnet 192.168.10.0/24 range 0 start '192.168.10.100'
set service dhcp-server shared-network-name LAN subnet 192.168.10.0/24 range 0 stop '192.168.10.200'
# Relay от других VLAN к DHCP серверу
set service dhcp-relay interface eth0.20
set service dhcp-relay interface eth0.30
set service dhcp-relay server 192.168.10.1
mDNS Repeater + Broadcast Relay
Для полной совместимости Apple/Android устройств:
# mDNS repeater для Bonjour/Avahi
set service mdns repeater interface eth0.100
set service mdns repeater interface eth0.200
# Broadcast relay для других discovery протоколов
set service broadcast-relay id 10 description 'SSDP/UPnP'
set service broadcast-relay id 10 interface eth0.100
set service broadcast-relay id 10 interface eth0.200
set service broadcast-relay id 10 port 1900
DNS Forwarding
Интеграция с локальным DNS:
# DNS forwarding для резолва локальных имен
set service dns forwarding listen-address 192.168.1.1
set service dns forwarding listen-address 192.168.2.1
# Broadcast relay для NETBIOS
set service broadcast-relay id 5 description 'NETBIOS'
set service broadcast-relay id 5 interface eth0
set service broadcast-relay id 5 interface eth1
set service broadcast-relay id 5 port 137
Сравнение с альтернативами
Broadcast Relay vs DHCP Relay
Broadcast Relay (Generic):
- Преимущества: универсальный, простой
- Недостатки: нет DHCP-specific функций
DHCP Relay (Specialized):
- Преимущества: поддержка giaddr, relay agent info, более эффективный
- Недостатки: только для DHCP
Рекомендация: Используйте DHCP relay для DHCP.
Broadcast Relay vs mDNS Repeater
Broadcast Relay (UDP port 5353):
- Преимущества: простая конфигурация
- Недостатки: не понимает mDNS-specific протокол
mDNS Repeater:
- Преимущества: оптимизирован для mDNS, понимает протокол
- Недостатки: только для mDNS
Рекомендация: Используйте mDNS repeater для Bonjour/Avahi.
Broadcast Relay vs IGMP Proxy
Broadcast Relay:
- Только для UDP broadcast
- Не подходит для multicast
IGMP Proxy:
- Для multicast групп
- Требует IGMP membership
Рекомендация: Используйте IGMP proxy для IPTV, multicast streaming.
Ограничения
- Только UDP: Relay работает только с UDP протоколом
- Только broadcast: Не работает с unicast или multicast (используйте IGMP proxy)
- Производительность: Большое количество broadcast может повлиять на CPU
- TTL: Broadcast не проходит через роутеры (TTL=1), relay позволяет обойти это
- Не для WAN: Никогда не используйте relay на WAN интерфейсах
Следующие шаги
- DHCP Server - настройка DHCP сервера
- DHCP Relay - специализированный DHCP relay
- DNS Forwarding - локальный DNS
- mDNS Repeater - multicast DNS
- Firewall - контроль broadcast трафика
- VLAN - настройка VLAN интерфейсов