IGMP with PPPoE

I’ve been reading the forums for a while trying to find the answer to the following question, but it appears that no-one I can see is also using PPPoE for their connection back to their ISP. Now I’m no multicast expert, so please bear with me.

So here’s my issue. My ISP is now offering IPTV with their package. After speaking with my provider I have found that the multicast traffic is IGMP v3 and it will be delivered over the physical ethernet interface, as well as the PPPoE connection, as the source of the IPTV stream is my local BT MSAN down the street (see the diagram attached). I can see the IPTV channels in my EPG, but when I select the channel, I get no stream :frowning:

Here’s my current set up:
Home SetUp.png
Router Version
version: 6.5
build-time: Oct/16/2013 15:32:33
free-memory: 45.1MiB
total-memory: 64.0MiB
cpu: MIPS 24Kc V7.4
cpu-count: 1
cpu-frequency: 400MHz
cpu-load: 1%
free-hdd-space: 103.1MiB
total-hdd-space: 128.0MiB
write-sect-since-reboot: 200
write-sect-total: 170989
bad-blocks: 0%
architecture-name: mipsbe
board-name: RB750GL
platform: MikroTik
Firewall
ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=input action=accept protocol=igmp in-interface=all-ppp

1 chain=input action=accept protocol=igmp in-interface=ether1-gateway

2 chain=input action=drop protocol=tcp in-interface=ISP src-port=22

3 X ;;; default configuration
chain=input action=accept protocol=icmp

4 ;;; default configuration
chain=input action=accept connection-state=established

5 ;;; default configuration
chain=input action=accept connection-state=related

6 ;;; default configuration
chain=input action=drop in-interface=ISP

7 ;;; Port scanners to list
chain=input action=add-src-to-address-list protocol=tcp psd=21,3s,3,1 address-list=port scanners
address-list-timeout=2w

8 ;;; NMAP FIN Stealth scan
chain=input action=add-src-to-address-list tcp-flags=fin,!syn,!rst,!psh,!ack,!urg protocol=tcp
address-list=port scanners address-list-timeout=2w

9 ;;; SYN/FIN scan
chain=input action=add-src-to-address-list tcp-flags=fin,syn protocol=tcp address-list=port scanners
address-list-timeout=2w

10 ;;; SYN/RST scan
chain=input action=add-src-to-address-list tcp-flags=syn,rst protocol=tcp address-list=port scanners
address-list-timeout=2w

11 ;;; FIN/PSH/URG scan
chain=input action=add-src-to-address-list tcp-flags=fin,psh,urg,!syn,!rst,!ack protocol=tcp
address-list=port scanners address-list-timeout=2wip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; default configuration
chain=srcnat action=masquerade to-addresses=0.0.0.0 out-interface=ISP

1 chain=dstnat action=dst-nat to-addresses=192.168.1.107 protocol=igmp in-interface=ISP
Attempt at using IGMP proxy
routing igmp-proxy print
quick-leave: yes
query-interval: 2m5s
query-response-interval: 10srouting igmp-proxy interface print
Flags: X - disabled, I - inactive, D - dynamic, U - upstream

INTERFACE THRESHOLD

0 U ISP 1
1 all 1
2 D ether2-master-local 1
Attempt at using PIM
routing pim print
switch-to-spt: yes
switch-to-spt-interval: 1m40s
switch-to-spt-bytes: 0routing pim interface print
Flags: X - disabled, I - inactive, D - dynamic, R - designated-router, v1 - IGMPv1, v2 - IGMPv2, v3 - IGMPv3

INTERFACE PROTOCOLS

0 I v3 ISP pim
igmp
1 I v3 ether1-gateway pim
igmp

IGMP doesn’t deliver the multicast traffic itself, it just signals the path. (It isn’t a tunneling protocol.)

From the sounds of it, your IPTV is delivered in parallel to the PPPoE internet connection, and that the two are not related except that they are carried on the same medium.

There are several ways of approaching this, but the easiest is probably just to bridge your WAN connection with the port that connects to your STB/IPTV.

Something like this would probably work:

/int br add name=WAN-bridge
/int br po add br=WAN-bridge int=Actual-WAN-port
/int br po add br=WAN-bridge int=Port-that-connects-to-STB
/int pppoe-client set 0 int=WAN-bridge

–Eric

I’ll try that over this weekend. In the meantime I noticed last night that I had the IGMP upsteam and downstream in the wrong directions, so I’ve swapped it to:
routing igmp-proxy interface print
Flags: X - disabled, I - inactive, D - dynamic, U - upstream

INTERFACE THRESHOLD

0 D ISP 1
1 all 1
2 U ether2-master-local 1

So I managed to fix this without creating a bridge interface. Turns out all I needed was:

  • The IP subnet being used by my ISP IPTV service
    Create a unrelated IP on the ether1-gateway interface

Here’s the config I applied:
[admin@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic

ADDRESS NETWORK INTERFACE

0 ;;; default configuration
192.168.1.1/24 192.168.1.0 ether2-master-local
2 ;;; IPTV IP Interface
192.168.0.1/32 255.255.255.0 ether1-gateway[admin@MikroTik] > routing igmp-proxy interface print detail
Flags: X - disabled, I - inactive, D - dynamic, U - upstream
0 U interface=ether1-gateway threshold=1 alternative-subnets=1.1.1.0/24 upstream=yes

1 interface=ether2-master-local threshold=1 alternative-subnets=“” upstream=no**NOTE**: the subnet 1.1.1.0/24 in the ‘routing igmp-proxy interface print detail’ output is that of my ISPs IPTV provider

Now I’m not sure if these 'firewall filter’s are needed, and there’s been no hits on the counters for these rules, but for the just in case:
[admin@MikroTik] > ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=input action=accept protocol=igmp src-address-list=IPTV Multicast IPs in-interface=ISP

1 chain=input action=accept protocol=udp src-address-list=IPTV Multicast IPs in-interface=ISP