IGMP Proxy issue

We are on a big project, making IPTV service for our clients based on Mikrotik RBs. Total project includes about 80 streams, 250 RB800 (one on every building), 2000+ clients
Scenario:
1 IPTV Streamer
1 RouterBoard800
2 Clients - 2 STB (ether 10, 12 and 13)

Everything works like a charm except 1 big issue.
Problem:
Client A(first STB) joins 1st channel / 1 stream goes to interface eth10.
Client B(second STB) joins 1st channel / same stream goes to interface eth 12.

So far so good.

Clients B(ether12) leaves 1st channel and goes to 2nd channel / 2 streams goes to eth12 - trick is that 1st channel stream doesnt stop till client A (STB/ether 10) doesnt leave 1st channel. Exception is that Client B leaves every stream except streams already being recieved on any other interface/STBs.


Theoreticaly if we got 40 Clients/Interfaces and 40 streams/mcast groups, 1 of clients could end up with 40 streams hitting his interface and he is only watching 1.

Somehow client’s(on 1 interface) ‘leave message’, who is leaving channel already watched by other clients (on other interface), is beeing ignored on same router for that client’s interface.

We tried this scenario with few versions of Ros and devices. PIM/IGMP isn’t option for us.

Log:

01:50:16 igmp-proxy,debug RECV IGMP leave message from 1.10.0.254 to 224.0.0.2 on 
ether2-stb 
01:50:16 igmp-proxy,debug leaving multicast group 232.100.3.2 on ether1-ulaz 
01:50:16 igmp-proxy,debug sending IGMP query to 232.100.3.2 on ether2-stb 
01:50:16 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
3.2 on ether1-ulaz 
01:50:16 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e 
01:50:16 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.2 on ether2-stb 
01:50:16 igmp-proxy,debug joining multicast group 232.100.6.2 on ether1-ulaz 
01:50:16 igmp-proxy,debug ignoring IGMP message: source address is local: 
01:50:16 igmp-proxy,debug   source=141.170.196.139 
01:50:16 igmp-proxy,debug   interface=ether1-ulaz 
01:50:16 igmp-proxy,debug ignoring request from myself: 
01:50:16 igmp-proxy,debug   source=141.170.196.139 
01:50:16 igmp-proxy,debug   destination=232.100.6.2 
01:50:16 igmp-proxy,debug received notification: 
01:50:16 igmp-proxy,debug   source=141.170.196.129 
01:50:16 igmp-proxy,debug   destination=232.100.6.2 
01:50:16 igmp-proxy,debug adding  multicast forwarding entry 
01:50:16 igmp-proxy,debug group: 232.100.6.2 
01:50:16 igmp-proxy,debug source: 141.170.196.129 
01:50:17 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
3.2 on ether1-ulaz 
01:50:17 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e 
01:50:18 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.2 on ether2-stb 
01:50:18 igmp-proxy,debug sending IGMP query to 232.100.3.2 on ether2-stb 
01:50:20 igmp-proxy,debug RECV IGMP leave message from 1.10.0.254 to 224.0.0.2 on 
ether2-stb 
01:50:20 igmp-proxy,debug leaving multicast group 232.100.6.2 on ether1-ulaz 
01:50:20 igmp-proxy,debug sending IGMP query to 232.100.6.2 on ether2-stb 
01:50:20 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
6.2 on ether1-ulaz 
01:50:20 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e 
01:50:20 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.3 on ether2-stb 
01:50:20 igmp-proxy,debug adding  multicast forwarding entry 
01:50:20 igmp-proxy,debug group: 232.100.6.3 
01:50:20 igmp-proxy,debug source: 141.170.196.129 
01:50:20 igmp-proxy,debug adding  multicast forwarding entry 
01:50:20 igmp-proxy,debug group: 232.100.6.3 
01:50:20 igmp-proxy,debug source: 178.209.0.85 
01:50:21 igmp-proxy,debug RECV IGMPv2 membership report from 1.10.0.254 to 232.100
.6.3 on ether2-stb 
01:50:21 igmp-proxy,debug RECV IGMP membership query from 178.209.0.85 to 232.100.
6.2 on ether1-ulaz 
01:50:21 igmp-proxy,debug ignoring IGMP message: received on the upstream interfac
e

Hey Ropeba ?
Would you mind doing the following:
/routing igmpproxy print
and past the result there ?
Thank you

[admin@MikroTik] /routing igmp-proxy> pri
              quick-leave: yes
           query-interval: 2m10s
  query-response-interval: 10s

too bad
quicklive=yes should do the trick
you have it on but same problem.

normis, please can you help?

you could try to set up PIM instead of IGMP proxy and see if that corrects something.

Check MFC under ‘/routing igmp-proxy mfc’ if there are correct out interfaces for the rules.

Hi,
right now we have deployed over 250 GEPON ONUs which don’t support PIM. Our only solution is to use IGMP proxy.
(we dont have this problem with PIM, but we do have othr problem with GEPON and PIM, so the only thing left is IGMP proxy)

PIM explicitly sets what IGMP version to use, by default, it is IGMPv2, you can try to set other IGMP version there, most probably IGMPv1

IGMP-proxy uses auto-configuration to determine what version of IGMP to use. that is why you could have problem with PIM and not with IGMP-Proxy.

Also, are you sure that your devices are sending leave (larger section or relevant Log messages could be helpful) just open new temrinal and there issue “/log print follow” check if RouterOS is receiving leave messages correctly.

Also, if source of stream is in same network as interface address multicast is running on, you can skip setting up alternative-networks, also, try adding only source address network there.

Hi Janisk,

let’s begin from start. We must to use IGMP Proxy, as i said before, PIM is not an option (GEPON limitation) .
This is simple configuration whitch doesn’t work OK with mikrotik IGMP proxy.

In this case on STB1 I play “channe 1”, on STB2 play “channel 1” and everything is ok. After that i change chanel on STB1 to “chanel 2” and I watch that channel without problem. But, traffic of “channel 1” still hitting interface of STB1 and it will not stop till I change channel on STB2 to any other. It’s simple configuration of IGMP proxy, and i doubt that I can make any mistake. That looks like a bug in IGMP proxy in ROS.

log is here

23:16:27 igmp-proxy,debug RECV IGMP leave message from 1.220.0.2 to 224.0.0.2 on  ether10-stb1 

23:16:27 igmp-proxy,debug sending IGMP query to 239.100.6.5 on ether10-stb1 

23:16:27 igmp-proxy,debug RECV IGMPv2 membership report from 1.220.0.2 to 239.100.6.8 on ether10-stb1 

23:16:27 igmp-proxy,debug joining multicast group 239.100.6.8 on ether2-ulaz 

23:16:27 igmp-proxy,debug ignoring IGMP message: source address is local: 

23:16:27 igmp-proxy,debug   source=192.168.84.230 

23:16:27 igmp-proxy,debug   interface=ether2-ulaz 

23:16:27 igmp-proxy,debug ignoring request from myself: 

23:16:27 igmp-proxy,debug   source=192.168.84.230 

23:16:27 igmp-proxy,debug   destination=239.100.6.8 

23:16:27 igmp-proxy,debug received notification: 

23:16:27 igmp-proxy,debug   source=192.168.84.191 

23:16:27 igmp-proxy,debug   destination=239.100.6.8 

23:16:27 igmp-proxy,debug adding  multicast forwarding entry 

23:16:27 igmp-proxy,debug group: 239.100.6.8 

23:16:27 igmp-proxy,debug source: 192.168.84.191 

23:16:27 igmp-proxy,debug RECV IGMPv2 membership report from 1.220.0.2 to 239.100.6.8 on ether10-stb1 

23:16:28 igmp-proxy,debug sending IGMP query to 239.100.6.5 on ether10-stb1 

23:16:28 igmp-proxy,debug sending IGMP query to 239.100.6.5 on ether11-stb2 

23:16:28 igmp-proxy,debug RECV IGMPv2 membership report from 1.221.0.253 to 239.100.6.5 on ether11-stb2 

23:16:29 igmp-proxy,debug sending IGMP query to 224.0.0.1 on ether10-stb1 

23:16:29 igmp-proxy,debug sending IGMP query to 224.0.0.1 on ether11-stb2 

23:16:29 igmp-proxy,debug RECV IGMPv2 membership report from 1.220.0.2 to 239.100.6.8 on ether10-stb1 

23:16:29 igmp-proxy,debug RECV IGMPv2 membership report from 1.220.0.2 to 239.255.255.250 on ether10-stb1 

23:16:29 igmp-proxy,debug RECV IGMPv2 membership report from 1.221.0.253 to 239.100.6.5 on ether11-stb2 

23:16:31 igmp-proxy,debug ignoring IGMP message: source address is local: 

23:16:31 igmp-proxy,debug   source=192.168.84.230 

23:16:31 igmp-proxy,debug   interface=ether2-ulaz

Best regards…

thanks for report. working on a fix

Hi all,

I have the same problem and I’m very interested when fix will be available.

Best regards,
Ivan

bump

no good news yet.

There is a possibility that this bug has been solved in 5.9 version?

it is not

Do you have any informations, when it will be solved? We have IPTV project that is paused because of that problem.

you can try to use PIM, when configuration is set starts to work it will work.

Our, OLT and ONUs don’t dupport PIM, just work with IGMP proxy.

We have built a complete FTTb network in a city with 154 buildings. We put RB493G in every entrance of the building and every user has it’s own port on that RB. Internet service is working without any problems for some time, but our only solution for IPTV service is IGMP proxy. Replacing GPON terminal equipment is not an option.

where do you get IPTV stream from?