Multicast Configuration


This page contains some configuration guidelines that may be useful when setting up multicast peering on Cisco routers. Note that this is not necessarily an ideal and/or optimal configuration, and is certainly not intended to be followed as best common practice(!), however it should give you an idea of where to start. Also note that only multicast configuration is covered, and that Cisco IOS 12.0S is assumed.


First, enable multicast routing:

ip multicast-routing [distributed]

If you want to cache multicast RTP headers so that they can be viewed with "show ip mpacket" command, enter:
ip multicast cache-headers rtp

Listen for session announcements; view with "show ip sdr". You can set this on all interfaces that will receive SDP packets, however you should only have to enable it on one interface and the router will join the relevant announcement groups.
interface Loopback0
 ip sdr listen

Enable PIM sparse mode on all interfaces:
interface FastEthernet0
 description Connection to internal network
 ip pim sparse-mode

Configure interface on public exchange switch. Because this is at the boundary of our network, we use an ACL to stop internal traffic from leaking out to neighbours. If PIMv2 is used, and BSR is configured, we similarly bound that traffic. For added safety, we use sparse-mode instead of sparse-dense-mode, in case we lose our RPs and start flooding.
interface FastEthernet1
 description Connection to Exchange Multicast Switch
 ip pim sparse-mode
 ip multicast boundary 1
 ip pim bsr-border

Now configure MBGP. In this example, we are announcing one multicast prefix via the "nlri multicast" argument - no unicast announcements are made. Use "show ip mbgp sum" to view MBGP status.
router bgp 5466
 network 194.125.204.0 mask 255.255.255.192 nlri multicast

Bring up peering with iBGP neighbour. This is an internal link, so we are using a loopback interface. We must also use next-hop-self, so that MBGP and MSDP agree on where the next hop for multicast packets is, otherwise RPF checks will fail.
 neighbor 194.125.204.61 remote-as 5466 nlri multicast
 neighbor 194.125.204.61 description mcast01.dublin.eircom.net
 neighbor 194.125.204.61 update-source Loopback0
 neighbor 194.125.204.61 next-hop-self

Bring up peering with an exchange neighbour. Simple filter-lists are used to control what we announce, and what we see. Alternatively use route-maps for more complex scenarios.
 neighbor 195.66.230.254 remote-as 5459 nlri multicast
 neighbor 195.66.230.254 description Exchange peer
 neighbor 195.66.230.254 filter-list 1 out
 neighbor 195.66.230.254 filter-list 2 in

If you have not fully enable your network for native multicast, you may want to experiment with configuring administrative distances so that iMBGP routes are preferred over IGP routes.
 distance mbgp 20 80 80

The filter lists to match our MBGP peerings.
ip as-path access-list 1 permit ^$
ip as-path access-list 1 permit ^5466$
ip as-path access-list 1 permit ^5494$
ip as-path access-list 2 permit .*

If you are using Cisco Auto-RP and want to set this router up as an RP, use this:
ip pim send-rp-announce Loopback0 scope 16
ip pim send-rp-discovery scope 16

Otherwise, if you have an RP elsewhere in your network, configure it:
ip pim rp-address 159.134.191.136 override

Bring up external MSDP peer. Set filters for valid announcements. Use "show ip msdp sum" to view peer status.
ip msdp peer 195.66.230.254 remote-as 5459
ip msdp description 195.66.230.254 Exchange peer
ip msdp sa-filter in 195.66.230.254 list mcast-msdpsa
ip msdp sa-filter out 195.66.230.254 list mcast-msdpsa
ip msdp sa-limit 195.66.230.254 100

Bring up internal MSDP peer. Note that we do not filter internal peers. Do not use "ip msdp redistribute" command if you have internal peers as this will break internal peering. Also note that we use the loopback interface for peering. This matches our iMBGP config.
ip msdp peer 194.125.204.61 connect-source Loopback0 remote-as 8914
ip msdp description 194.125.204.61 mcast01.dublin.eircom.net

Cache session announcements, to reduce join latency. Use "show ip msdp sa-cache" to view cache announcements.
ip msdp cache-sa-state

This is our basic boundary list. .39 and .40 are Cisco Auto-RP addresses, while 239.x are administratively scoped local addresses. These should not leave our network.
access-list 1 deny   224.0.1.39
access-list 1 deny   224.0.1.40
access-list 1 deny   239.0.0.0 0.255.255.255
access-list 1 permit any

Stop advertisements from a variety of internal protocols in addition to internal session announcements, and multicast traffic from hosts with private addresses.
ip access-list extended mcast-msdpsa
 deny   ip any host 224.0.1.2
 deny   ip any host 224.0.1.3
 deny   ip any host 224.0.1.22
 deny   ip any host 224.0.1.24
 deny   ip any host 224.0.1.35
 deny   ip any host 224.0.1.60
 deny   ip any host 224.0.2.2
 deny   ip any host 234.42.42.42
 deny   ip any host 229.55.150.208
 deny   ip any host 234.142.142.142
 deny   ip any host 224.0.1.39
 deny   ip any host 224.0.1.40
 deny   ip any 239.0.0.0 0.255.255.255
 deny   ip 10.0.0.0 0.255.255.255 any
 deny   ip 127.0.0.0 0.255.255.255 any
 deny   ip 172.16.0.0 0.15.255.255 any
 deny   ip 192.168.0.0 0.0.255.255 any
 deny   ip any 232.0.0.0 0.255.255.255
 permit ip any any

See the Cisco IP Multicast Groups external Homepage for detailed information on configuring IOS for multicast.



Comments to: Karl Jeacle