Can someone provide cons and pros for having DHCP in a data center?
I know this is usually a taboo, but maybe there were developments which alleviate the said issues?
I vote no. Allow me to enumerate my reasons.
Having each server machine rely on dhcp in order to have its networking stack come up correctly adds another potential fault. In a server environment, where you're trying as hard as possible to achieve maximum availability, adding another moving part is not a good idea
DHCP essentially hands anyone plugging into the switch a valid lease. Yes, you can specify that only known MACs get leases, and everyone else is denied, but a better place for this is dynamic VLANs.
Having a central DHCP pool which assigns addresses willy-nilly is insane for a server block. Assigning a server a specific IP via DHCP is less insane, in the sense that having 3 imaginary pink elephants chasing you is less insane than 5.
Not only to you have to specify in the DHCP server what each machine is assigned to, you have to keep documentation of it. And you have to update ALL of the documentation any time anything changes. New network card? Update documentation and DHCP server and DNS, etc.
Simple is better.
Generally speaking, DHCP with reservations is the "best of breed" for IP management in the datacenter, depending (of course) on the particular needs of your data center.
Very rarely is it wise to run DHCP in a data center without reservations, though some blend is appropriate. In many settings, the "Cons" for DHCP with reservations end up being non-issues (if the router can take out DHCP, well, the servers aren't accessible anyway, etc). It's also commonly a decision regarding size. A datacenter with hundreds or thousands of servers with frequent deployments and reinstallation will certainly use some DHCP, even if it's only for testing/deployment. A datacenter with a few servers will likely be fine with everything statically assigned.
The only exception to not running DHCP in the datacenter is this:
DHCP on a DEDICATED build VLAN so you can PXE boot new servers after you rack them to image them.
There is no other good reason to have DHCP running in a datacenter as already pointed out so well by everyone else.
I personally believe DHCP is fine in a data center, if using shared address space. DHCP doesn't really mean it has to be dynamic addresses; they can be fixed.
So long as you provide redundant DHCP servers (DHCP failover) so DHCP is always available, things should be fine.
People used to think leaving switch ports to auto-select speeds and duplex was a bad idea, and now I don't know of anyone who spends the time configuring a switch such.
Why are people so worried about DHCP in the data centre?
Disclaimer - I've implemented DHCP in the data centre and had no issues when I was an infrastructure manager, but now as a consultant for many customers I wouldn't do it. It all depends ....
The following is copied from MS. Think this through and think about why you worry so much about DHCP in the data centre:
If clients receive address allocations from a DHCP server, it is important to be able to predict how they will be affected by any DHCP server downtime. In general, the longer the lease period, the lesser the effects will be if the DHCP downtime remains short. For example, if client lease periods are set to the default of 8 days, clients do not attempt to renew the lease until 50 percent of this period (4 days) has lapsed. If the original DHCP server is unavailable at this time, the client continues with this leased address until 87.5 percent of the lease period (7 days) and then attempts to renew with any DHCP server. With clients attempting to renew after 4 days, even if the DHCP server were to remain unavailable for 2 days, clients would not reach the 87.5 percent rebinding state. Therefore, you do not normally need to worry about any outage that is within 25 percent of the lease duration. Similarly, the shorter the lease times, the shorter the time available to recover the DHCP server.
Erm...it's good for client PCs in the office next to a data centre...
...printers too if you must...
...but no, still a bad idea for servers, production ones at least - maybe in a dev/test environment I guess, or for VPSs if you had no other choice.