Multicast

February 21, 2018

What is Multicast?

In an IPv4 network, there are three types of packets:

  • Unicast One-to-One host communication.
  • Broadcast A broadcast message is sent from one hoste to all hosts in the current subnet. Routers will, by definition, not forward broadcast messages
  • Multicast Here is where things get interesting. Multicast traffic is sent from one host to a specific group of receivers. (Cheap) Switches will forward multicast on all ports. Routers will not forward multicast packets by default.

In order to keep everything simple, the IPv6 specification excludes any type of broadcast in favor of an all ipv6 devices well known multicast group.

The main usecase for multicast is the distribution of the same data to many clients. This applies to: Streaming services, VoIP or LAN Chat apps.

In order to receive multicast packets, a host must first join a multicast group. This can either be done statically or dynamically. Most of the time, traffic is sent from the server to a group of clients (Rare cases exist where the client sends back a multicast packet).

While Multicast works out of the box in most networks, the challenge is shaping the traffic, so that _only hosts in the multicast group receive the data.

Multicast Addressing

IPv4

Multicast IPv4 addresses are a Class D network. There are serveral well known multicast ranges:

  • 224.0.0.0 - 224.0.0.255: Reserved for routing and other network protocols such as OSPF, RIP, HSRP, etc
  • 224.0.1.0 - 238.255.255.255: Reserved for “public use. Can be used publicly on the Internet. Many addresses in this range have been reserved for specific applications
  • 239.0.0.0 - 239.255.255.255.: Reserved for “private” use. Will not be routed on the internet

The most important IPv4 Multicast addresses are

Address Description
224.0.0.1 All hosts on this subnet
224.0.0.1 All routers on this subnet

IPv6

Multicast addresses in IPv6 use the prefix ff00::/8. They can either use the old (RFC2373) or the new (RFC7371) format.

Old Format:
| 8 Bits | 4 Bits | 4 Bits | 112 Bits |
| ------ | ------ | ------ | -------- |
| prefix | flags  | scope  | group id |
New Format:
| 8 Bits | 4 Bits | 4 Bits | 4 Bits | 4 Bits   | 8 Bits | 64 Bits        | 32 Bits  |
|--------|--------|--------|--------|----------|--------|----------------|----------|
| prefix | ff1    | scope  | ff2    | reserved | plen 	| network prefix | group ID |

The most important IPv6 Multicast addresses are

Address Description
ff02::1 All link-local devices
ff02::2 All link-local routers

Ethernet

To convert a Multicast IP Address to a MAC address, we use the 0100.5e prefix. To complete the MAC, the last 23 bits of the MC address are used.

Decimal:   224  .    65  .  130   .   195
Binary: 11100000.01000001.10000010.11000011

Hex:    0100.5e
Binary: 0000000100000000.01011110.0

Combined: 0000000100000000.0101111001000001.1000001011000011
Hex: 0100.5e41.82c3

Because only the last 23 bits are used, every Multicast MAC can match 32 Multicast IP Addresses.

Multicast Routing

Multicast routing has to be explicitly enabled

Switch(config)# ip multicast-routing

Multicast routing protocols make sure that only the correct clients receive the data.

There are several multicast routing protocols available:

  • Protocol Independend Multicast (PIM)
  • Multicast OSPF (MOSPF)
  • Distance Vector Multicast Routing Protocol (DVMRP)
  • Core-Based Trees (CBT)

Terminology:

 |---|
 |+++| Multicast Server
 |---|
   |
   |  <- Upstream
   |
   _
  / \ 
 |   | Router
  \_/
   |
   |  <- Downstream
   |
   |
 |---|
 |+++| Client
 |---|

Reverse Path Forwarding

To guarantee a loop free multicast environment, switches perform an RPF check on incoming multicast traffic. Whenever a multicast packet arrives, the router looks up the source address in its unicast routing table. If the incoming interface matches the outgoing interface of the routing table, the traffic is forwarded.

Forwarding Trees

When the RPF Check succeds the router still has to know where to send the traffic to. This is where Multicast Forwarding Trees come into play. They controll the flow of multicast traffic inside the network and exist on a per-group basis.

Source Trees

Source trees are the most basic forwarding trees. Their root is the multicast source and they branch to reach every client. Because they use the shortest path, they are also called shortest path tree (SPT).

Shared Trees

Shared trees utilize a so called Rendezvous Point (RP). Multicast traffic is always sent toward the RP using a source tree. The RP then builds a seperate source tree towards the receivers. At first glance, this just sounds like extra overhead so why even use Shared Trees?

In a network with many sources and destination, every router has to build their own tree when using source trees. This is very processor heavy and might be too much for small access layer devices. With shared trees, only the route to the rendezvous point has to be stored. The RP is usually a strong device, capable of handling the entire multicas traffic of the network.

PIM

Protocol indepenedt Multicast is a so called Multicast routing protocol. Although the name suggests tht is indepenedt of any other protocol, PIM strongly depends on the unicast routing table. PIM is also responsible for creating the multicast tree, and “pruning” the tree so that no traffic is sent unnecessarily down a link.

PIM can operate in multiple modes:

  • Dense Mode (PIM-DM)
  • Sparse Mode (PIM-SM)
  • Sparse-Dense Mode (Cisco proprietary, PIM-SM-DM)

Dense Mode

Dense mode relies on flooding the network with multicast traffic. All downstream routers recieve the multicast packet until it times out. To minimize traffic, routers send a pruning message upstream when:

  • The RPF Check fails
  • A leaf router (has clients directly attached to it) has no receivers
  • A non leaf router recieves a prune message from all its neighbours

Dense mode is most usefull when:

  • Senders and receivers are in close proximity to another
  • Few senders - many receivers
  • Much multicast traffic
  • Constant stream of traffic

Dense mode is not the method of choice for enterprise and service providers because of its scalability and flooding properties.

Sparse Mode

Spares mode is based on the assumptions that the multicast group members are sparsely distributed throughout the network and that bandwith is limited

Sparse mode multicast traffic is first directed to a RP. After traffic starts flowing, the routers in the path optimize it to remove unnecessary hops.

RP Distribution

Following methods are available to automate the distribution of the RP:

  • Auto-RP
  • Bootstrap router (BSR)
Auto-RP

Auto-RP utilizes a seperate Router called the RP Mapping agent. All candidate RPs announce their availability every minute to 224.0.1.39 (Cisco-RP-announce). The mapping agent then sends out the Group-to-RP mappings to 224.0.1.40 (Cisco-RP-discovery) and will continue to do so every 60 seconds.

BSR

BSR is only available in PIMv2. The BSR sends out special BSR Packets with a TTL of 1. This packet is flooded by all receivers. If there are multiple BSR candidates available, the BSR with the higher priority wins. Downstream routers advertise their group ranges to the BSR which then continuously floods the new information through the domain