Concepts and Configuration

The importance of multicast

Multicast addresses a need to send one data stream to many receivers
  • Unicast : one to one
  • Broadcast : one to all
  • Multicast : one to many
In IPv6, there is no longer a broadcast message

The facts about multicast

  • All multicast communication uses UDP, so reliability must be handled by the end host.
  • Addressing in multicast uses the class D range (244.0.00 - 239.255.255.255)
  • The sending host does not know the identity of the receiving hosts; it knows just a group IP addresses.
  • Group membership is dynamic. Workstations using multicast applications "subscribe" to the server's multicast address. Hosts join a group, notify their upstream router, and the router begins forwarding data to them.
  • Hosts can belong to more than one group.
  • Hosts in a group can be located in many different places.

Multicast MAC Address

Multicast MAC addresses all start with the first 25 bits 01005E. The last 23 bits are the left-most bits from the IP address. Example shows how a MAC address of 0100.5E40.0305 maps to a multicast IP address of 227.64.3.5. Multicast Mac Address

Multicast IP Address

The entire 224.0.0.0/24 range is reserved by IANA

Some addresses are reserved:

  • 224.0.0.1 : All multicast hosts on this subnet
  • 224.0.0.2 : All multicast routers on this subnet

The rest of the 224.0.0.0/24 is reserved for link-locl protocols. Some well-known multicast addresses:

  • 224.0.0.5 : OSPF, All routers
  • 224.0.0.6 : OSPF, Designated Routers
  • 224.0.0.9 : RIPv2 routers
  • 224.0.0.10 : EIGRP routers
Other Key Multicast Addresses
  • Global Range : 224.0.1.0 - 238.255.255.255
    • called globally-scoped addresses
    • "Supposed" to work on the internet
    • Originally designed for the multicast Backbone (MBONE) : dead or unused
    • Designed to be assigned dynamically
  • Static multicast addresses : 233.0.0.0/8
    • This is called GLOP, which is a combination of global and scope.
    • used by an organization.
    • The second and third octets of the address are the organization’s Autonomous System number.
  • Private Range : 239.0.0.0 - 239.255.255.255
    • Designed for private use (within an organization)
    • Can be assigned statically

Internet Group Management Protocol (IGMP)

When a host wishes to join a multicast group, it sends an Internet Group Management Protocol (IGMP) message to the router. The router periodically checks for group members on each segment.

3 major versions of IGMP; IGMPv2 most popular
  • IGMPv1: a host leave silently a group, the router doesn’t know they are gone until it queries and no one responds. Queryies are sent to the all-hosts address of 224.0.0.1.
  • IGMPv2 introduces a leave message in addition to the Join and Query message of IGMPv1. Queries are sent to specific multicast group address, not the all-hosts address.
  • IGMPv3: the client can specified which source it wants. There is 2 modes: include and exclude (specify servers it will not use) mode.
Multicast in a Layer 2 and 3 world Cisco Group Management Protocol (CGMP)

Switches flood multicasts by default. Cisco Group Management Protocol (CGMP) lets a router tell a switch which hosts belong to which multicast group, so the switch can add that information to its port-to-MAC address mapping. Then when a multicast comes in, the switch forwards it only to ports that have hosts belonging to that group. CGMP is Cisco proprietary. The switch become multicast.

IGMP Snooping

IGMP snooping is another way for the switch to find out which ports have multicast hosts. When it is enabled, the switch opens all multicast packets, looking for IGMP join or leave messages. When it finds one, it records that information and uses it for forwarding multicasts. Because every multicast packet has to be opened, this can cause a performance hit on the switch. The switch listen all query and join message. The switch must be L3.

Multicast Routing Protocol

Multicast relies on the unicast routing protocol.

Multicast Distribution Tree

Multicasts use two different ways to distribute data between a server and hosts:

  • source tree : easy to setup, but inefficient for lots of clients in different places.

A source-based tree is the simplest kind. Its root is the server, and it forms branches throughout the network to all the members of the multicast group. A source tree is identified by (S,G) where S is the IP address of the server and G is the group multicast address. It creates optimal paths between the server and the hosts, but takes more router resources. Every router along the path must maintain path information for every server.

  • shared tree : RDV (rendez-vous) point. Do not find the best route for all hosts.

A shared tree selects a common root called a rendezvous point (RP). The server sends traffic to the RP, which forwards it to hosts belonging to the group. The tree is identified by (*,G) where * means any source and G is the group multicast address. Shared trees use less router resources, but can result in suboptimal paths.

RPF : Reverse Path Forwarding

Multicast routers identify upstream ports (pointing to the server or RP) and downstream ports (pointing to other receivers) for each multicast group. The upstream port is found using Reverse Path Forwarding (RPF). RPF involves looking at the routing table to see which interface the router uses to send unicast traffic to that server or RP. That interface is the upstream port, or RPF port, for the multicast group. The RFP check is done every five seconds. It is used in this way:

  • If a multicast packet arrives on the RPF port, the router forwards the packet out to the interfaces listed in the outgoing interface list of a multicast routing table.
  • If the packet does not arrive on the RPF port, the packet is discarded to prevent loops.
PIM : Protocol Independent Multicast

PIM is a protocol used between routers to keep track of where to forward traffic for each multicast group. It can use information gathered from any routing protocol. PIM can run in dense mode or sparse mode.

  • PIM Dense Mode : uses source-based trees. Turn it on and it starts working.

PIM assumes that every router needs to receive multicasts. Any router that doesn’t want to receive it must send a prune message upstream to the server. PIM dense mode is most appropriate when:

  • Multicast servers and receivers are near each other.
  • There are just a few servers and many receivers.
  • You have a high volume of multicast traffic.
  • The multicast stream is fairly constant.
  • PIM Sparse Mode : uses shared distribution trees.

It does not assume that any routers want to receive the multicast, but instead waits to hear an explicit message from them, joining the group. Then it adds branches to the tree to reach the hosts behind those routers. PIM sparse mode use RPs to connect hosts and servers. After the connection is made, PIM switches over to a source tree. Sparse mode is used when:

  • Pockets of users are widely dispersed around the network.
  • Multicast traffic is intermittent.
  • PIM Sparse-Dense Mode

An interface can be configured in sparse-dense mode. Then, if the router knows of an RP for its group, it uses sparse mode. Otherwise, it uses dense mode. In addition, it makes the interface capable of receiving multicasts from both sparse and dense-mode groups.

Enabling a Cisco router for Multicast

Activate Multicast Routing
R1(config)# ip multicast-routing
Activate PIM on interface
R1(config)# int gi 0/1
R1(config-if)# ip pim {sparse-mode | dense-mode | sparse-dense-mode}
Configure Rendez-Vous point for sparse mode
R1(config)# ip pim rp-address ip-address
Configure Auto-RP

RPs advertise themselves to a router designated as an RP mapping agent. The mapping agent then decides on one RP per group and sends that information to the other routers.

  • Automatically detect a RDV point
R1(config)# ip pim send-rp-discovery scope ttl
  • Announce itself as a RDV point
R1(config)# ip pim send-rp-announce type number scope ttl
Verify Multicast Routing
show ip mroute

This shows the contents of the multicast routing table. For each group, it lists the mode, the RPF neighbor, the group identifier, and the outgoing interfaces.

show ip pim interface

Lists each interface doing multicasting, its PIM mode, and number of neighbors.