Столкнулся с небольшими граблями при работе с мультикастом на CCR1009-7G-1C-1S+, прошивка и boot последняя 6.47.8.
Коротко суть проблемы. Есть ISP-провайдер, который дает интернет и кабельное телевиденье по оптике за 20 км в соседний поселок. На стороне провайдера Dell Force10 с модулем 3К 40км, зашитым под микротик.
На другом конце CCR1009 с ответным SFP 3K 40km SM. Фактически линия 19,5 км, общие потери 9,5 дБ. Интернет тестировали, без проблем качает до гигабита.
Оптический линк заходит в WAN-Combo, где софтово принимаются 2 тегированные VLAN:
- VLAN 3008, по которому дается выход в интернет. Провайдер дает тарифный плат 200/200 Мбит с типом подключения РРРоЕ. Фактическое потребление траффика в среднем 15 Мбит, пики не более 50 Мбит.
- VLAN 777 – мультикаст от провайдера, в котором идет IP-пакет телевидени, это порядка 480 Мбит UDP мультикаст.
CCR1009 работает как главный шлюз и контроллер на небольшом комплексе. Есть CAPsMAN на 22 двухдиапазонные точки, есть 3 подсети на 3 рабочих бриджах. С CCR1009 по 10-гбитному SFP уходит транк с 3 тегами на CRS317, откуда уже идет коммутация на 10 нижестоящих свичей. По транку приход не более 250-300 Мбит. VLAN софтовый, мы тестировали в нагрузке CCR1009 до 5+ Гбит спокойно прокачивает через транк.
К медным портам № 5-6-7 подключены 3 трансмодулятора TERRA miq440, они забирают мультикаст и формируют сигнал для внутренней коаксиальной сети в формате DVB-C.
Для обработки мультикаста мы пробовали 3 варианта конфигурации:
1) Первый вариант: добавили vlan 777 в interface-list=LAN и поместили его в специальный bridge-multicast, в который присоединены порты 5-6-7;
2) При втором варианте я настраивал IGMP Proxy: vlan 777 был указан как Upstream и находился в interface-list=LAN, также в проксю был добавлен bridge-multicast;
3) В третем варианте я пробовал настраивать PIM, добавив VLAN как интерфейс, а IP трансмодуляторов как RP.
Суть проблемы в том, что независимо от варианта обработки мультикаста, на самих трансмодуляторах каждые N секунд вываливаются ошибки (CC errors), соответственно на телевизорах иногда бывают «кубики». При этом на стороне ISP все ОК.
Что мы уже пробовали делать:
1) Меняли порт на потоковом сервере;
2) На Combo-интерфейсе 0 ошибок, дропов и коллизий;
3) На VLANe 0 ошибок;
4) На портах в сторону линеек 0 ошибок;
5) На бридже 0 ошибок;
6) Пробовал добавлять правила input/forward для UDP;
7) Пробовал отключать все правила файрволла;
8) Меняли порт UDP;
9) Включали-отключали IGMP Snooping на бридже;
Загрузка CPU в среднем до 5%, при высокой активности пользователей может вырастать до 10-12%, в пиках 15%. Использование памяти не более 200-350 МБ. Ни одно из ядер не нагружено даже до 70%.
Из нюансов только то, что ISP не может пропустить IGMP, а просто наливает мультикаст на порт в VLANи отдает в сторону клиента.
ниже кусок конфига:
Код: Выделить всё
/interface bridge
add igmp-snooping=yes name=bridge-multicast protocol-mode=none
/interface bridge port
add bridge=bridge-multicast interface=ether5
add bridge=bridge-multicast interface=ether6
add bridge=bridge-multicast interface=ether7
/interface vlan
add interface=combo1-wan name=vlan-777-catv vlan-id=777
add interface=combo1-wan name=vlan-3008-internet vlan-id=3008
/interface list
add name=LAN
add name=WAN
/interface list member
add interface=combo1-wan list=WAN
add interface=vlan-777-catv list=LAN
add interface=vlan-3008-internet list=WAN
add interface=pppoe-internet list=WAN
add interface=bridge-multicast list=LAN
/ip address
add address=10.253.0.1/24 interface=bridge-multicast network=10.253.0.0
add address=10.253.0.2/24 interface=vlan-777-catv network=10.253.0.0
/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 interface=bridge-multicast
add alternative-subnets=0.0.0.0/0 interface=vlan-777-catv upstream=yes
/ip settings
set tcp-syncookies=yes
/ip firewall filter
add action=add-src-to-address-list address-list=ddos-blacklist \
address-list-timeout=30m chain=input comment="===== DDOS =====" \
connection-limit=50,32 in-interface-list=WAN protocol=tcp
add action=drop chain=input connection-limit=3,32 in-interface-list=WAN \
protocol=tcp src-address-list=ddos-blacklist
add action=jump chain=forward comment="===== SYN-FLOOD =====" \
connection-state=new in-interface-list=WAN jump-target=SYN-Protect \
protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=WAN \
jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet \
protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp \
tcp-flags=syn
add action=accept chain=input comment=\
"===== INPUT: accept established,related,untracked =====" \
connection-state=established,related,untracked
add action=drop chain=input comment="===== INPUT: drop invalid =====" \
connection-state=invalid
add action=accept chain=input comment="===== INPUT: accept ICMP =====" \
protocol=icmp
add action=accept chain=input comment="===== MULTICAST CATV INPUT =====" \
in-interface=vlan-777-catv
add action=accept chain=forward comment=\
"===== MULTICAST CATV FORWARDING =====" dst-port=20002 in-interface=\
vlan-777-catv protocol=udp
add action=drop chain=input comment=\
"===== INPUT: drop all not coming from LAN =====" in-interface-list=!LAN
add action=accept chain=forward comment=\
"===== FORWARD: accept established,related, untracked =====" \
connection-state=established,related,untracked
add action=drop chain=forward comment="===== FORWARD: drop invalid =====" \
connection-state=invalid
add action=drop chain=forward comment=\
"===== FORWARD: drop all from WAN not DSTNATed =====" \
connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
Attachments
Screenshot_2020-12-12 miq440 - MFA-ACADEMY-3.png
Крайний вариант - ставить до микротика промежуточный коммутатор, на нем принимать мультикаст, отдавать напрямую на линейки, а интернет отдавать транзитом на микротик.