When I was starting to think about writing this weekly column, I asked people for topics. Only one person answered. This individual had lots of questions. The biggest question he had is why the Bears suck at picking a quarterback. The other inquiries were good also. This topic stuck as a good discussion. Should IP addressing be static or dynamic for projects? To quote Pat Brown of SynAudCon, “it depends.” Yes, that is the answer. The purpose of this column is to provide additional information to help you make the decision.
In the interest of brevity, this discussion is based on version four of the Internet Protocol (IPv4), not version six (IPv6). The core ideas are the same. However, the range and uniqueness of IPv6 addresses does change this slightly. Many edge devices in audio, video, and lighting still use IPv4 for their communication. Now as to all the differences between IPv4 and IPv6, that will be a different balloon.
In the simplest terms, a device connected to a computer network needs a unique identifier to allow data routing to the proper places. The most common human-readable addressing scheme is Internet Protocol or IP. This protocol describes how to address nodes on the network. IP addresses are about the MAC address which is the most basic of addressing of an Ethernet node. (Yes, I am skipping over the OSI model and layers it has been covered in the blog previously.) It requires that each device is assigned a minimum of two descriptors, with typically there being three. The three pieces of information are the IP Address, Subnetwork Mask (often referred to as Subnet), and Gateway Address. Most of the time this information is displayed in a dotted octet format, four decimal number separated by periods.
The user sets addresses for the devices. It is also possible to automate the process of assigning IP addresses. The process to set the IP device of a device to be a static or defined address varies based on device and operating system. Typically, one goes to a control panel, selects networking, selects static, then enters the IP address and the subnetwork mask. Obviously, this process is different for other devices. Many IP devices involved in AV systems do not have displays or an interface for showing and modifying the IP address of the node. Some devices require configuration software others use an RS-232 connection to set the IP address via a command line interface (CLI).
It is required to do that for each device in the system. This process can be time-consuming. It also means that each user can just connect to a network and select an IP address that they like. Remember each address needs to be unique. The management of the addresses can be done by simply writing them down and each person signing up for an IP address. Now imagine trying to manage that process across hundreds if not thousands of devices. Luckily there were some lazy and smart people who created a better way. They created multiple solutions, the two methods that we typically encounter. The two are Dynamic Host Configuration Protocol (DHCP) and link-local address also known as a link-local connection.
Both methods are designed to allow a device to have a unique address without user intervention. I won’t go into every detail of the processes, but the simplified process of a device booting up and binding an address to a network interface has multiple steps. Most modern devices are set to use DHCP by default. The first step the device does it check to see if an IP address is manually assigned. If there has been one assigned the process stops. The next step is the device sends out a query looking for a DHCP server. The DHCP server will then assign a unique IP address to the device based on the rules of the server. The booting device will continue sending out query messages waiting for a reply, typically for a minute. After that timeout, the device will start the link-local process. Using a predefined network range in the IP range of 169.254.x.y with a 255.255.0.0 subnetwork mask the device will attempt to assign itself a unique one by picking a random value. The device will then verify that the IP address is not already in use. If it is in use the device suggests another value and tries again; if available the node will bind it to the network card and use it. There are of course exceptions, especially for networking hardware such as managed switches. For example, the Cisco SG series of switches does not go to link-local, instead of step three the devices assign themselves a default address as listed in the owner manual; many are 192.168.1.254 with a subnetwork mask of 255.255.255.0.
Now that we know how the addresses are assigned, the decision of static or dynamic still needs to be answered. I use the term dynamic to encompass both DHCP and link-local as the values are variable and can change after a reboot. For a simple system where one just needs to configure the equipment once, it makes perfect sense to have the system assign their addresses using link-local. One connects a computer and the device to a network. After about two minutes of waiting the two items can talk with each other quite often. However, how does one know the IP address to send the message to? Typically, the manufacturer will provide directions on how to communicate to the device. If the two devices are using link-local, there are over 65,000 address to be checked. A display on the device can be very helpful in this situation.
Other solutions such as reserved IP addresses assigned by the DHCP server are also available. One can also set the IP address based on which physical jack on the network switch is used to connect with the device. I am skipping over those for now, perhaps a future Balloon.
If one also has placed a DHCP server on the network, the server will assign IP addresses to the devices as they boot up. One still should determine what the IP address is of the devices on the network to confirm communication and for troubleshooting. The configuration software typically handles establishing communication. If not, using the rules of the DHCP server one can often guess and figure out the address. Quite often they are sequential, so if one knows the IP address of their computer, they can make an educated guess of the other addresses. (Yes, there are things like looking in the server log to determine the address. I am simplifying.)
When a static IP address is being used, the user should know what the IP address of the device is. It will not change through reboots. Modifying the IP address is a manual process. The tradeoff is that it takes time to set the address manually. While this time might seem small, imagine it takes three minutes to assign an address to a device, there are 150 devices in the system. That is about seven and a half hour process. A dynamic addressing system is more appealing after that process. Knowing the address of every device provides some advantages. One can use the ping command to verify there is communication with every device at a simpler level than the configuration software.
Using dynamic addressing one can save seven hours. Link-local will take more than a minute on a system this large to determine addresses; a DHCP server will be almost instant beside the boot time. The tradeoff is that one does not know the IP address of every device. Not being sure of the IP address may or may not be an issue. For some systems, it is not a problem, for others especially ones with external control systems, such as Crestron or AMX, being able to control a device requires specifying the IP address. Being able to ping a device and verify basic communication is more difficult.
Which one is better? Which one should be used? I typically use static for my office, test, and trade show systems no matter the size. The main reason is that I can use ping to make sure I have communications. Also, it means if the system has had power cycled for any reason, I will still know the IP addresses of the devices.
Dynamic addressing for a small system that is configured once and then left, such as a DSP engine in a house of worship, makes perfect sense. I would do the same thing with a processor in a restaurant. It allows me to get to work quickly if the configuration software supports communicating without knowing the IP address.
There are additional items to consider in this decision. Do the devices have front panel allowing the addresses to be determined quickly? I travel with painter’s tape and a Sharpie to label devices with their addresses. Is the AV system integrated with other networks? Does the IT team at the venue have a preference? What is the skill level of the maintenance staff if a device ever needs to be replaced? That is when the advanced features of DHCP can be very helpful.
The decision of static or dynamic is not a simple one. Each system is different. I will add this piece of advice, I travel with a DHCP server to speed up the booting process as waiting for link-local takes longer than one expects.
Thank you for reading. I am interested in knowing your opinion.
Now if you will excuse me, I need to go set the IP Addresses for InfoComm2017.
May 11, 2016