Solaris – add network interface for a running zone
This will describe how to add a network interface to a running non-global zone, without having to reboot the zone. The new interface will persist between reboots. If you want to add an interface temporarily, you can do so by not modifying the zone configuration.
First you add the entry to the zone configuration. This is the part that lets it persist between reboots. This is done from the global zone:
zonecfg -z <ZONENAME>
add net
set address=<NEWIPADDRESS>
set physical=<PHYSICALNIC>
end
verify
commit
Now we have to manually add a new interface to the running zone. Do this from the global zone as well:
ifconfig <PHYSICALNIC> addif <NEWIPADDRESS> netmask <NEWNETMASK> zone <ZONENAME> up
Note: The ‘addif’ tells ifconfig to create a logical interface using the next available. So if you’ve got “e1000g0″ and “e1000g0:1″, using addif will use “e1000g0:2″.
To remove the interface from a running zone you basically just reverse this. From the global zone, remove the interface. You must first determine which logical interface [alias] you wish to remove.
ifconfig <LOGICALIFACE> down
ifconfig <LOGICALIFACE> unplumb
Now the interface is no longer visible in the running zone.
If the interface is configured in the zone configuration, and you do not wish the interface to be re-created when the zone is rebooted, you must remove it from the zone’s configuration from the global zone. Conveniently enough this can be done with a single command:
zonecfg -z <ZONENAME> remove net address=<IPADDRESS>
That’s it. You’re done!
Comments
Comment from Eric
Time February 3, 2010 at 5:12 am
You save my day, thanks
Comment from karn
Time October 26, 2009 at 11:50 am
The note is worth appreciating :