Contents
Chromecast is a media
streaming device from Google that plugs into an HDMI port on a high definition
display. It lets us project from a client screen to a large screen (with a
chromecast device) over a 2.4 MHz wireless connection. Users can cast
audio/video content from their chrome browser (e.g. on a windows7 or a Mac
laptop) or from chromecast app on an Android to a TV screen.
Two protocols are implemented on Chromecast to support discovery, the first is the DIAL Protocol over SSDP. This is the primary system used for the old version1 of Google Cast. The second protocol uses mDNS (multicast Domain Name System) protocol to search for available chromecasts on the wireless network. This is the primary way of discovering a Chromecast that supports the v2 API and is more popular. In this document, we will focus on mDNS device discovery for Chromecast. Devices using DIAL protocol for chromecast discovery are outside of the scope of the document.
Note | Chromecast works with a growing number of Apps. chromecast.com/apps. We have tested with chrome browser (with Chromecast extension installed) on Windows7 and MacBook Air clients and with Chromecast app on Android Samsung Galaxy S4, S6 Edge phones. |
mDNS protocol operates on service announcements and service queries which allow devices to ask and advertise specific applications such as:
Printing Services
File Sharing Services
Remote Desktop Services
iTunes File Sharing
iTunes Wireless iDevice Syncing (in Apple iOS v5.0+)
AirPlay offering the following streaming services:
In addition to the above, we are adding Chromecast discovery using mDNS for the following specific applications:
Full screen mirroring on Chromecast extension enabled browser (Windows7, MacBook Air)
Mirroring of Android device using Chromecast App (Samsung Galaxy S4, Edge S6 phone)
Each query or advertisement is sent to the mDNS multicast address for delivery to all clients on the subnet. It relies on mDNS operating at UDP port 5353 and each query or advertisement is sent to the following reserved group addresses:
The addresses used by the mDNS protocol are link-local multicast addresses and thus are only forwarded on the local L2 domain. Routers cannot use multicast routing to redirect the traffic because the time to live (TTL) is set to one, and link-local multicast is meant to stay local by design. This is not ideal for large networks that are segmented into vlans. Prior to this release, users would be required to configure end to end multicast to route multicast packets between vlans as explained in this document http://www.cisco.com/c/en/us/td/docs/wireless/controller/technotes/7-6/chromecastDG76/ChromecastDG76.html#pgfId-23144
If you want to
control mDNS, the key is to limit the size of the local segment.
From 8.2 release, WLC supports mDNS gateway functionality for Chromecast for which the user does not need to enable multicast on the controller. The WLC will snoop all mDNS service advertisements and will not forward the same on AIR or Infra network. Clients can reside in the same or difference vlans as the chromecast service provider. mDNS AP is supported allowing controllers to have the visibility of wired chromecast service providers which are on VLANs that are not visible to the controller.
Step 1 | To create and
apply mDNS services, navigate to
CONTROLLER >
mDNS > General. To enable mDNS Global Snooping, check the mDNS Global
Snooping check box under Global Configuration; as it is disabled by default and
click
Apply. Also,
the Master Services Database shows the default profiles which are
preconfigured.
The Master
Service Database is a user configured database for all the mDNS services
supported by WLC. As shown in the above figure, there is a default list of
services like Apple TV and printer added to this list on start-up in the master
service database. WLC snoops and learns about mDNS service advertisements only
if the service is present in the master service list database. Similarly only
those queries for services listed in the master-service-list will be responded
back to clients subject to the condition that the mDNS profile name associated
with the client allows for the service being queried for.
| ||
Step 2 | To add mDNS
services to the master-service-list database, from the Select Service drop-down
list that display all services, choose the desired option. Each Service Name
has a predefined service string.
| ||
Step 3 | To add
chromecast service, Select
Service as “other”, choose a service name (example GoogleCast) and type
service
string as “_googlecast._tcp.local.” Hit the Add and Apply button after
making the changes.
| ||
Step 4 | To select which
services to be advertised click mDNS and then click Profiles. The default
profile will appear. Navigate to Controller > mDNS > Profiles and select
the default-mdns-profile.
| ||
Step 5 | To check which
mDNS services are running, click
mDNS > Domain
Names. In the example, you will notice Chromecast device is being
discovered as a Wireless Medium.
| ||
Step 6 | When mDNS
Service shows up under Domain Name, verify to which mDNS profile it is tied to
by navigating to mDNS > General > GoogleCast (in this example). As only
the default profile is used, the services will show up under Profile Name,
default-mdns-profile.
|
Chromecast Application
Clients with Chromecast extension installed on their Chrome browser can display the entire browser and screen by using a Chromecast device. Once the client discovers the Chromecast device using mDNS, the subsequent connections between the wireless client and Chromecast device to mirror the display use TCP based unicast messages.
Note | Chromecast works with a growing number of apps. chromecast.com/apps. We have tested with chrome browser (with Chromecast extension installed) on Windows7 and MacBook Air clients and with Chromecast app on Android Samsung Galaxy S4, and S6 Edge. |
Configuration steps for client devices:
Once the profile is attached to the WLAN as shown in previous procedure; proceed with testing to see if the Chromecast services are routed across the VLANs.
The screenshots are taken from a Windows7 client with chrome browser.
Step 1 | Install the
GoogleCast Extension. Visit the store for chrome extension at:https://chrome.google.com/webstore/search-extensions/googlecast
For more
information on installing chrome extension visit:
https://support.google.com/chrome/answer/167997?hl=en
|
Step 2 | Notice the
Googlecast tab at the top right corner of the chrome browser on installing the
extension:
|
Step 3 | Connect your
client to the client SSID. Click the chromecast casting icon on the top right
of chrome browser to discover Chromecast devices in your network. In the
example below, device Lab_CCast was discovered by the client.
|
Step 4 | Select the
casting device (in this example, it is Lab_CCast) and it will begin casting
your browser to the high definition monitor/TV screen with the chromecast
device.
|
Once the mDNS profile is attached to the WLAN as shown in previous procedure, proceed with testing to see if the Chromecast service is routed across the VLANs.
The following screenshots are taken from Samsung Edge S6 phone.
Step 1 | Install
Chromecast app on the phone.
|
Step 2 | Make sure your Android is connected to the client SSID. |
Step 3 | Open the
chromecast app to discover Chromecast devices in your network and to mirror
your screen.
In the
example, the app found Lab_CCast chromecast device on the ssid.
|
Step 4 | Connect to
the chromecast device and start casting your screen to a high definition screen
with the chromecast device.
|
Copyright © 2015, Cisco Systems, Inc. All rights reserved.