A place for Unix Thoughts and Ideas

Configuring IPMP on Solaris 11

Configuring IPMP on Solaris 11 has become very straightforward and simple.

However, most of the examples I have seen online assume that both of the ipmp interfaces are unused and don’t have your system IP on them, which probably isn’t the case.

To get past this, you just need to run a ipadm delete-addr on the existing interface(s) that already have IP’s assigned.

Here are the steps for configuring IPMP active/standby, with test addresses.

In this example testserver-nic0 and testserver-nic1 are the DNS names for the test addresses on each network card and are defined in the hosts file.

1. Identify the net devices to be used. In this case I will be using bge0 and bge2 which map to net0 and net2

root@testserver-01:/# dladm show-phys

LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE

net1              Ethernet             unknown    0      unknown   bge1

net3              Ethernet             unknown    0      unknown   bge3

net0              Ethernet             up         1000   full      bge0

net2              Ethernet             unknown    0      unknown   bge2

2. Remove any addresses if defined

ipadm delete-addr net0/v4

3. Create IPMP device and assign both network cards to it

ipadm create-ipmp ipmp0

ipadm add-ipmp -i net0 -i net2 ipmp0

4. Configure Probe-based Failure dection and the address for the card.

For this you will either assign test addresses to the adapters in the IPMP group (Like in Solaris 10), or enable Transitive probing, which doesn’t require test addresses.

Using Test addresses

ipadm create-addr -T static -a testserver-nic0/23 net0/test

ipadm create-addr -T static -a testserver-nic1/23 net2/test

ipadm set-ifprop -p standby=on -m ip net2

ipadm create-addr -T static -a  testserver/23 ipmp0/v4

Using Transitive probing:

Warning: only enable transitive-probing if you are not using test addresses.

svccfg -s svc:/network/ipmp setprop config/transitive-probing=true
svcadm refresh svc:/network/ipmp:default

ipadm set-ifprop -p standby=on -m ip net2

ipadm create-addr -T static -a  testserver/23 ipmp0/v4

5. Cleanup the default route.

This last step is technically unnecessary as Solaris will automatically substitute the ipmp nic name when applying the persistent routes on boot.

But I think it is best to take the extra step and clean up the reference to the old interface.

route -p delete default

route -p add default -ifp ipmp0

Although YMMV, I was able to run these commands in script with no impact to my existing ssh connections.

Verifying all my settings:

root@testserver:~# ipmpstat -g


ipmp0       ipmp0       ok        10.00s    net0 (net2)

root@testserver:~# ipmpstat -a

ADDRESS                   STATE  GROUP       INBOUND     OUTBOUND

::                        down   ipmp0       —          —

testserver         up     ipmp0       net0        net0

root@testserver:~# ipmpstat -t


net2        routes     testserver-nic1

net0        routes     testserver-nic0

or when using Transitive probing:

root@sanlaapsuntest-01:~# ipmpstat -t


net2        transitive <net2>              <net0>

net0        transitive <net0>              <net2>

Updated 4/19/2012 – Added in steps for Transitive Probing


One response to “Configuring IPMP on Solaris 11

  1. Eric F September 11, 2012 at 10:01 pm

    I found that I needed to delete net0/v6 as well, or I would get the message “ipadm: warning: cannot add net0 to ipmp0: Underlying interface has addresses managed by dhcpagent(1M)”. “ipadm show-addr” showed that net0/v6 was still assigned.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: