Question: Can you use Multicast within Cloud Environments?
I got asked this question the other day on the Q&A for the Virtual VMUG. Their question was “could they use Multicast within Cloud environment?” specifically vCHS.
The short answer
yes you can but it depends 🙂
The Long Answer
Lets initially look at what Multicast is, this is an excerpt from Wikipedia:
In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source. Copies are automatically created in other network elements, such as routers, but only when the topology of the network requires it.
IP multicast is a technique for one-to-many communication over an IP infrastructure in a network. It scales to a larger receiver population by not requiring prior knowledge of who or how many receivers there are. Multicast uses network infrastructure efficiently by requiring the source to send a packet only once, even if it needs to be delivered to a large number of receivers. The nodes in the network take care of replicating the packet to reach multiple receivers as required.
The most common transport layer protocol to use multicast addressing is User Datagram Protocol (UDP). By its nature, UDP is not reliable—messages may be lost or delivered out of order. Reliable multicast protocols such as Pragmatic General Multicast (PGM) have been developed to add loss detection and retransmission on top of IP multicast.
Now we know what Multicast is, why would we be doing this, and what are the limitations of using Multicast within Cloud environments?
As we have shown above, multicast is the ability to send the delivery of the same message to multiple devices (hence Multicast). Some applications do this so that all the devices receive the same message, think about IPTV as an example, you want all devices to receive the same message, as the user/consumer is watching the TV stream live.
We can use Multicast within a vCloud Environment, but there are limitations. Multicast traffic will only be received on the devices connected to a specific logical switch. Any cloud network that you create that is connected via a vCNS Edge Gateway, the Multicast traffic will not be passed through the Edge gateway to the other networks. There is one caveat however, if you are using Data Centre Extensions and have a VPN connecting your on-prem Data Center and your Cloud Environment, you can pass Multicast packets through the VPN to your on-prem data center.
Lets throw in a diagram to help visualise all of this:
The diagram above shows how a vCHS environment can look with some simple networks created.
So what happens when a VM sends out a Multicast? Lets say the VM on the Private Network sends out a Multicast, the only device that can receive that Multicast is the VM on the same network. The multicast packet It is treated as a broadcast on the network, and as such will not be forwarded by the Edge Gateway. The diagram below helps visualise this:
You can see the blue multicast traffic sent out by the VM, which is received by the other VM, but rejected by the Edge Gateway (the big red X).
If you need to use Multicast across multiple devices within a Cloud Environment, you need to have all the devices connected together on a logical network. You could create a specific multicast network within the cloud. For example:
So to recap on the above:
You can use Multicast within Cloud Environments, but it requires you to create specific Multicast networks to use it. You cannot have Multicast going out through an Edge Gateway.