Статья участвует в Конкурсе статей по настройке оборудования Mikrotik с операционной системой RouterOS

Очень часто в сетях крупых и не очень ISP ходит бесплатное и не очень IPTV в виде multicast потоков. Все мы знаем, что настройка IPTV сводится буквально к двум конфигурационным строкам одного из пакетов (multicast):

/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 interface=ether1 upstream=yes
add interface=ether2

Но как быть в случае, если два и более провайдеров предоставляют вам IPTV? На ум приходит, конечно же, Bridge, но решение кажется не уместным в силу того, что два WAN будут объединены, что может негативно сказаться на вашей безопасности и, в частных случаях, может привести к авариям на сетях ISP, если вы такой не один. Что же, давайте попробуем решить этот вопрос.

Для начала, конечно же, создадим «брижд», здесь подразумевается, что ether1 и ether2 — это два аплинка (ISP1 и ISP2), предоставляющие нам услуги multicast IPTV.

/interface bridge add bridge=Bridge-WANandIPTV
/interface bridge port add interface=ether1 bridge=Bridge-WANandIPTV
/interface bridge port add interface=ether2 bridge=Bridge-WANandIPTV

Теперь нам надо разделить, какие группы от кого получать. Предположим, от  ISP2 мы хотим только 234.5.2.0/24, а от ISP1.

Примечание: узнать адресацию групп и качество вещание на них у конкретных ISP можно сперва проверив каждого отдельного оператора по плейлистам, предоставляемым публично.

/interface bridge filter
add action=accept chain=output dst-address=234.5.2.0/24 ip-protocol=igmp mac-protocol=ip out-interface=ether2
add action=drop chain=output ip-protocol=igmp mac-protocol=ip out-interface=ether2

Помните, мы говорили, что можем навредить обоим ISP (ISP1 и ISP2), если просто объединим порты в «бридж». Представьте, у ISP1 и ISP2 схемы исполнена в виде «VLAN на дом». Один широковещательный домен на доме у каждого из операторов. Мы соединили ISP1 и ISP2. Ничего страшного в начале не произошло, но... Появился еще один пользователь в вашем многоквартирном доме, который произвел аналогичные действия, например, поставив перед роутером простенький неуправляемый свитч. Вот в этот момент возникнет петля. Мы не знаем, как устроена сеть у ISP1 и ISP2, но давайте не будем участвовать в «вакханалии» вместе с неуправляемыми свитчами других пользователей, что бы оба оператора не заблокировали порты к нам. Для этого мы добавим еще одно правило в фильтрации бриджа, запрещающее обмен между портами.

/interface bridge filter
add action=drop chain=forward in-bridge=Bridge-WANandIPTV out-bridge=Bridge-WANandIPTV

Вернемся к настройке IGMP-Proxy, вместо аплинка ether1 мы используем бридж, а даунлинком у нас будет ether3. Но прежде, чем мы перейдем к непосредственной настройке IGMP, не стоит забывать, что для работы нам потребуется по IP адресу (любому) на аплинке и даунлинке, хоть /32. Давайте так и сделаем.

/ip address add interface=Bridge-WANandIPTV address=10.10.10.1/32
/ip address add interface=ether3 address=10.10.10.2/32

Непосредственно, настройка самого IGMP-Proxy. Старая конфигурация нам более не потребуется.

/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 interface=Bridge-WANandIPTV upstream=yes
add interface=ether3

Отлично!

На этом этапе IPTV полностью должно работать. Но у нас осталась главная проблема, это — интернет. Ведь, мы заменили ether1 и ether2 одним бриджом. А, следовательно, теперь все общение с операторами должно происходить через Bridge-WANandIPTV. Предположим, ISP2 дает услугу по PPPoE, а ether1 через L2TP.

Тогда правка конфигурации в отношении PPPoE клиента должна выглядеть следующим образом:

/interface pppoe-client set 0 interface=Bridge-WANandIPTV

Таким образом, мы заставили pppoe-client ходить не через ether2, а через Bridge-WANandIPTV.

Что касается L2TP, то правка здесь будет сводиться к переводу IP для внутренней маршрутизации с ether1 на Bridge-WANandIPTV.

/ip address set [find where interface=ether1] interface=Bridge-WANandIPTV

Заключение

Как мы видим, схема приобрела законченный вид и в нее можно добавлять необходимое количество аплинков. При этом транспортные сети операторов не будут страдать от петель и подобных проблем. Для любителей «перфекционизма» также осталось пространство для деятельности. Например, можно опять же в фильтре бриджа запретить хождение PPPoE пакетов на других операторов, что бы спать спокойно и не думать о краже паролей от вашего соединения. А также, с помощью вышеуказанного фильтра можно произвести еще ряд дополнительных действий по усилению вашей собственной защиты, но об этом уже в следующей статье.

Участник конкурса Александр

Просьба всем кто читает статьи, участвующие в конкурсе, ставить оценки.