I am using a Cisco router to connect my internal network with my ISP, but I experienced difficulties configuring multicast for IPTV.
The IPTV require my router to forward both IGMP messages and multicast streams. However, even I enable the multicast routing feature, I still got no working IPTV. It seems the problem is my router does not forward IGMP messages correctly.
ISP ------ Cisco Router ------ Cisco Router 2 ------ IPTV Clients
I have configured Cisco Router 2 with
ip multicast-routing distributed
ip pim autorp listener
This router correctly shows the IGMP groups that IPTV Clients are joined:
Router-2#sh ip pim rp
Group: 239.255.255.250, RP: 172.19.222.254, v2, uptime 00:19:05, expires 00:02:45
Group: 239.192.0.6, RP: 172.19.222.254, v2, uptime 00:19:05, expires 00:02:45
Group: 239.42.134.12, RP: 172.19.222.254, v2, uptime 00:19:05, expires 00:02:45
Router-2#sh ip ig gr
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter Group Accounted
239.255.255.250 Vlan20 10:46:13 00:02:14 172.16.2.115
239.192.0.6 Vlan20 10:46:13 00:02:14 172.16.2.115
224.0.1.39 GigabitEthernet0/1 00:26:10 00:02:24 172.19.0.254
224.0.1.40 Vlan20 6d05h 00:02:09 172.16.2.254
239.42.134.12 Vlan20 00:13:28 00:02:44 172.16.2.115
In Cisco Router, I configured PIM and IGMP proxy
interface Loopback0
ip address 172.19.222.254 255.255.255.0
ip pim sparse-mode
ip igmp proxy-service
!
interface GigabitEthernet0/0.34
encapsulation dot1Q 34
ip dhcp client request classless-static-route
ip address dhcp
ip nat outside
ip virtual-reassembly in
ip igmp join-group 239.192.0.6
ip igmp join-group 239.42.134.84
ip igmp unidirectional-link
service-policy output TVPrio
!
!
interface GigabitEthernet0/2
description To-Router-2
ip address 172.19.0.254 255.255.255.0
ip pim sparse-mode
ip nat inside
ip virtual-reassembly in
ip igmp mroute-proxy Loopback0
duplex auto
speed auto
media-type rj45
no negotiation auto
!
It shows IGMP groups like:
Router#sh ip pim rp
Group: 239.255.255.250, RP: 172.19.222.254, v2, v1, next RP-reachable in 00:00:16
Group: 239.192.0.6, RP: 172.19.222.254, v2, v1, next RP-reachable in 00:00:16
Group: 224.0.1.60, RP: 172.19.222.254, v2, v1, next RP-reachable in 00:00:16
Group: 239.42.134.12, RP: 172.19.222.254, v2, v1, next RP-reachable in 00:00:24
Router#sh ip ig gr
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter Group Accounted
239.255.255.250 Loopback0 00:23:07 00:02:46 172.19.222.254
239.192.0.6 Loopback0 00:23:07 00:02:46 172.19.222.254
224.0.1.39 GigabitEthernet0/2 00:24:14 00:01:56 172.19.0.254
224.0.1.39 GigabitEthernet0/1 00:24:14 00:01:57 172.19.1.254
224.0.1.39 Loopback0 00:24:14 00:02:53 172.19.222.254
224.0.1.40 Loopback0 00:24:13 00:02:53 172.19.222.254
239.42.134.12 Loopback0 00:16:59 00:02:46 172.19.222.254
Router#
But the IPTV clients do not work. It seems that Cisco Router does not send IGMP membership requests to 239.42.134.12 via Gi0/0.34...
Any idea?
I know some routers offer a feature named "IGMP Proxy" which proxy IGMP messages from connected devices to upstream. In this mode, the router listen to all IGMP join messages from connected devices, and forward these messages to upstream like a client device.
For example, EdgeRouter can be configured to this mode with
phyint eth1.34 upstream ratelimit 0 threshold 1
altnet 10.236.0.0/15
phyint switch0 downstream ratelimit 0 threshold 1
Regards,
Lingfeng Xiong