I was raised with the rule that servers should always use manually configured static IP addresses. I understand why that still matters for foundational services such as domain controllers, DNS, DHCP, routers, and other infrastructure. But for ordinary application servers, is a fixed address really necessary anymore? Do applications and scripts still commonly connect directly to server IPs, or should they use DNS names and service discovery instead? Would DHCP reservations be a reasonable alternative, or am I overthinking the traditional static-IP rule?
4 Answers
The answer depends on how resilient the environment is. If DHCP is redundant, monitored, and properly documented, reservations are often perfectly practical. If a server must remain reachable during a DHCP outage—or if it is part of the recovery path for fixing the network—configure its address statically. Either way, document the assignments with IPAM and avoid overlapping manually assigned addresses with DHCP pools.
You’re not nuts—the real requirement is usually a predictable address, not necessarily a manually configured one. Core infrastructure that other systems need in order to start or recover, such as DHCP, DNS, gateways, domain controllers, and network appliances, should generally have static addresses. For other systems, DHCP reservations can provide a stable address while keeping address management centralized.
DHCP reservations are a good middle ground for less critical servers, printers, access points, cameras, and similar devices. They keep the address consistent without requiring manual configuration on every machine. Just remember that a reservation still depends on DHCP, so highly critical infrastructure should not rely on DHCP being available to obtain its initial network settings.
Use DNS names or service discovery for applications and scripts whenever possible. Hardcoding an IP makes migrations, disaster recovery, network renumbering, and scaling much harder. A normal application server may be fine with DHCP as long as it updates DNS correctly and clients use its hostname rather than relying on the address directly.

That approach works especially well in cloud and clustered environments, where instances and endpoints are expected to change. Designing around a permanent address can become a liability.