One of our ongoing goals in the world is to help make troubleshooting video and voice-over-IP for event production a little easier. There’s already enough to go wrong on the human side. We want to make life easier for the technicians running the show.
During testing of the benchmarker we ran into some issues. Sometimes, we would never resolve an IP address for certain NDI sources, no matter how long we waited.
I needed a tool to troubleshoot the IP address resolution side of things, and that’s where I dove into mDNS, or Multicast DNS.
What is mDNS?
mDNS, or multicast Domain Name System, is a network protocol used to discover devices on a network without requiring a central DNS server. Devices on the network broadcast their own presence and listen for broadcasts from others, enabling them to discover each other and communicate directly.
If you have ever typed an address into your browser’s address bar, like www.tractusevents.com, your browser will reach out to a DNS Server and ask, “what’s the IP address of that domain name?” The IP address is like a phone number for a computer, and domains are a way for humans to have an easy-to-remember way to look up those IPs.
DNS is bulky though - and not suited for dynamic updates. That’s why mDNS is used for NDI and other types of protocols.
When an NDI device is connected to a network, it sends out mDNS announcements. Other NDI devices on the network receive these announcements and can connect to the device to receive its video and audio streams.
NDI Source Discovery: mDNS
As I wrote about in the blog post on our NDI Benchmarker NDI uses Multicast DNS, or mDNS to do device discovery.
Since NDI (and other no-configuration networking, such as Mevos and AirPlay) use mDNS to communicate IP addresses, I needed a way to see mDNS lookups, perform queries, and view IP addresses without the need to install the (awesome) Wireshark app.
This app will allow you to query for all mDNS services on your local network, view the list of mDNS messages, and view any records that are received in mDNS query answers.
With the mDNS response, we can get the IP addresses (plural!) from each NDI device. Beware: NDI can use IPv4 or IPv6, so having both is critical.
What This Tool Does
This tool will allow you to view all the advertised mDNS services on your network, query for specific service types, and save any record responses (e.g. A, AAAA IP address records) to a CSV file.
Where mDNS is Used
- Network Device Interface (NDI)
- Apple’s Bonjour protocol (discovery of devices and services on macOS and iOS devices)
- Philips Hue lighting system
- Roku media players
- Internet Printing Protocol (IPP) and AirPrint
- Sonos and Bluesound
Command Line Switches
If you run this utility with the
-debug switch, it will log mDNS queries to the main log file and to a console.