Solaris 9 zone wont boot - interface in use

We have a Solaris 10 system with a solaris 9 branded zone. Trying to create a new lo interfaces i ended up rebooting the zone. The zone will not come up, it ran fine before i tried this. When i run the zoneadm -z zone-s9 boot command i get

"zoneadm: zone 'zone-s9': lo0:2: could not bring network interface up: address in use by zone 'global'; Cannot assign requested address

zoneadm: zone 'zone-s9':call to zoneadmd failed"

There is no lo0:2 in the global setup. The global (root) ifconfig shows lo0 (IPv4) and lo0 (IPv6) interfaces along with a couple nxge's. According to zonecfg info there are 3 nets. None of which are lo0:2

nxge0
nxge1
lo0

We have tried to do the zlogin -C but that just hangs on us. WHere the heck does the system have the lo0:2 info? i can't see it anywhere. This is persistent through a reboot of the system as well. How do i get the zone to start.

lo0 is the loopback interace... you can't use it as a nic inside your zone. use one of the nxge interfaces...

The point isn't that the lo0 is a loopback. I have nothing configured for lo0:2 as far as i can see but i'm getting an error saying it is already used.

We aren't trying to get out on the interfaces, we do this regularly on a Solaris 8 (i know) sytem. We use a script that creates 7 dummy ips on lo0:1 - lo0:7 for testing bind. Is the zone not allowed to use the lo series the same way.

Apologies if I'm about to state the obvious stuff that you already know but let's cover a few facts here.............

The branded zone can share a network interface with the global zone or it can be configured to have exclusive use of an interface. It would seem that whatever interface the branded zone is requesting at boot time, it is requesting exclusivity and the global zone is already using it so an error results.

I would suggest that you use zonecfg to list what interfaces the global and branded zones think you've got and reconfigure to eliminate conflict.

Another thought is that Solaris decides what interfaces to configure by the existence of /etc/hostname.<interface> files (eg. /etc/hostname.nxge0).

You haven't said whether your branded zone is on its own filesystem or not but if you can get at it then look for these file(s). Renaming them temporarily should stop Solaris trying to configure the network interfaces and therefore get the system on its feet. (Easier to troubleshoot once the system is up???) You could also look at /etc/hostname.<interface> files on the global and see what that thinks its got.

Hope that helps.

---------- Post updated at 12:57 PM ---------- Previous update was at 12:21 PM ----------

Also, you didn't say how you got into this position. What command(s) did you use to try and configure the interfaces?

If you think that you messed up your zone configuration you could try restoring everything under /etc/zones on global. This will put your zone config back to the way it was. (Rename the existing zones directory, don't delete anything)

1 Like

Don't worry about stating the obvious, i'm not familiar with zones at all. Another guy set up the zone and we are learning as we go.

zonecfg -z zone-s9 info shows:
net:
address: 192.168.82.197
pysical: nxge0
defrouter not specified
net:
address: 192.168.0.7
pysical: nxge1
defrouter not specified
net:
address: 127.0.0.1
pysical: lo0
defrouter not specified

Ifconfig -a (in global) shows:

lo0: blah blah blah inet 127.0.0.1 blah
nxge0: blah blah blah 192.168.82.180
nxge1: blah blah blah 192.168.0.5
nxge0: blahv6 blahv6 ::1/128
nxge:0:1: blahv6 blahv6 fe80::221:28ff:fe3c

There is no lo0:2 listed in either.

No it is not a separate fs. I tried renaming the zone hostname files and the boot still failed. Were you meaning i should rename the global hostname files???

I had done an ifconfig while in the zone but the other admin said i should do the add trhough the zonecfg command. I backed out then tried the "add net" command. we didn't commit the first time so we did it again with the commit and attempted to restart the zone. It failed.

---------- Post updated at 10:19 AM ---------- Previous update was at 08:46 AM ----------

*** FIX ***

In the global /etc/zones there is an xml file zone-s9.xml. This file list the zone information including the network interfaces. I tried moving the file but that caused the zone to be NOT CONFIGURED. I deleted the 3 interface lines instead and the zone came up fine. After adding the interfaces we knew were good we added an ip attached to lo. The new lo came up as lo0:1 and the loopback (127.0.0.1) interface was declared as lo0:2. Each time i added another lo connection the default loopback was incremented so it was always the last lo interface.

Thanks for the help.