So recently I had the opportunity to think about multicast again. Unfortunately in a previous setup I never really achieved multicast properly and as I had not enough time to properly investigate it, it got left in the dust.
Over the last couple of days, I picked it back up again and got it running. The point of this post is to outline the things I set up to achieve multicast imaging.
When you enable multicast the only benefit I can see is to allow the ability to deploy images to multiple devices with reduced network bandwidth.
Note: Multicast does not mean everything will be available via multicast. The primary purpose is for operating system images, operating system installers, drivers and some legacy packages. Anything else will be available via the standard unicast method.
Check Compatibility of Multicast running in the network:
To properly get multicast working you need to check the following things:
- You have a Distribution Point with the WDS installed.
- TCP Ports 445 is not being blocked by any internal firewalls.
- UDP Ports 63000-65000 for multicast protocols is not being blocked by any internal firewalls.
- Any network switches are configured to allow Multicast data transmission/ or passthrough.
One tip I can suggest for checking to ensure that ports are not blocked is on the intended build VLAN, plug a device in and run a port scan. A way to achieve this is by using a tool called PortQry available from Microsoft here. Once downloaded and extracted navigate to the source directory that contains PortQry.exe and run a scan.
To scan a single port run:
portqry -n hostname/IP -p tcp -e 445
To scan a series of ports run:
portqry -n hostname/IP -p udp -r 63000:63010
More info can be found here.
Setup Multicast in SCCM CB:
- Open up the console and navigate to Administration \ Distribution Points. Select the Distribution point that you want to enable Multicast on. Right-click and go properties.
- Multicast Connection account: I used a service account that has rights to connect to the primary site database but you can use any account that has the correct rights. Best practice is to have a service account for this purpose.
- Select the Multicast tab and tick Enable multicast to simultaneously send data to multicast clients. At this stage, there are 2 types of multicast “modes” you can use. Autocast and Scheduled.Autocast: When this method is configured, a device will jump into the multicast session at any time and start imaging. When each machine joins the stream at different times they will only grab data at the point of the where the master machine is currently at. Once the stream is finished the device will grab any missing content to complete the download. While autocast isn’t as efficient as scheduled multicast it is still significantly more efficient than the standard unicast method.Scheduled: When this method is configured, the devices added to the session will wait until the “minimum” session size or timeout is reached and then kick the image off. Using this method allows for more control over the multicast session but does increase the time it takes to image depending on how the session size or timeout is configured.
- Select Apply and OK. The selected distribution point will now go ahead and enable these settings. If this is a new distribution point, check the usual logs to verify correct installation.
Setting up multicast on your Operating System Image:
The next stage in the puzzle is to enable multicast transmission of the OS image.
- Inside the console, navigate to Software Library \ Operating System Images. Right-click on the image you want to multicast with and select properties.
- Click on the Distribution Settings. Under Operating System deployment settings tick Allow this package to be transferred via (WinPE only).
- Click Apply and OK.
Now if everything has worked you should be able to boot up a couple of machines to image and test to see if it works.
If you setup Autocast you should see something like this. In total it took 1hr 37minutes to from start to finish.
If you setup Schedule multicast, you should see something like this. In total it took 54 minutes from start to finish.