В первую очередь обновим прошивку до последней. Подключаемся к нашему роутеру через Winbox, идем в [System]->[Packages] -> [Check for updates]. Если вышла более новая версия Routeros чем установлена у вас на девайсе, жмем Download & Install после чего новая версия будет скачана и маршрутизатор уйдет в перезагрузку.
После выполнения данных действий идем сюда и выбираем пакеты которые нужно загрузить для вашего устройства, в моем случае это haP series и выбираю я extra packages для текущей версии (6.43.4 на момент написания статьи).
Будет скачан архив из которого нужно будет распаковать файл multicast, открыть в winbox пункт files и перетащить распакованный нами файл прямо туда. После чего необходимо перезагрузить наш маршрутизатор ( идем в [System]->[Reboot]).
После перезагрузки в разделе Routing должен появиться пункт IGMP Proxy, если этого не произошло проверяем прошлые шаги — нужный ли пакет мы ставили ( для того ли девайса скачали, версии прошивки). В случае успеха идем дальше.
В IGMP Proxy на первой вкладке щелкаем знак [+] для создания так называемого Upstream. В пункте interface выбираем порт куда у нас вставлен шнур от провайдера, даже в случае если вы у вас используется PPPoE соединение выбираем именно физический порт, это очень важный момент. Помечаем галочку Upstream и в Alternative Subnets выставляем 0.0.0.0/0 и жмем Ок. Создаем второе правило для Downstream. В interface выбираем All, галочку upstream не ставим, больше никаких действий тут не требуется, просто жмем ок и все.
Следующим шагом будет настройка файрвола. Идем в [IP]->[Firewall] и [+], cоздаем новое правило Chain->forward, protocol->udp, In interface-> ether1 (порт, в который подключен кабель провайдера). Action->accept.
Создаем второе правило для IGMP. Цепочка также остается forward, protocol-> igmp, In interface-> ether1, Action->accept. Перетаскиваем созданные правила выше запрещающих.
Далее нужно блокировать прохождение мультикаст — траффика в беспроводную сеть. Идем в [Bridge] ->вкладка Filters -> [+]. Выбираем цепочку Output, out. Interface -> wlan1 то есть нашу нужную беспроводную сеть. На вкладке Advanced в packet type выбираем multicast а на вкладке Action назначаем действие drop, то есть запрет. Не забываем нажать ок чтобы сохранить настройки.
И тут пожалуй настает самый важный момент, если у вас интернет подключение идет через PPPoE, то необходимо на физический интерфейс куда подключен кабель от провайдера добавить айпишник 1.0.0.1 с маской 30 бит. В этом кстати, и заключалась проблема когда я первый раз настраивал микротик, без этого айпишника ничего не работало, а то что именно его нужно вбить я выяснил открыв настройки D-link-а. Идем в [IP]->[Adresses] и [+] и добавляем следующие настройки. В случае если используется прямое подключение без поднятия каких-либо тоннелей ( называют — IPoE), то предыдущих действий будет достаточно и данный пункт пропускаем.
Обращаю внимание на очень важный момент, после всех проделанных действий необходимо перезагрузить приставку если она была у вас включена и уже потом проверять результат настроек. В случае возникновения проблем в первую очередь советую проверить правила в файрволе.
У оператора может также быть задействована схема с использованием VLAN, в таком случае нужно на порту в который у вас подключен шнур от провайдера создать саб-интерфейс с vlan-ом передающим iptv, выяснить его номер можно попробовать через техподдержку. Идем в [interfaces]->[VLAN] и нажимаем [+] для создания нового, указываем его имя, оно не принципиально и нужно нам для удобства администрирования, VLAN ID же нужно указывать тот который дает провайдер, к примеру возьмем 234 и в interface порт в который подключен кабель провайдера. Жмем ОК.
Затем создаем новый бридж и добавляем туда созданный VLAN и порт в который подключена ваша приставка, предварительно этот порт нужно удалить из другого бриджа если он в каком либо задействован.
В свойствах самого бриджа рекомендую выставить STP в none при возникновении проблем.
В принципе я описал достаточно подробную инструкцию по данной теме. На этом все. Если есть какие либо вопросы и замечания пишите в комменты, готов ответить.
Комментарии (32)
xRay
27.01.2019 22:34Решал эту же задачу на OpenWrt для случая PPPoE от Ростелеком на WAN.
Для хождения мультикаст-пакетов добавляется маршрут на 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).
Chupaka
27.01.2019 23:36Вешать на роутер адрес DNS-сервера от CloudFlare? Вы реально не нашли более полезного применения для него?
trublast
28.01.2019 14:22На самом деле на интерфейс можно повесить любой адрес, чтобы "от его имени" отправился ip-igmp пакет и на коммутаторе провайдера засветился. То что выбран 1.0.0.1 — это как я понял копипаста с китайской прошивки длинка(о чем в статье и написано). Не раз видел, что 1.0.0.0/8 сеть используют как приватную, не только китайцы, так что использовать ДНС клаудфларе как раз и будет "так себе решением", непонятно же через что трафик побежит не вами контролируемое. Правильно было бы написать 10.11.12.13 или что-то подобное из 10.0.0.0/8
Chupaka
28.01.2019 15:11Как «на самом деле» — это я отлично понимаю. А вот подавать плохой пример в туториалах — это уже другое. Целенаправленное вредительство, хоть, возможно, и неосознанное.
Да, можно выбрать любой адрес из 192.168.0.0/16, 172.16.0.0/20, 10.0.0.0/8 или 100.64.0.0/10 — но всё равно автор умудрился промахнуться :)
По поводу 'использовать ДНС клаудфларе как раз и будет «так себе решением»' — расскажите это всем, кто уже оценил его скорость. Не надо обсуждать, как плохо бывает, когда криворучки используют чужие диапазоны, CloudFlare уже давно писал об осознанности своего выбора. Надо хотя бы сегодня начинать делать по-нормальному.
simplix
28.01.2019 23:30Эта инструкция не идеальна, но автор позаботился о том, чтобы сделать её своими силами. Есть перспективы, поэтому я и выдал приглашение.
Знаю вас как отличного специалиста по микротикам и хотелось бы видеть ваши статьи здесь, как делать правильно со всеми нюансами. Если вы решитесь переступить барьер, который называется «всё можно нагуглить», статьи будут первоклассными.
Chupaka
27.01.2019 23:39Далее нужно блокировать прохождение мультикаст — траффика в беспроводную сеть
Я понимаю, что пошаговые инструкции — они такие пошаговые, но это ведь хабр — хотя бы пару слов напишите о том, зачем это делать. А то при наличии IGMP Snooping'а и Multicast Helper'а данный шаг вызывает поднятие брови.
xRay
28.01.2019 09:17Wi-Fi от мультикаст-потока просто падает, если не использовать IGMP Snooping.
IGMP Snooping поддерживает MicroTik? OpenWrt поддерживает.Chupaka
28.01.2019 09:46+1Просто падает на OpenWRT?
Под "наличием IGMP Snooping'а", естественно, подразумевалось его наличие в RouterOS, а не в энциклопедиях по сетевым технологиям. Что значит "просто падает"? Для передачи бродкаст-пакетов (коими являются мультикастовые пакеты) вайфай переключается на самую низкую скорость — возможно, вы это и имеете в виду под "просто падает" (удивительно технический термин!). Но тут на сцену выходит RouterOS Multicast Helper — он преобразует мультикастовые пакеты в юникастовые (с подтверждением приёма), поэтому всё продолжает работать на обычных скоростях.
sigmatik
28.01.2019 00:26Омг, как все сложно. Год назад этот вопрос решал простым объединением портов в мост и отключением rstp на нем. Что изменилось сейчас ?)
Chupaka
28.01.2019 09:48Расскажите поподробнее. Объединение портов в мост и навешивание на мост адреса локалки? Что-нибудь делали для того, чтобы пакеты из локалки не утекали к провайдеру? А то некоторые провайдеры могут за такое и порт заблокировать.
DaemonGloom
28.01.2019 10:46+1Объединялся порт WAN с LAN1, в который и подключалась приставка. С локальной сетью эти пакеты никак не смешивались — для неё оставались прочие порты. Впрочем, такая конструкция работала не только на микротиках, но и на бытовых роутерах.
Chupaka
28.01.2019 10:59Ну, это слишком простой случай. В статье более общее решение :)
kolu4iy
28.01.2019 11:48… которое безусловно создаёт нагрузку на процессор, в то время как бридж работает на уровне встроенного свитча. Любопытно было бы посмотреть на загрузку процессора при просмотре HD-канала.
Кстати, побочкой является «залипание» картинки на приставке при переключении каналов: дело в том, что отписывание от предыдущего потока может и не пройти мгновенно, и через snooping (который делается посредством ЦПУ) пойдут несколько потоков мультикаста. Свитч подобную красоту выдерживает без малейших проблем… В общем надо очень точно знать, зачем включается igmp-snooping и трафик приставки пробрасывается во внутреннюю сеть.Chupaka
28.01.2019 13:55Ну, про дополнительную нагрузку на процессор — тут не поспоришь. Но насколько она значительная… Вот включил три HD-канала, суммарно 20 Мбит/с. Скриншот сделан в тот редкий момент, когда строчка igmp-proxy изредка появляется — её практически нет в профайлере.
Скрытый текстkolu4iy
28.01.2019 15:19Про залипание — это как раз в те моменты, когда не хватает пропускной способности ЦПУ. У вашего устройства с этим всё в порядке, вы ничего и не заметите. На более слабых устройствах при использовании igmp snooping такое бывает, не раз нарывался.
Кстати, ради интереса: остановите полностью IPTV и оцените нагрузку на процессор — у самого CPU (не igmp-proxy) цифры понизятся? Не сразу после остановки, а примерно через минуту.
Да, разговор именно про fast leave идёт.Chupaka
28.01.2019 15:37У вашего устройства с этим всё в порядке, вы ничего и не заметите
Спасибо. Только это несчастный RB951-2n, который на MUM'ах раздавали всем просто так :) Какие ещё [значительно] более слабые устройства вы хотите делать основным шлюзом к провайдеру и насколько это адекватное решение?
Без нагрузки в виде трафика процессор, естественно, простаивает. Но нагрузка в виде пары десятков мегабит обычного интернет-трафика с котиками даёт сравнимую нагрузку на CPU.
sigmatik
28.01.2019 11:25В мост объединяются порт в который смотрит кабель провайдера и порт в который смотрит приставка, на него же вешается пппое, чтобы не блокировался на стороне провайдера, отключается rstp. Мог что то забыть, но вроде это все.
Enchi
29.01.2019 13:37А после обновление прошивки — перезагружаемся еще раз для обновления загрузчика, если в System — Routerboard — Settings стоит Auto Upgrade. Если не стоит — ставим галочку, нажимаем Upgrade и перезагружаем роутер.
easty
На самом деле на физическом интерфейсе надо поставить получение по dhcp без днс и шлюза по умолчанию. Так будет правильнее для верной работы мультикаста.
easty
Ну и есть вариант без прокси. Покинуть трафик с физ интерфейса бриджом до приставки. Она уже сама все получит и разберётся.
Henry7
Это слишком просто, на статью хабра не хватит.
Chupaka
А если приставка не на отдельном порту? Или вообще на вайфае?
NickSin
Зачем вообще передавать мультикаст по вафле на приставку? Он же полностью забьет канал. Ни одно другое устройство не будет иметь нормальной скорость на таком коннекте. Хотя если юзать Multicast Helper, то ситуация будет лучше. Хотя мне не особо помогло. Возможно прямолинейности рукам пока не хватает)
Chupaka
Не у всех проводов хватает :) Периодически наблюдаю на форуме про одного минского провайдера вопросы о подключении приставки по wi-fi.
trublast
С чего это мультикаст забьет канал? Допустим, видеопоток ~5-10 Мбит (это FullHD уже). Полоса wifi сейчас позволяет что на 2.4, что на 5ггц выдавать далеко за 100мбит. Конечно от зашумленности и эфира зависит, но тем не менее. Неужели у вас ноутбук, подключенный по wifi выдает меньше 10мбит? Чем приставка хуже?
В эфир что уникаст, что мультикаст по wifi вещается широковещательно, то есть забивает полосу.
Chupaka
IP-юникаст в вайфае передаётся wifi-юникастом, с подтверждением получения. IP-мультикаст от от клиента к точке доступа передаётся wifi-юникастом, а вот от точки доступа к wifi-клиенту — wifi-бродкастом, без подтверждения передачи. Для увеличения надёжности передачи без подтверждения канальная скорость wifi при передаче мультикаста снижается до минимума (6 mbps для a/g?).
Как результат (дальше цифры сравнительные в идеальных условиях, просто иметь представление о порядке масштабов катастрофы) — если у вас поток мультикаста 5 Мбит/с, то он занимает 83% эфирной полосы на скорости 6 Мбит/с. Остаётся 17% эфира, что на канальной скорости в 150 Мбит/с составляет 25 Мбит/с. Вот так от 5 Мбит/с мультикаста на ровном месте теряется 125 Мбит/с «хорошего» канала.
Как ещё одно следствие — если у wifi-оборудования для беспроводного p2p-моста нет тонких настроек для мультикаста (вроде Multicast Helper у MikroTik RouterOS), то рекомендуется настраивать так, чтобы мультикаст шёл от клиента к точке доступа, а не наоборот. Тогда мультикаст не будет давать таких больших просадок трафика.
trublast
Чуть ниже в комментариях видел уже ваши выкладки на предмет того, что скорость передачи WiFi понижается для отправки broadcast пакетов. Это для меня стало открытием (мне кажется, скорость передачи никак не связана с типом отправляемого пакета, иначе бы были постоянные «провалы» при отправке тех же arp who has и т.д.), и беглый гуглеж не дал ничего полезного. Вернее встречал аналогичные комментарии в духе «Real multicast is a form of broadcast at layer-2, and Wi-Fi can do that (send to a multicast group instead of individual unicast MAC addresses), but you are limited to the lowest available speed on the WAP», но без объяснения, почему так.
Не могли бы дать ссылки на источники?
trublast
сам себе отвечу: тут немного разжевано
Chupaka
Не то, чтобы источник, просто первый результат из Гугла: gtacknowledge.extremenetworks.com/articles/How_To/How-to-use-Wireless-Radio-Multicast-Settings-on-the-ExtremeWireless-solution, первый абзац в Additional notes
UPD: вот теперь и я обещаю обновлять комментарии перед ответом…
xRay
Сейчас уже не помню точно, но как я помню Ростелеком не давал по dhcp адрес на WAN пока не поднята PPPoE сессия.
NickSin
Это если подключение по Docsis. Если PON проведён, то там от коммутатора сразу все идет без PPPoE.