Комментарии 34
На самом деле на физическом интерфейсе надо поставить получение по dhcp без днс и шлюза по умолчанию. Так будет правильнее для верной работы мультикаста.
Ну и есть вариант без прокси. Покинуть трафик с физ интерфейса бриджом до приставки. Она уже сама все получит и разберётся.
А если приставка не на отдельном порту? Или вообще на вайфае?
С чего это мультикаст забьет канал? Допустим, видеопоток ~5-10 Мбит (это FullHD уже). Полоса wifi сейчас позволяет что на 2.4, что на 5ггц выдавать далеко за 100мбит. Конечно от зашумленности и эфира зависит, но тем не менее. Неужели у вас ноутбук, подключенный по wifi выдает меньше 10мбит? Чем приставка хуже?
В эфир что уникаст, что мультикаст по wifi вещается широковещательно, то есть забивает полосу.
Как результат (дальше цифры сравнительные в идеальных условиях, просто иметь представление о порядке масштабов катастрофы) — если у вас поток мультикаста 5 Мбит/с, то он занимает 83% эфирной полосы на скорости 6 Мбит/с. Остаётся 17% эфира, что на канальной скорости в 150 Мбит/с составляет 25 Мбит/с. Вот так от 5 Мбит/с мультикаста на ровном месте теряется 125 Мбит/с «хорошего» канала.
Как ещё одно следствие — если у wifi-оборудования для беспроводного p2p-моста нет тонких настроек для мультикаста (вроде Multicast Helper у MikroTik RouterOS), то рекомендуется настраивать так, чтобы мультикаст шёл от клиента к точке доступа, а не наоборот. Тогда мультикаст не будет давать таких больших просадок трафика.
Не могли бы дать ссылки на источники?
UPD: вот теперь и я обещаю обновлять комментарии перед ответом…
Для хождения мультикаст-пакетов добавляется маршрут на 224.0.0.0/4 (возможно он отличается в разных регионах).
И как вы верно подметили на WAN-интерфейсе нужен IP адрес.
Мне кажется, могу ошибаться, у вас не учтен случай пропадания и появления интернета на WAN-интерфейсе и соответственно тогда произойдет сброс таблицы маршрутов. Что бы это учесть я использовал скрипт на событие поднятия WAN-интерфейса /etc/hotplug.d/iface/40-myroute.
Содержимое файла 40-myroute
#!/bin/sh
[ "$ACTION" = ifup ] && {
#if [ "${$DEVICE}" = «pppoe-wan» ]; then
logger -t myroute ADD Device: $DEVICE / Action: $ACTION
route add -net 224.0.0.0/4 dev eth1 metric 1
echo «1» > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping
#fi
}
Т.к. для IPTV на WAN-интерфейсе нужно что был IP адрес.
Я использовал вот такой финт ушами
config interface 'wan'
option ifname 'eth0.1'
option proto 'static'
option ipaddr '192.168.2.2'
option netmask '255.255.255.0'
option bcast '192.168.2.255'
config interface 'wpppoe'
option ifname 'eth1'
option proto 'pppoe'
option username 'пользователь'
option password 'пароль'
option keepalive '5'
wan — это наш wan с статическим адресом для IPTV, wpppoe — это наше PPPoE соединение.
igmpproxy — использовал вместе с udpxy. От igmpproxy отказался т.к. udpxy можно и через Wi-Fi смотреть (IPTV плеер должен поддерживать проксироdание через udpxy).
Вешать на роутер адрес DNS-сервера от CloudFlare? Вы реально не нашли более полезного применения для него?
На самом деле на интерфейс можно повесить любой адрес, чтобы "от его имени" отправился ip-igmp пакет и на коммутаторе провайдера засветился. То что выбран 1.0.0.1 — это как я понял копипаста с китайской прошивки длинка(о чем в статье и написано). Не раз видел, что 1.0.0.0/8 сеть используют как приватную, не только китайцы, так что использовать ДНС клаудфларе как раз и будет "так себе решением", непонятно же через что трафик побежит не вами контролируемое. Правильно было бы написать 10.11.12.13 или что-то подобное из 10.0.0.0/8
Да, можно выбрать любой адрес из 192.168.0.0/16, 172.16.0.0/20, 10.0.0.0/8 или 100.64.0.0/10 — но всё равно автор умудрился промахнуться :)
По поводу 'использовать ДНС клаудфларе как раз и будет «так себе решением»' — расскажите это всем, кто уже оценил его скорость. Не надо обсуждать, как плохо бывает, когда криворучки используют чужие диапазоны, CloudFlare уже давно писал об осознанности своего выбора. Надо хотя бы сегодня начинать делать по-нормальному.
Знаю вас как отличного специалиста по микротикам и хотелось бы видеть ваши статьи здесь, как делать правильно со всеми нюансами. Если вы решитесь переступить барьер, который называется «всё можно нагуглить», статьи будут первоклассными.
Далее нужно блокировать прохождение мультикаст — траффика в беспроводную сеть
Я понимаю, что пошаговые инструкции — они такие пошаговые, но это ведь хабр — хотя бы пару слов напишите о том, зачем это делать. А то при наличии IGMP Snooping'а и Multicast Helper'а данный шаг вызывает поднятие брови.
IGMP Snooping поддерживает MicroTik? OpenWrt поддерживает.
Просто падает на OpenWRT?
Под "наличием IGMP Snooping'а", естественно, подразумевалось его наличие в RouterOS, а не в энциклопедиях по сетевым технологиям. Что значит "просто падает"? Для передачи бродкаст-пакетов (коими являются мультикастовые пакеты) вайфай переключается на самую низкую скорость — возможно, вы это и имеете в виду под "просто падает" (удивительно технический термин!). Но тут на сцену выходит RouterOS Multicast Helper — он преобразует мультикастовые пакеты в юникастовые (с подтверждением приёма), поэтому всё продолжает работать на обычных скоростях.
Омг, как все сложно. Год назад этот вопрос решал простым объединением портов в мост и отключением rstp на нем. Что изменилось сейчас ?)
Расскажите поподробнее. Объединение портов в мост и навешивание на мост адреса локалки? Что-нибудь делали для того, чтобы пакеты из локалки не утекали к провайдеру? А то некоторые провайдеры могут за такое и порт заблокировать.
Кстати, побочкой является «залипание» картинки на приставке при переключении каналов: дело в том, что отписывание от предыдущего потока может и не пройти мгновенно, и через snooping (который делается посредством ЦПУ) пойдут несколько потоков мультикаста. Свитч подобную красоту выдерживает без малейших проблем… В общем надо очень точно знать, зачем включается igmp-snooping и трафик приставки пробрасывается во внутреннюю сеть.
Ну, про дополнительную нагрузку на процессор — тут не поспоришь. Но насколько она значительная… Вот включил три HD-канала, суммарно 20 Мбит/с. Скриншот сделан в тот редкий момент, когда строчка igmp-proxy изредка появляется — её практически нет в профайлере.

Про залипание не понял. Как оно связано с отписыванием? Один, два, три потока будет идти через роутер — пережуёт, куда денется. Может, вы за Fast Leave опасаетесь? Так его выключить можно.
А то, что надо что-то точно знать — так я выше уже писал: сейчас понастраивают себе, не зная точно, но по инструкции — а потом будут удивляться, что второй адрес CloudFlare DNS не работает :)
Кстати, ради интереса: остановите полностью IPTV и оцените нагрузку на процессор — у самого CPU (не igmp-proxy) цифры понизятся? Не сразу после остановки, а примерно через минуту.
Да, разговор именно про fast leave идёт.
У вашего устройства с этим всё в порядке, вы ничего и не заметите
Спасибо. Только это несчастный RB951-2n, который на MUM'ах раздавали всем просто так :) Какие ещё [значительно] более слабые устройства вы хотите делать основным шлюзом к провайдеру и насколько это адекватное решение?
Без нагрузки в виде трафика процессор, естественно, простаивает. Но нагрузка в виде пары десятков мегабит обычного интернет-трафика с котиками даёт сравнимую нагрузку на CPU.
В мост объединяются порт в который смотрит кабель провайдера и порт в который смотрит приставка, на него же вешается пппое, чтобы не блокировался на стороне провайдера, отключается rstp. Мог что то забыть, но вроде это все.
А после обновление прошивки — перезагружаемся еще раз для обновления загрузчика, если в System — Routerboard — Settings стоит Auto Upgrade. Если не стоит — ставим галочку, нажимаем Upgrade и перезагружаем роутер.
Настройка IPTV от Ростелеком на роутерах MikroTik