2

Im looking to better understand this piece of advice in relation to setting up devices on internal networks with static IP addresses, and why that is considered a bad idea.

On the surface of it, setting up static IP addresses for devices on an internal network that acts as a server doesn't seem like a particularly bad idea when those servers need to communicate with each other regularly. If server A needs to request a web page or an FTP connection or whatever from server B, the task is made much simpler by making sure that server B can always be found at a specific address instead of searching through the network for server B each time.

The only immediate issue that I can think of when setting a static IP address is that the IP address is defined from the servers side and not the router (e.g. the server says to the router, "I want to be connected to your network at IP address 192.168.0.42"). This is fine in most simple cases, but if there's a collision (two different devices are both asking/demanding to be 192.168.0.42), the setup is bound to fail somehow.

Beyond that one case though, why is setting up servers on an internal network with static IP addresses such a bad idea?

3

It's not true that static IP addresses are always a bad idea. For small networks, with a handful of devices, it may make perfect sense. Static addresses are simple to understand and configure -- and not as complex as setting up a DHCP and DNS server. For small networks to which you might hook up a Raspberry Pi -- as mentioned in the question you linked to -- I think static addresses are fine. The blanket, "Telecommunications engineers never do this" is not accurate.

Most of the regular users on this forum work with much larger networks -- hundreds, thousands, or tens of thousands of devices. At that scale, manually keeping track of individual device addresses is nearly impossible. When networks are that large, things are changing constantly (that's why we have jobs). PCs move, servers get replaced, new applications get created, and old ones are retired. Networks expand and contract, adding new sites or reconfiguring old ones.

If everything had a static address, any change would become an impossible task. Imagine moving a server from one data center to another. The IP address would have to change. Every application that communicates with that server would have to be modified. Software would break, systems would fail, and IT would look very different than it does today. Facebook and Google could not do what they do managing all their servers' IP addresses in a spreadsheet.

  • Yes and no. When you're dealing with a "farm" (group of identical services), and don't care which actual server you access, dynamic server addressing is ok. When you have one subnet with multiple services in it, you need to know where each lives. I don't trust dynamic DNS for this. – Ricky Beam Jan 20 '18 at 5:05
  • And yes, I do maintain a /21 in a spreadsheet. (and in the past a total of around /12) – Ricky Beam Jan 20 '18 at 5:08
  • 1
    @RickyBeam Of course no matter what one recommends here, someone will be successfully doing the opposite. ;-p – Ron Trunk Jan 20 '18 at 17:14
2

Statically configuring addresses doesn't scale, and can be a problem when moving devices in a network. That is the reason for DNS. With DNS, you can refer to a host by name, and the DNS will take care of resolving the name to the currently assigned IP address.

Statically configuring addresses may make sense on small networks, but even on medium sized networks it can become a burden.

  • This presumes DNS is usable, which on some corporate networks is not the case for the odd VPN solution. Changing an IP address for a major server may distress users on another network using "hosts" details or hard coded scripts. Some (most) cloud providers still can't use hostnames in their network security groups. DNS is not universal. – mckenzm Jan 17 at 4:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.