Linux: When your Network Interfaces Fail to Start

I got into a bit of unplanned primary research last night when the network interfaces on my new CentOS server started not, ummm, starting.  So I thought, "no biggie", and got to the Googling.  I tried "network interfaces not starting" and found the "network start" command which was illuminating but not helpful.  I watched the command window as it started, first, the "Ampache" interface, then the "Main" interface.  I also observed CentOS' nifty little network interface configuration app as the Ampache interface went active, and then inactive after just a few seconds.  I had my first clue.

The Ampache interface is a virtual of the Main interface, which refers to the parent NIC.  Didn't seem to make much sense that Ampache would start first.  Looking more closely at the configuration GUI, I noticed that the four interfaces I had were arranged somewhat oddly.  Not by parent and virtual, but alphabetically by nickname.

 Nicknames start off looking like actual names such as "eth0" and "eth1:1".  I had used the handy interface to rename them into more indicative names like "Main" for "eth1", since it was only live parent connection, "Dead" for "eth0", since I wasn't using it, and "Ampache" for "eth1:1", since that was what was running on it.  I had four defined, but only two starting automatically.  So, what should have been starting like "eth1, eth1:1" was starting like "Ampache, Main".  Could it be as simple as the nicknames?

 Having spent the better part of a very long evening trying various schemes to get these interfaces to launch, I had learned that I could easily launch them manually by simply selecting the Main interface in the GUI, clicking "Activate", and then doing it again for "Ampache".  So I tried the same thing in the reverse order.  Sure enough - while I was activating "Main", "Ampache" deactivated itself.  So, as would make sense, order of activation is important.  First, the parent nic has to be running, and then any virtual children.  But "network start" was launching the child first.  Again, I looked at the nicknames.

To keep things both alphabetical and informational, I changed the nicknames to "10_Main" and "11_Ampache" and restarted network services.  Up comes "10_Main".  Up comes "11_Ampache".  Both stay up.  How about  that?

 So network interface nicknames, for some reason, determines start order.  Google failed me on this one.  I guess not too many people muck with the nicknames.  For a true ubernerd, "eth0:1" is as descriptive as he'll ever need.  Hopefully, the next guy who runs into this can learn from my pain.

Reminds me of that Despair, Inc. poster:  "It could be that the purpose of your life is only to serve as a warning to others"