This is usually because of STP causing a delay in the negotiation.
Edit your ifcfg script eg:
/etc/sysconfig/network-scripts/ifcfg-eth0
Add a LINKDELAY of 30 seconds or whatever works for you:
LINKDELAY=30
After that you should have an IP during bootup.
centos, dhcp, ip, startup, reboot, solutionthis, stp, negotiation, edit, ifcfg, eg, etc, sysconfig, scripts, eth, linkdelay, bootup,