в Лига слаботочников11 месяцев назад
Всем добра!
Это мой пятый пост, являюсь специалистом по видеонаблюдению и веду портал vcctv.ru
Уверен, что многие у кого имеется роутер Mikrotik и подключено iptv сталкивался с не тривиальной настройкой. Особенно, зная как это настраивается на простых роутерах типа Asus, Tplink и т.п., где достаточно поставить галочку что вот на таком-то порту работает iptv, становилось немного грустно. При первом же гуглении в результатах поиска появляются описания как настроить iptv с помощью пакета multicast, какие-то скрипты для iptv, если у вас провайдер Beeline и опять про пакет мультикаста. Лично сам помучившись с мультикастом, т.к. было ещё и интересно… столько нужно было действий совершить. Решил, что это не благодарное дело 🙂 и гораздно проще iptv настраивается, если порты объединить в свитч. Буду как всегда краток, приступаем к настройке RouterOS.
Первым делом создаём новый бридж. Подключаемся через Winbox, заходим в Bridge
Далее добаляем в бридж порт ether1 — куда скорее всего подключен у вас провайдер и порт, к которому подключена iptv приставка. В моем случае это было два телевизора, подключенных к 3 и 4 порту
Теперь в зависимости как вы получаете ip адрес от провадера на интерфейс bridge_IPTV прописываете статический адрес (IP-Address), или же если вы получаете его автоматом, то настраиваете dhcp client (IP-DHCP Client) на bridge интерфейс
Чтобы работал интернет в настройках IP-Firewall-NAT в правиле маскарадинга меняете Out. Interface на bridge_IPTV
И соответственно меняете необходимые правила фаервола на bridge_IPTV, примерно как указано на скриншоте
Теперь IPTV и интернет у вас работает на роутере Mikrotik. Получается достаточно простая и эффективная настройка, где нет привязка к адресам к в случае с настройкой мультикаста. И нагрузка на процессор получается минимальная.
Всем спасибо за внимание.
Перед настройкой нам нужно обновить прошивку и сбросить все предустановленные настройки.
Если вы не читали первую часть “Mikrotik: выбор домашнего маршрутизатора“, то вкратце повторю как сбросить настройки, по обновлению прошивки читаем первую часть (ближе к концу).
Подключаемся к маршрутизатору патчкордом в любой порт кроме первого и запускаем WinBox. Через некоторое время наш роутер появляется в списке доступных устройств.
На данном этапе НЕ ПОДКЛЮЧАЕМ КАБЕЛЬ ОТ ПРОВАЙДЕРА В НАШ РОУТЕР!
Клацаем мышкой на MAC-адрес что бы он появился в строке Connect To, в поле Login вводим admin, поле пароля оставляем пустым и нажимаем Connect.
Подключившись идём в меню System – Reset Configuration, выставляем галочки No Default Configuration, Do Not Backup и нажимаем Reset Configuration.
Через некоторое время наш маршрутизатор перезагрузится и снова появится в WinBox, на этот раз уже без IP-адреса. Теперь мы готовы приступить к настройкам.
Снова подключаемся к маршрутизатору и заходим в меню System – Users и добавляем нового пользователя с полными правами.
Выходим из WinBox и подключаемся уже новым пользователем
Снова заходим в System – Users и отключаем старого пользователя. Делается это дабы исключить подбор пароля к вашему роутеру, т.к. практически всем известно имя пользователя по умолчанию. В принципе root для этого тоже не слишком подходит, но для примера пойдёт, вы же придумайте свой логин.
На этом в принципе подготовительную часть можно считать завершённой и далее приступим непосредственно к настройкам.
Сразу оговорюсь что в данном примере я подключение от провайдера буду настраивать на физический пятый порт. Сделано это в целях экономии розетки. У меня роутер установлен далеко от розетки и питание на него я подаю по PoE, PoE-in в моём маршрутизаторе (MikroTik hAP ac²) это первый физический порт (который подписан Internet) и если в него воткнуть шнурок от провайдера то придётся подавать питание через PoE-инжектор – раз розетка, плюс розетка на коммутатор (switch), а раз уж все равно кабель от маршрутизатора тянуть к свитчу, то глупо не задействовать PoE от свитча.
Для тех кто не в курсе – у MikroTik’а нет такого понятия как выделенный WAN-порт как на бытовых маршрутизаторах, тут любой порт может выполнять любую роль. Хоть четырёх провайдеров в него заводите, а пятый порт на свитч ))
В принципе все настройки я старался сделать через bridge, так что никому не помешает потом перетусовать все физичесие порты под свои нужды, на работоспособность это уже никак не повлияет.
Но ближе к делу.
В первую очередь идём в меню Interfaces и отключаем порт ether5, для этого выделяем его и нажимаем на красный крестик. После этого можно безбоязненно подключать к нему кабель от интернет-провайдера. Сделано это что бы исключить попытки вторжения на наше устройство пока оно не настроено. На дальнейшие настройки это никак не повлияет.
Далее идём в меню Bridge и добавляем два моста – bridge1-LAN и bridge2-WAN
Далее открываем там же вкладку Ports и добавляем там порты в наши мосты )) Порты ether1-ether4 и wlan1-wlan2 в бридж bridge1-LAN, порт ether5 соответственно в bridge2-WAN
-
Добавляем LAN порты в bridge1-LAN -
Добавляем WAN порты в bridge1-WAN -
Bridge – настроеные порты
Затем открываем меню Interfaces и на вкладке Interface List добавляем список ls-LAN-all нажав на кнопку Lists. Затем в данный список добавляем bridge1-LAN
-
Добавляем список интерфейсов -
Добавляем в список bridge1-LAN
На этом настройка портов и мостов закончена, перейдем к настройке локальной сети ))
Перейдём в меню IP – Addresses и добавим новый адрес (в моём случае это 192.168.253.1, в вашем случае это может быть другой) присвоив его интерфейсу bridge1-LAN. Это и будет адрес нашего маршрутизатора. Адрес нужно добавлять с сетевой маской, так как на скриншоте. В принципе маску можно писать и полной – 192.168.253.1/255.255.255.0
Далее нам нужно настроить DHCP-сервер, который будет назначать IP-адреса сетевым устройствам в нашей локальной сети. Для этого перейдём в меню IP – DHCP Server и воспользуемся там мастером настроек нажав кнопку DHCP Setup. В принципе для типовой конфигурации можно со всем согласиться как есть привязав сервер к интерфейсу bridge1-LAN, единственно я добавил гугловские адреса DNS-серверов. Здесь может быть несколько вариантов – взять DNS-сервера от провайдера, добавить свои, добавить гугловские, настроить DNS-сервер на нашем маршрутизаторе и раздавать его. Последнему варианту будет посвящена отдельная статья, а пока оставим так – пусть будет гугл.
-
Настройка DHCP-сервера 1 -
Настройка DHCP-сервера 2 -
Настройка DHCP-сервера 3 -
Настройка DHCP-сервера 4 -
Настройка DHCP-сервера 5 -
Настройка DHCP-сервера 6
И напоследок переименуем наш DHCP-сервер в dhcp1-LAN, пригодится в будущем.
Начнём с настройки DHCP-клиента, для этого перейдем в меню IP – DHCP Client. Откроем вкладку DHCP Client Options и добавим там новый параметр со следующими значениями:
Name: parameter_request_list Code: 55 Value: 0x010306212A79F9
Затем на вкладке DHCP Client добавляем нового клиента привязав его к интерфейсу bridge2-WAN.
Add Default Route выбираем special_classless, что позволяет получить classless маршрут, так и маршрут по умолчанию в стиле MS.
На вкладке Advanced добавляем DHCP Options: clientid, hostnameи наш parameter_request_list. По поводу последнего параметра – не знаю точно передаёт ли билайн до сих пор что нибудь, но на всякий случай пусть будет, отключить никогда не поздно. Default Route Distance ставим 10.
/ip dhcp-client add add-default-route=special-classless default-route-distance=10 dhcp-options= clientid,hostname disabled=no interface=bridge2-WAN
Теперь настроим непосредственно L2TP подключение.
Перейдём в меню PPP и добавим L2TP Client. Назовём его l2tp-out1-beeline, Max MTU установим 1460, Max MRU 1500. Затем на вкладке Dial Out заполним поля Connect To: tp.internet.beeline.ru, User: ваш логин выданный провайдером, Password: соответственно ваш пароль, поставим галочку Add Default Route, Default Route Distance: 5, снимем галочки с mschap1 и pap
-
Настройка L2TP – General -
Настройка L2TP – Dial Out
Выбираем меню Interfaces и переходим на вкладку Interface List, добавляем новый список ls-WAN-all. Затем в этот список добавляем интерфейсы bridge2-WAN и l2tp-out1-beeline
-
Настройка firewall – добавляем новый список интерфейсов -
Настройка firewall – добавляем интерфейсы в список -
Настройка firewall – список интерфейсов
Меню IP – Firewall на вкладке Address Lists добавляем список под названием LocalNet с нашими адресами – 192.168.253.0/24
Добавляем привила firewall. Что бы не пихать сюда кучу картинок напишу все правила скриптом, кто не знает, то просто вводите данные команды в окне терминала (меню New Terminal). Данные правила самые базовые, но на первых порах их должно быть достаточно.
/ip firewall filter add action=accept chain=input connection-state=established,related add action=accept chain=forward connection-state=established,related add action=drop chain=input in-interface-list=ls-WAN-all add action=drop chain=forward connection-state=invalid add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=ls-WAN-all
В результате должно выглядеть так как на скрине ниже, за исключением правил для IPTV, их добавим чуть попозже ))
На этом этапе можно включить отключенный интерфейс ether5 и попробовать что нибудь попинговать из терминала на MikroTik’е
Как видим интернет на маршрутизаторе уже есть и работает, но если попытаться сделать тоже самое с компьютера из локальной сети то ничего не получится, для этого добавим правила NAT
/ip firewall nat add action=masquerade chain=srcnat out-interface-list=ls-WAN-all src-address=192.168.253.0/24
После этого у нас появился интернет и в нашей локальной сети.
Если интернет работает, но некоторые сайты почему то не открываются (не по причине блокировки Роскомнадзором) то можно попробовать добавить правило в Mangle
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 protocol=tcp tcp-flags=syn tcp-mss=1453-65535
IPTV от билайна можно настроить двумя способами. Если вам удобнее протянуть кабель от приставки непосредственно к вашему MikroTik’у, то проще всего добавить ещё один порт в bridge2-WAN, предварительно удалив его из brifge1-LAN и подключить приставку в этот порт, например так:
Всё, больше ничего делать не нужно. Именно поэтому я для WAN сделал отдельный мост, а не настраивал как внешний интерфейс непосредственно порт ether5.
Если же вам удобнее IPTV-приставку подключить в коммутатор (switch), то продолжим настройку.
С официального сайта MikroTik из раздела Software нужно будет скачать Extra packages для своей версии прошивки. В моём случае это файл all_packages-arm-6.45.1.zip, т.к. я для написания данного материала пользуюсь MikroTik hAP ac² (RBD52G-5HacD2HnD).
Из полученного архива нам нужен файл multicast-6.45.1-arm.npk (в вашем случае может быть другой, в зависимости от архитектуры процессора и версии прошивки).
Для установки данного пакета в наш MikroTik нужно в WinBox открыть меню Files и в открывшееся окно просто перетащить нужный нам файл. Вместо того что бы перетаскивать, можно воспользоваться кнопкой Upload или просто сделать Copy-Paste. У меня почему то не получилось сделать это из WinBox и я воспользовался доступом через web-интерфейс, который в принципе почти полностью повторяет функционал WinBox, за исключением естественно возможности подключения по MAC-адресам. Так же для загрузки можно воспользоваться доступом по FTP или SFTP.
-
WinBox – logon -
WinBox – WebFig -
WinBox – Files
Теперь просто перезагрузим роутер – меню Sytem – Reboot и после перезагрузки данный дополнительный пакет будет установлен в систему, убедиться в этом можно перейдя по меню System – Packages
После установки необходимого нам пакета multicast приступим непосредственно к настройкам.
В меню Bridge открываем bridge1-LAN и включаем там IGMP Snooping
Тоже из консоли:
/interface bridge set bridge1-LAN igmp-snooping=yes
Routing – IGMP Proxy – нажимаем кнопочку Setup и устанавливаем параметры Query Interval: 30 секунд и Query Response Interval: 20 секунд, Quick Leave оставляем выключенным.
Из консоли:
/routing igmp-proxy set query-interval=30s query-response-interval=20s quick-leave=no
Теперь в IGMP Proxy добавляем интерфейс bridge2-WAN с параметрами Alternative Subnets: 0.0.0.0/0, включаем Upstream и интерфейс bridge1-LAN – никаких параметров не меняем.
Из консоли:
/routing igmp-proxy interface add alternative-subnets=0.0.0.0/0 interface=bridge2-WAN upstream=yes add interface=bridge1-LAN
Осталось добавить пару правил в firewall:
/ip firewall filter add chain=input protocol=igmp action=accept add chain=forward dst-address=232.0.0.0/5 protocol=udp action=accept
Нужно проследить что бы данные правила были выше первого дропа в цепочке, т.е. правило chain=input protocol=igmp action=accept должно быть выше первого дропа в цепочке input, а правило chain=forward dst-address=232.0.0.0/5 protocol=udp action=accept должно быть выше первого дропа в цепочке forward.
Порядок следования правил в WinBox можно поменять просто перетащив нужное правило на своё место – вверх или вниз. В нашем случае результат будет таким:
Не забывайте к каждому правилу добавлять комментарии, что бы потом не запутаться какое правило за что отвечает.
С настройками IPTV на MikroTik на этом закончим – телевизор показывает ))
В принципе у нас уже всё работает, но необходимо внести ещё парочку мелких изменений в настройки нашего MikroTik.
Отключим все неиспользуемые нами сервисы. Для этого перейдём в меню IP – Services и отключим всё, что мы не используем, а для тех что используем ограничим доступ только из локальной сети:
/ip service set telnet disabled=yes set ftp disabled=yes set www address=192.168.253.0/24 set ssh address=192.168.253.0/24 set api disabled=yes set winbox address=192.168.253.0/24 set api-ssl disabled=yes
И ограничим обнаружение нашего маршрутизатора только в локальной сети:
/ip neighbor discovery-settings set discover-interface-list=ls-LAN-all
Ну и включим поддержку UPnP для устройств и программ поддерживающих данную технологию, например для торрентов, что бы он смог принимать входящие соединения. Если поддержка UPnP не нужна, то лучше данную опцию не включать, т.к. она может нести в себе определённую угрозу вашей сети.
/ip upnp set allow-disable-external-interface=yes enabled=yes /ip upnp interfaces add interface=bridge1-LAN type=internal add interface=bridge2-WAN type=external
На этом часть про базовые настройки маршрутизатора на основе RouterOS можно считать завершённой.
За бортом остались настройки Wi-Fi, настройки DNS и много чего ещё, но это уже тема последующих статей.
Все приведённые примеры использовались и работают на маршрутизаторе MikroTik hAP ac² (RBD52G-5HacD2HnD-TC) с версией RouterOS 6.45.1.
Отдельно хочу сказать огромное человеческое спасибо своему хорошему другу Владу Глазкову, без его подсказок и советов данной статьи просто не было бы.
С благодарностью приму конструктивную критику и замечания в комментариях.
Обновление от 20.07.2019:В настройках DHCP клиента в parameter_request_list добавил получение Classless Static Route Option, правда в моём регионе (Красноярск) билайн кажется “забил” на это (
Обновление от 17.10.2019: В настройках DHCP клиента удалён параметр parameter_request_list и Add Default Route изменён с yes (по умолчанию) на special-classless, что позволяет получать как classless маршруты так и маршрут по умолчанию в стиле MS.
[Всего голосов: 20 — Общая оценка: 5]
IPTV в настоящее время стал стандартом де факто, практически полностью вытеснив «классическое» кабельное телевидение. Сегодня практически любой провайдер предлагает комплексные тарифные планы, включающие телевидение и интернет, предоставляет в аренду уже настроенное оборудование и вообще всякими способами стремится завлечь абонента в свои сети. И это хорошо, здоровая конкуренция снижает цены и повышает качество услуг. Но как быть, если вы предпочитаете настраивать свое сетевое оборудование самостоятельно? Сегодня мы как раз поговорим об этом.
Подключение IPTV-приставки непосредственно в сеть провайдера
Самый простой и нетребовательный к ресурсам способ смотреть IPTV, полностью оправдан, если ваша приставка не имеет никаких иных функции, которые требуют доступа к ресурсам локальной сети. Если вспомнить былые времена, то многие провайдеры при подключении IPTV ставили перед роутером простой свитч, куда включали IPTV-приставку, фактически мы повторим эту схему, но с использованием возможностей Mikrotik.
Прежде всего определим порт, в который будет подключена приставка и выведем его из моста локальной сети (если он туда включен), в нашем случае это будет порт ether4. Для этого перейдем в Bridge — Ports и удалим запись для нужного порта.
Затем создадим новый мост и введем в него порт приставки и внешний порт, смотрящий в сторону провайдера:
Чтобы избежать возможных конфликтов с активным оборудованием провайдера отключим в свойствах моста протокол RSTP:
Если вы используете для подключения к интернету коммутируемое подключение, то в его свойствах вместо внешнего интерфейса (ether5 в нашем примере) следует указать интерфейс моста bridge2. В данном случае это будет PPPoE подключение провайдера Ростелеком.
При использовании иных методов доступа в интернет не забудьте изменить порт внешнего подключения с ether5 на bridge2, а также внести аналогичные изменения в правила файрволла, при коммутируемом подключении (PPPoE) делать этого не надо.
После чего достаточно перезагрузить приставку, и она самостоятельно «разберется» с настройками, после чего вы сможете полноценно пользоваться услугой IPTV вашего провайдера.
Настройка IGMP Proxy
Однако предложенный выше способ может быть не всегда приемлем, вместо приставки могут использоваться иные, более функциональные устройства: SmartTV, TV BOX на Android и т.д. и т.п., которым нужно обеспечить доступ к ресурсам локальной сети. Также приставка может быть подключена не напрямую к роутеру, а через дополнительный коммутатор, либо вы еще по какой-либо причине не хотите выводить устройство за пределы домашней сети. В этом случае потребуется настройка IGMP Proxy, который обеспечит перенаправление мультикастового потока IPTV в локальную сеть и прохождение IGMP-пакетов для управления этим потоком.
В базовой поставке RouterOS необходимая функциональность отсутствует и нам потребуется установить дополнительный пакет multicast. Для этого на официальном сайте следует скачать набор Extra packages для своей версии прошивки и архитектуры. Если у вас более старая версия RouterOS, то обновите ее.
Затем откройте Winbox, перейдите в раздел Files и загрузите на устройство пакет multicast, это можно сделать простым перетаскиванием, затем перезагрузите роутер.
Если вы настраиваете IPTV от Ростелеком, то на внешнем интерфейсе, смотрящем в сторону провайдера, у вас не будет IP-адреса, так как протокол PPPoE, через который осуществляется доступ в интернет, работает на канальном уровне и не требует IP-адресов. Для работы IPTV внешнему интерфейсу необходимо будет присвоить адрес. Поддержка Ростелекома предписывает использовать адрес 1.0.0.1/30, на наш взгляд использование данного адреса не совсем корректно (он не является приватным) и, как показывает практика, вы можете присвоить интерфейсу любой адрес, но официальные рекомендации стоит иметь ввиду, особенно если больше ничего не помогает.
Если вы предпочитаете работу в консоли, то выполните:
/ip addressadd address=1.0.0.1/30 interface=ether5 network=1.0.0.0
Теперь перейдем в раздел Routing — IGMP Proxy и добавим внешний интерфейс, на который приходит IPTV. В поле Interface укажите внешний интерфейс, в нашем случае ether5, в поле Alternative Subnets — 0.0.0.0/0 и установите флажок Upstream.
Что касается Alternative Subnets, то данная настройка требует некоторых пояснений, в ней указывается подсеть, из которой осуществляется вещание, так как Ростелеком использует собственную изолированную сеть, то указание 0.0.0.0/0, т.е. принимать любые потоки, будет оправдано. Если же вы настраиваете IPTV на интерфейсе, смотрящем непосредственно в интернет, то желательно явно указать подсеть, уточнив ее в техподдержке провайдера.
Затем добавим внутренний интерфейс, куда следует перенаправить IPTV-поток, в этом качестве укажем мост локальной сети, никаких других настроек делать не нужно.
После чего нажмите кнопку Settings и установите флажок Quick Leave для быстрого переключения между каналами.
Также можно быстро выполнить все приведенные выше настройки через терминал:
/routing igmp-proxyset quick-leave=yes/routing igmp-proxy interfaceadd alternative-subnets=0.0.0.0/0 interface=ether5 upstream=yesadd interface=bridge1
Теперь осталось настроить правила брандмауэра для прохождения IPTV-трафика. Для этого добавим следующие записи: Chain — input, Protocol — igmp, In. Interface — ether5, так как по умолчанию действие accept, то на закладку Action можно не переходить. Данное правило разрешить входящий IGMP-трафик на внешнем интерфейсе.
Второе правило разрешит транзитный IPTV-трафик: Chain — forward, Protocol — udp, Dst. Port — 5000, In. Interface — ether5. Отдельного пояснения требует номер порта, Ростелеком использует порт 5000, для других провайдеров следует уточнить это значение в поддержке.
Также не забудьте перетащить данные разрешающие правила выше запрещающих в каждой из цепочек.
В терминале эти же правила добавляются командами:
/ip firewall filteradd action=accept chain=input comment=IGMP in-interface=ether5 protocol=igmpadd action=accept chain=forward comment=IPTV dst-port=5000 in-interface=ether5 protocol=udp
После выполнения данных настроек перезагрузите IPTV-приставку и, если вы не допустили ошибок, все должно заработать.
IPTV через Wi-Fi
Скажем сразу, использовать беспроводную сеть, особенно в диапазоне 2,4 ГГц, для доставки IPTV — не самая удачная идея. Следует понимать, что Wi-Fi является разделяемой средой и вы делите доступную пропускную способность не только с клиентами вашей сети, но и с устройствами соседних сетей, работающих в том же частотном диапазоне. Проще говоря, даже если ваши собственные устройства не занимают Wi-Fi, то за стеной может оказаться ноутбук соседа, которые на этом же самом канале качает торренты, поэтому прием IPTV, особенно с HD-качеством в таких условиях может оказаться затруднительным.
Но если вы все-таки решили транслировать IPTV через Wi-Fi, то выполните следующие настройки: перейдите в свойства беспроводного интерфейса на закладку Wireless и перейдите в режим Advanced Mode.
Затем установите значения опций: WMM Support — enabled и Multicast Helper — full.
Это включит Wi-Fi multimedia и позволит отправлять мультикаст-пакеты на mac-адреса беспроводных клиентов, но не забывайте, что вы делите полосу пропускания не только между своими устройствами, поэтому работа таких клиентов может не соответствовать ожиданиям, особенно в городских условиях.
Используемые источники:
- https://pikabu.ru/story/nastraivaem_iptv_na_routere_mikrotik_6538740
- https://grib69.ru/2019/07/16/mikrotik-nastrojka-podkljuchenija-l2tp-ot-bilajn/
- https://interface31.ru/tech_it/2019/08/nastroyka-iptv-v-routerah-mikrotik-na-primere-rostelekom.html