zoukankan      html  css  js  c++  java
  • Configuring Transitive IPMP on Solaris 11

    http://www.tokiwinter.com/configuring-transitive-ipmp-on-solaris-11/

    We all know the pain of configuring probe-based IPMP under Solaris, with a slew of test addresses being required, and a long line of ifconfig configuration in our /etc/hostname.<interface> files.

    With Solaris 11, there is a new type of probe-based IPMP called transitive probing. This new type of probing does not require test addresses, as per the documentation: "Transitive probes are sent by the alternate interfaces in the group to probe the active interface. An alternate interface is an underlying interface that does not actively receive any inbound IP packets".

    In this article, I will configure failover (active/passive) IPMP on clusternode1 (the first node of a Solaris Cluster I'm building). Interface net0 has an address of 10.1.1.80 (configured at install time), and I'll be adding this into an IPMP group ipmp0 along with a standby interface, net1. Make sure you are performing these steps via a console connection, as the original address associated with net0 will need to be removed before attempting to add it to an IPMP group.

    The first step, ensure that there is an entry in /etc/hosts for the IP address you're configuring IPMP for:

    # grep '^10.1.1.80' /etc/hosts

    10.1.1.80    clusternode1

    Next, ensure that automatic network configuration is disabled. In my case it was as I'd configured networking manually during the installation of Solaris 11:

    # netadm list -p ncp –x

    TYPE        PROFILE        STATE          AUXILIARY STATE

    ncp         Automatic      disabled       disabled by administrator

    ncp         DefaultFixed   online         active

    Verify that the appropriate physical interfaces are available. In the following output, I'll be bonding e1000g0 (net0) and e1000g1 (net1) into a failover IPMP group.

    # dladm show-phys

    LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE

    net1              Ethernet             unknown    0      unknown   e1000g1

    net2              Ethernet             unknown    0      unknown   e1000g2

    net3              Ethernet             unknown    0      unknown   e1000g3

    net0              Ethernet             up         1000   full      e1000g0

    List the current addresses – from the output of ipadm show-addr I can see that I'll need to delete net0/v4 and net0/v6, otherwise I'll be unable to add net0 to the IPMP group.

    # ipadm delete-addr net0/v4

    # ipadm delete-addr net0/v6

    As the net0 IP interface is already created, I only need to create the net1 interface:

    # ipadm create-ip net1

    I can then create the IPMP group, which I'll call ipmp0:

    # ipadm add-ipmp -i net0 -i net1 ipmp0

    Next, enable transitive probing, which is disabled by default:

    # svccfg -s svc:/network/ipmp setprop config/transitive-probing=true

    # svccfg -s svc:/network/ipmp listprop config/transitive-probing

    config/transitive-probing boolean     true

    # svcadm refresh svc:/network/ipmp:default

    And configure the appropriate interface (in my case net1) to be a standby interface (as I'm using failover):

    # ipadm set-ifprop -p standby=on -m ip net1

    Now I can create my IPv4 address on the IPMP group:

    # ipadm create-addr -T static -a clusternode1/24 ipmp0/v4

    # ipadm show-addr ipmp0

    ADDROBJ           TYPE     STATE        ADDR

    ipmp0/v4          static   ok           10.1.1.80/24

    Finally, fix the default route. I removed the existing route and added a new default route using the new and correct interface – ipmp0:

    # route -p delete default 10.1.1.1

    # route -p add default 10.1.1.1 -ifp ipmp0

    # netstat -rn -f inet

       

    Routing Table: IPv4

      Destination           Gateway           Flags  Ref     Use     Interface

    -------------------- -------------------- ----- ----- ---------- ---------

    default              10.1.1.1             UG        1          0 ipmp0

    10.1.1.0             10.1.1.80            U         8        388 ipmp0

    127.0.0.1            127.0.0.1            UH        2        554 lo0

    You can use ipmpstat to verify the configuration and health of the IPMP group:

    # ipmpstat -g

    GROUP       GROUPNAME   STATE     FDT       INTERFACES

    ipmp0       ipmp0       ok        10.00s    net0 (net1)

    # ipmpstat -a

    ADDRESS                   STATE  GROUP       INBOUND     OUTBOUND

    ::                         down   ipmp0       --          --

    clusternode1              up     ipmp0       net0        net0

    # ipmpstat -t

    INTERFACE   MODE       TESTADDR            TARGETS

    net1        transitive <net1>              <net0>

    net0        routes     clusternode1        10.1.1.1

    Let's perform a failover test. I'll disable net0 and ensure that the clusternode1 address fails over:

    # ipadm disable-if -t net0

    # ipmpstat -t

    INTERFACE   MODE       TESTADDR            TARGETS

    net1        routes     clusternode1        10.1.1.1

    It works! (and my SSH connection is still active…) – net1 is now active with the correct IP address. Let's fail it back:

    # ipadm enable-if -t net0

    # ipmpstat -t

    INTERFACE   MODE       TESTADDR            TARGETS

    net0        routes     clusternode1        10.1.1.1

    net1        transitive <net1>              <net0>

    The address has failed back to net0, and again my SSH connection is still active. I can now continue with clusternode2, and the rest of the cluster install.

  • 相关阅读:
    在VMware9.0上安装CentOS6.3+mysql5.5.28数据库 东师理想
    Python学习总结(二)python的练习方法
    gdb调试nasm语法的汇编程序(转载)
    配置Bochs
    量变与质变(生活中,技术上)
    设置gdb反汇编语法为intel(转载)
    Python学习总结(一)
    2012暑假计划
    理解TCP为什么需要进行三次握手(白话)(转载)
    对自己的学习方式的思考(转载)
  • 原文地址:https://www.cnblogs.com/cqubityj/p/6918221.html
Copyright © 2011-2022 走看看