Network Interface Aliases in Solaris

Most of what you will find when searching the net for “solaris network interface alias” or “solaris interface alias” will be ways to create pseudo interfaces such as “hme0:1” or “ce0:1”. This is a well documented feature under Solaris.

However, in my case, we were looking at ways to incorporate other systems in to our RAC cluster. Due to the way that Oracle RAC is designed, the public (primary) interface on all of the systems in the RAC cluster MUST be the same. In other words, they must all be “ce0” or “hme0” or whatever the device name is.

This isn’t really a problem under linux since you can easily define which interface gets to be named “eth0”, but under Solaris, this can be a bit of a problem when you try to incorporate different machine types in to the cluster. Because Solaris assigns an interface name based upon the chipset of the NIC, some systems might have “ce0” (such as on the V480) while others might have “ipge0” (such as on the T2000).

So.. how do you add a machine with a different primary device name in to the cluster? Well, the answer is actually quite simple: create an alias to it. It’s just not the same alias that you get from plumb’ing an interface.

In the /dev tree, simply create a symbolic to the primary interface using the name that you want. For example:

# cd /dev

# ln -s ce public

# ifconfig public0 plumb

# ifconfig public0
public0: flags=1000842<UP,RUNNING,MULTICAST,IPv4> mtu 1500 index 5
inet netmask 0
ether 0:3:ba:2a:e8:c5

And you are done. You now have an interface called “public0” which is known as your primary interface. Be aware, though, that this will BE DESTROYED if you reboot the system with the “-r” flag as this will force a rebuild of the entire device tree.

Leave a Reply