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