IGMP Unidirectional Link Routing (UDLR) for Multicast ----------------------------------------------------- Update 10/6/98 Unidirectional Link Routing provides a method for forwarding multicast packets over a unidirectional satellite link of high bandwidth to stub networks which have a back channel. This is similiar to stub multicast routing. More details are at ftp://ftp-eng.cisco.com/ipmulticast/stub_multicast.txt. Goals: o To dynamically learn about which ip multicast group addresses to forward over a unidirectional link . o To accept multicast packets delivered over a unidirectional link independent of unicast routing. o Support ip multicast to a stub LAN over a unidirectional link with simple configuration commands. See ftp://ftpeng.cisco.com/ipmulticast/igmp-udlr for command details. In the following topology, uplink-rtr is the local uplink and downlink-rtr is the downlink. The two routers are also connected to each other via a back channel connection. Both routers have 2 IP addresses, one on the undirectional link and one on the interface that leads to the back channel. It is required that all routers on the undirectional link have the same subnet address. If this cannot be achieved, the uplink router must be configured with secondary addresses to match all the subnets that the downlink routers are attached to. source (12.0.0.12) | ------------- | | 12.0.0.1 +------------+ 11.0.0.1 | uplink-rtr |--------------+ NOTE: The back channel +------------+ | is any return route and 10.0.0.1 v | any number of routers. v | v | v UDL | Back channel v | v | 10.0.0.2 v | +--------------+ 13.0.0.2 | | downlink-rtr |-------------+ +--------------+ | 14.0.0.2 | ------------- | receiver (14.0.0.14) Configurations commands: In uplink-rtr: ip multicast-routing ! ! Interface source is attached to ! interface Ethernet0 description Typical IP multicast enabled interface ip address 12.0.0.1 255.0.0.0 ip pim sparse-dense-mode ! ! Back channel ! interface Ethernet1 description Back channel which has connectivity to downlink-rtr ip address 11.0.0.1 255.0.0.0 ip pim sparse-dense-mode ! ! Undirectional link ! interface Serial0 description Unidirectional to downlink-rtr ip address 10.0.0.1 255.0.0.0 ip pim sparse-dense-mode ip igmp unidirectional-link no keepalive In downlink-rtr: ip multicast-routing ! ! Interface receiver is attached to, configure for IGMP reports to be ! helpered for the unidirectional interface. ! interface Ethernet0 description Typical IP multicast enabled interface ip address 14.0.0.2 255.0.0.0 ip pim sparse-dense-mode ip igmp helper-address udl serial0 ! ! Back channel ! interface Ethernet1 description Back channel which has connectivity to downlink-rtr ip address 13.0.0.2 255.0.0.0 ip pim sparse-dense-mode ! ! Undirectional link ! interface Serial0 description Unidirectional to uplink-rtr ip address 10.0.0.2 255.0.0.0 ip pim sparse-dense-mode ip igmp unidirectional-link no keepalive Show commands: show ip igmp interface: Note the line, "IGMP unidirectional link multicast routing enabled" The IGMP querying router is selected by the uplink router to be a multicast-enabled interface that is not a unidirectional link. This lets the downlink router send the IGMP helper report via the ground-based network. The IGMP querying router will be the same on all downlink routers. uplink-rtr#sh ip igmp int serial0 Serial0 is up, line protocol is up Internet address is 10.0.0.1/8 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 10.0.0.1 (this system) IGMP querying router is 11.0.0.1 (this system) IGMP unidirectional link multicast routing enabled No multicast groups joined downlink-rtr#sh ip igmp int serial0 Serial0 is up, line protocol is up Internet address is 10.0.0.2/8 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 10.0.0.2 (this system) IGMP querying router is 11.0.0.1 IGMP unidirectional link multicast routing enabled No multicast groups joined ---------------------------------------- show ip igmp udlr: The command 'sh ip igmp udlr' is used to show which groups are being forwarded and received over the unidirectional link. On the uplink router, this command shows which interface is a UDL interface and which ip multicast groups are being forwarded out that interface. The UDL Reporter is the IP address of the down-link interface on the receiving router. If there is more than one down-link router this field shows which down-link router forwarded the IGMP host report to the up-link router over the ground- based network. This report is forwarded over the unidirectional link so that all down-link routers know which groups have already have been requested by other down-link routers so that additional IGMP host reports are suppressed. uplink-rtr#sh ip igmp udlr IGMP UDLR Status, UDL Interfaces: Serial0 Group Address Interface UDL Reporter Reporter Expires 224.2.127.254 Serial0 10.0.0.2 00:02:12 224.0.1.40 Serial0 10.0.0.2 00:02:11 225.7.7.7 Serial0 10.0.0.2 00:02:15 On the down-link router, this command shows which local interface an IGMP host report from a directly connected host for a specific group was received on in the 'Interface' field. The UDL Reporter is the IP address of the router that had forwarded the IGMP host report to the up-link router over the ground-based network. The 'UDL Interfaces' shows the interface on which ip multicast packets are being received. downlink-rtr#sh ip igmp udlr IGMP UDLR Status, UDL Interfaces: Serial0 Group Address Interface UDL Reporter Reporter Expires 224.2.127.254 Serial0 10.0.0.2 00:02:49 224.0.1.40 Serial0 10.0.0.2 00:02:48 225.7.7.7 Serial0 10.0.0.2 00:02:52 ---------------------------------------- show ip mroute: The 'sh ip mroute' command identifies the incoming interface on the down-link router by marking it with 'Udlr'. The up-link router presentation does not change. uplink-rtr#sh ip mr 225.7.7.7 IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 225.7.7.7), 1d19h/00:02:59, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Serial0, Forward/Sparse-Dense, 1d16h/00:02:30 (12.0.0.12/32, 225.7.7.7), 1d19h/00:02:59, flags: CT Incoming interface: Ethernet0, RPF nbr 0.0.0.0 Outgoing interface list: Serial0, Forward/Sparse-Dense, 1d16h/00:02:30 downlink-rtr#sh ip mr 225.7.7.7 IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 225.7.7.7), 1d17h/00:02:59, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 1d17h/00:02:10 Ethernet1, Forward/Sparse-Dense, 1d17h/00:00:00 (12.0.0.12/32, 225.7.7.7), 1d17h/00:02:57, flags: CT Incoming interface: Serial0, RPF nbr 0.0.0.0, Udlr Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 1d17h/00:02:09 Ethernet1, Prune/Sparse-Dense, 1d17h/00:02:09 ---------------------------------------- show ip rpf: downlink-rtr#sh ip rpf 12.0.0.12 RPF information for my_source (12.0.0.12) RPF interface: Ethernet1/1 RPF neighbor: ? (0.0.0.0) RPF route/mask: 0.0.0.0/0.0.0.0 RPF type: udlr ---------------------------------------- debug ip igmp: uplink-rtr: IGMP: Received v2 Report from 10.0.0.2 (Ethernet1) for 225.7.7.7 IGMP: Forward Report for group 225.7.7.7 down UDL Serial0 downlink-rtr: IGMP: Received v2 Report from 14.0.0.14 (Ethernet0) for 225.7.7.7 IGMP: Helper Report for group 225.7.7.7 to 11.0.0.1 for UDL Serial0 .