[Xorp-users] iptv and multicast forwarding (newbie)

Pavlin Radoslavov pavlin at icir.org
Mon Aug 7 12:49:35 PDT 2006


> For a start, here is my home network configuration:
> 
> - linux box runing FC5
>     - wan connected to eth1
>     - vlan interface eth1.8 (1*)
>     - lan switch connected to eth0
> - few lan PCs (max 4) connected to lan switch
> 
> Besides internet access, my ISP is also providing iptv multicast 
> service. (1*) I figured out they setup vlan with an id 8 for iptv
> service, so I added vlan interface eth1.8. With this setup I can watch
> tv on linux box (VLC). Now, I want to forward multicast traffic to lan
> clients (eth0). I wonder if someone can help me with config.boot? What
> interfaces/protocols must I include? Do I need PIM-SM in described
> scenario? It would be great if someone can post template config.boot for
> similar scenarion.

If the ISP doesn't allow you to connect your PIM-SM router to its
PIM-SM domain (probably the most likely scenario), then your PIM-SM
router won't be able to do much for you.

For example, if the ISP rejects your PIM-SM Join messages, then the
LAN clients on eth0 can receive traffic for a multicast group, ONLY
if there is a receiver on the vlan interface for the same group.

Eventually, you need an IGMP proxy to get around the problem:
http://www.ietf.org/internet-drafts/draft-ietf-magma-igmp-proxy-06.txt

Unfortunately, XORP doesn't implement (yet) the IGMP proxy
mechanism, and I am not aware of any open-source IGMP proxy
implementation.


Anyway, below is a sample template you could use to configure XORP
as a PIM-SM router (and RP).
Few notes about the configuration:

 * You must replace <YOUR-IP-ADDRESS> with the IP address of eth0 or
   eth1.8

 * I have commented-out running IGMP on eth1.8 to avoid any
   IGMP-related issues (in case your ISP is not filtering the IGMP
   Query messages from your router).
   However, if you have senders on eth0 and receivers on eth1, then
   you need to run IGMP on eth1.8

 * The dr-priority on eth1.8 is set to a very low value to avoid any
   PIM-SM related issues (in case your ISP is not filtering the
   PIM-SM messages from your router).

* The router is configured as a static RP, but practically it will
  be an RP only for your network.

* Again, note that with this setup, you MUST join the same group on
  both eth1.8 and eth0 if you want to receive the data traffic on
  eth0.


However, if your ISP actually allows your PIM-SM router to connect
to their PIM-SM domain, then you can reuse the setup below with the
following modifications:

* Enable IGMP on interface eth1.8
* Comment the "static-rps" section.


Hope that helps,
Pavlin


interfaces {
    interface eth0 {
        default-system-config
    }
    interface eth1.8 {
        default-system-config
    }
}

fea {
    unicast-forwarding4 {
	disable: false
    }
}

plumbing {
    mfea4 {
        interface eth0 {
            vif eth0 {
                disable: false
            }
        }
        interface eth1.8 {
            vif eth1.8 {
                disable: false
            }
        }
        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }
        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

protocols {
    igmp {
        interface eth0 {
            vif eth0 {
                disable: false
            }
        }
/*
        interface eth1.8 {
            vif eth1.8 {
                disable: false
            }
        }
*/
        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

protocols {
    pimsm4 {
        interface eth0 {
            vif eth0 {
                disable: false
            }
        }
        interface eth1.8 {
            vif eth1.8 {
                disable: false
		dr-priority: 250
            }
        }
        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }
        static-rps {
            rp <YOUR-IP-ADDRESS> {
                group-prefix 224.0.0.0/4 {
                    rp-priority: 250
                    hash-mask-len: 30
                }
            }
        }
        switch-to-spt-threshold {
            disable: false
            interval: 100
            bytes: 102400
        }
        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

protocols {
    fib2mrib {
        disable: false
    }
}



More information about the Xorp-users mailing list