Включение IGMP snooping и настройка querier на MikroTik CRS3xx для IPTV без роутера
- IGMP snooping — коммутатор перестаёт рассылать multicast на все порты и отправляет поток только туда, где есть подписчики;
- IGMP querier — коммутатор сам отправляет IGMP-запросы (Query), заставляя приставки регулярно подтверждать интерес к каналу;
- Без роутера — маршрутизатор находится «выше» CRS3xx и не видит локальный multicast-трафик.
Требования к оборудованию и ПО
Подходит для:
- CRS305-1G-4S+, CRS309-1G-8S+, CRS312-4C+8XG, CRS326-24G-2S+ и других из серии CRS3xx;
- RouterOS v6.45+ или v7.1+ (в v6 требуется отдельный пакет
switch); - Версия прошивки коммутатора ≥3.40 (проверяется в WinBox: System → RouterBOARD).
Как проверить, поддерживает ли ваш CRS3xx hardware offloading для IGMP?
/interface ethernet switch print
В колонке igmp-snooping должно быть yes. Если no — функция недоступна на этом чипе (например, на старых CRS1xx).
Пошаговая настройка через CLI
Все команды выполняются в терминале (WinBox → Terminal или SSH). Предположим:
- VLAN 300 — IPTV (как у Ростелекома);
- Порты 1–4 — ТВ-приставки (подключены напрямую);
- Порт 5 — аплинк к маршрутизатору.
Шаг 1. Создание VLAN и bridge
/interface bridge add name=bridge-iptv vlan-filtering=yes /interface vlan add interface=bridge-iptv name=vlan300 vlan-id=300 /interface bridge port add bridge=bridge-iptv interface=ether1 /interface bridge port add bridge=bridge-iptv interface=ether2 /interface bridge port add bridge=bridge-iptv interface=ether3 /interface bridge port add bridge=bridge-iptv interface=ether4 /interface bridge port add bridge=bridge-iptv interface=ether5
• vlan-filtering=yes — ключевая опция: без неё IGMP snooping не заработает на hardware level.
Шаг 2. Настройка VLAN на портах
Порты 1–4 — нетегированный VLAN 300 (приставки не поддерживают теги). Порт 5 — тегированный (аплинк).
/interface bridge vlan add bridge=bridge-iptv vlan-ids=300 tagged=ether5 untagged=ether1,ether2,ether3,ether4
tagged=ether5 — на этом порту трафик идёт с VLAN-тегом 300;untagged=ether1…4 — на этих портах тег снимается, приставка получает «чистый» Ethernet;vlan-ids=300 — номер VLAN для IPTV.
Шаг 3. Включение IGMP snooping
/interface bridge set bridge-iptv igmp-snooping=yes
Это включает snooping на уровне bridge. Но без querier’а подписки вскоре истекут.
Шаг 4. Настройка IGMP querier (главное!)
В RouterOS v6 и v7 синтаксис разный. Ниже — универсальный способ.
Для RouterOS v7.x:
/interface bridge igmp-snooping set bridge-iptv querier=yes /interface bridge igmp-snooping set bridge-iptv querier-version=2
Для RouterOS v6.x: (требуется пакет switch)
/interface ethernet switch igmp-snooping set 0 querier=yes /interface ethernet switch igmp-snooping set 0 querier-interval=125s /interface ethernet switch igmp-snooping set 0 last-member-query-interval=1s
querier=yes — коммутатор становится источником IGMP-запросов;querier-interval=125s — отправлять Query каждые 125 сек (стандарт);last-member-query-interval=1s — быстро удалять «мёртвые» подписки.
Шаг 5. (Опционально) Настройка fast leave
Ускоряет переключение каналов, но может вызывать артефакты при нестабильном сигнале:
/interface bridge igmp-snooping set bridge-iptv fast-leave=yes
Важно: на некоторых приставках (например, Ростелеком STB-HD800) fast-leave вызывает пропадание звука. Если столкнулись — отключите.
Проверка работы
1. Убедитесь, что IGMP snooping активен
/interface bridge igmp-snooping print
В выводе должно быть:
querier: yes fast-leave: yes report-suppression: yes
2. Проверьте подписки в реальном времени
/interface bridge igmp-snooping host print
Пример корректного вывода:
# ADDRESS MAC-ADDRESS PORT VLAN-ID LAST-REPORT 0 239.1.2.10 00:1A:79:xx:xx:xx ether1 300 20s ago 1 239.1.2.20 00:1A:79:yy:yy:yy ether3 300 5s ago
Если список пуст или записи исчезают через 2–3 минуты — querier не работает.
3. Диагностика трафика
Включите сниффер на порту аплинка:
/tool sniffer quick interface=ether5 protocol=igmp multicast-only=yes
Вы должны видеть пакеты типа IGMP Membership Query с источником — IP вашего CRS3xx (например, 192.168.30.1).
Типовые проблемы и решения
| Симптом | Причина | Решение |
|---|---|---|
| Каналы работают 2–3 мин, потом чёрный экран | Querier выключен или блокируется | Проверьте querier=yes; убедитесь, что на аплинке разрешён multicast |
| ТВ не видит никакие каналы | VLAN настроен неверно (нетегированный/тегированный) | Проверьте bridge vlan print; убедитесь, что приставке приходит нетегированный трафик |
| Работает только один ТВ | IGMP snooping выключен | /interface bridge set bridge-iptv igmp-snooping=yes |
| Звук пропадает при смене канала | Включён fast-leave на «капризной» приставке | fast-leave=no |
Дополнительно: как задать IP-адрес для querier
По умолчанию querier использует IP интерфейса vlan300. Чтобы его задать:
/ip address add address=192.168.30.1/24 interface=vlan300 /interface bridge igmp-snooping set bridge-iptv querier-address=192.168.30.1
Это полезно, если в сети несколько querier’ов — можно задать приоритет через lowest IP.
