Thursday, December 22, 2011
IP address conflict on RackSpace Cloud Server
I came across an issue today that took me a while to figure out so I thought I'd share to hopefully help someone out someday.
I'm working on RackSpace cloud servers configuring and compiling packages for a web application. We are also using RackConnect, a service from RackSpace that allows the cloud servers to coexist in a private network with dedicated servers. I started with base CentOS 6.0 image and used yum to install a few packages that I would need. Well, I inadvertently installed NetworkManager which was the source of my problems.
After a reboot, both network interfaces eth0 and eth1 were coming up with the same IP address. Looking at other 'working' cloud servers I could see that only eth1 was configured with the private IP address and eth0 was disabled.
I confirmed with RackSpace support that the contents of /etc/sysconfig/network-scripts/ifcfg-eth* were correct, but NetworkManager doesn't use these so it was configuring them unexpectedly. It was assigning the private IP address to both interfaces creating an address conflict. I could recreate this by doing
which would create the address conflict, and then
which would correctly assign the private IP to eth1 and leave eth0 inactive.
Because this will eventually be an application server, there won't be a need for NetworkManager so my fix was to remove NetworkManager from loading during boot.
/sbin/chkconfig --del NetworkManager
I should mention that I've used NetworkManager on laptops and desktops for years and it works great, but it really shouldn't be installed in a server environment that will probably have static addresses anyway.