Solaris 11中配置基于link的IPMP

http://blog.itpub.net/29960937/viewspace-1347901/

 

Tips: Record and feedback errors you have encountered.

Welcome to umap  from10.204.205.253,杩炴帴鍫″瀿鎴愬姛!
Trying 10.204.197.128 ...

Last login: Tue May 14 10:30:13 2019 from 10.204.205.5
Authorized users only. All activity may be monitored and reported       Aug 2018
You have new mail.
-bash-4.4$ 
-bash-4.4$ uname
SunOS
-bash-4.4$ su -
Password: 
Authorized users only. All activity may be monitored and reported       Aug 2018
You have new mail.
root@lnltedmr-tds:~# ipmpstat
usage: ipmpstat [-n] [-o <field> [-P]] -a|-g|-i|-p|-t

  output modes:  -a  display IPMP data address information
                 -g  display IPMP group information
                 -i  display IPMP-related IP interface information
                 -p  display IPMP probe information
                 -t  display IPMP target information

       options:  -n  display IP addresses numerically
                 -o  display only the specified fields, in order
                 -P  display using parsable output mode
root@lnltedmr-tds:~# ipmpstat -p
ipmpstat: probe-based failure detection is disabled
root@lnltedmr-tds:~# Linu
root@lnltedmr-tds:~# 
root@lnltedmr-tds:~# 
root@lnltedmr-tds:~# netadm enable -p ncp DefaultFixed
-p: illegal option -- p
usage: enable <enm-name>
        Enable the specified ENM.
root@lnltedmr-tds:~# netadm list
root@lnltedmr-tds:~# netadm list
root@lnltedmr-tds:~# ipmpstat -p
ipmpstat: probe-based failure detection is disabled
root@lnltedmr-tds:~# ipmpstat -g
root@lnltedmr-tds:~# ipadm create-ipmp ipmp1
root@lnltedmr-tds:~# ipmpstat -g
GROUP       GROUPNAME   STATE     FDT       INTERFACES
ipmp1       ipmp1       failed    --        --
root@lnltedmr-tds:~# ipadm create-ip  net2
root@lnltedmr-tds:~# ipmpstat -g
GROUP       GROUPNAME   STATE     FDT       INTERFACES
ipmp1       ipmp1       failed    --        --
root@lnltedmr-tds:~# ipadm add-ipmp -i net2 ipmp1
root@lnltedmr-tds:~# ipmpstat -g
GROUP       GROUPNAME   STATE     FDT       INTERFACES
ipmp1       ipmp1       failed    --        [net2]
root@lnltedmr-tds:~# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
net0: flags=100001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,PHYSRUNNING> mtu 1500 index 3
        inet 10.204.197.128 netmask ffffff00 broadcast 10.204.197.255
        ether 0:10:e0:3d:24:88 
net2: flags=11000803<UP,BROADCAST,MULTICAST,IPv4,FAILED> mtu 1500 index 6
        inet 0.0.0.0 netmask ff000000 
        groupname ipmp1
        ether 0:10:e0:3d:24:8a 
sp-phys0: flags=100001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,PHYSRUNNING> mtu 1500 index 4
        inet 169.254.182.77 netmask ffffff00 broadcast 169.254.182.255
        ether 2:21:28:57:47:17 
ipmp1: flags=8011000802<BROADCAST,MULTICAST,IPv4,FAILED,IPMP> mtu 1500 index 5
        inet 0.0.0.0 netmask 0 
        groupname ipmp1
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128 
net0: flags=120002004841<UP,RUNNING,MULTICAST,DHCP,IPv6,PHYSRUNNING> mtu 1500 index 3
        inet6 fe80::210:e0ff:fe3d:2488/10 
        ether 0:10:e0:3d:24:88 
net2: flags=20012000801<UP,MULTICAST,IPv6,FAILED> mtu 1500 index 6
        inet6 ::/0 
        groupname ipmp1
        ether 0:10:e0:3d:24:8a 
sp-phys0: flags=120002000840<RUNNING,MULTICAST,IPv6,PHYSRUNNING> mtu 1500 index 4
        inet6 ::/0 
        ether 2:21:28:57:47:17 
ipmp1: flags=28012000800<MULTICAST,IPv6,FAILED,IPMP> mtu 1500 index 5
        inet6 ::/0 
        groupname ipmp1
root@lnltedmr-tds:~# ipmpstat -i
INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE
net2        no      ipmp1       -------   down      disabled  failed
root@lnltedmr-tds:~# 

  在远程不好搞。得去机房了。

 

 

IPMP(IP Multipathing)是Solaris操作系统中重要特性,它将几个网络接口绑定在一起作为一个IPMP组,做到网络接口的冗余。即使其中的一个网络接口发生故障,IPMP上的业务IP不会丢失,会failover到其他接口上,避免了单点故障。IPMP可用于Oracle的RAC的公用网络或私有网络上。

基于linkIPMP(Link Based IPMP)

在Solaris中mpathd守护进程负责探测网络接口的故障与修复,它所用的参数配置文件为/etc/default/mpathd。IPMP根据mpathd探测网络接口故障的方法不同,可分为基于link的IPMP和基于probe的IPMP。

基于link的IPMP具有以下特点

–mpathd利用网络接口驱动程序进行探测(需要接口硬件支持)

–不需要额外的测试IP地址,节省IP资源

–默认可用(如果接口硬件支持)

在配置IPMP时,有两种模式:Active-Active模式和Active-Standby模式。在Active-Active模式中所有网络接口都要在线处于active状态;在Active-Standby模式中,至少有一个网络接口在线处于active状态,其他网络接口处于standby状态。查看IPMP组中各个网络接口的状态信息可用ipmpstat命令。

# ipmpstat
usage: ipmpstat [-n] [-o [-P]] -a|-g|-i|-p|-t
  output modes:  -a  display IPMP data address information
                 -g  display IPMP group information
                 -i  display IPMP-related IP interface information
                 -p  display IPMP probe information
                 -t  display IPMP target information
       options:  -n  display IP addresses numerically
                 -o  display only the specified fields, in order
                 -P  display using parsable output mode


Solaris 11上配置Link Based IPMP示例

1. 设置NCP (network configuration profile) 为DefaultFixed.

# netadm enable -p ncp DefaultFixed
查看ncp是否为DefaultFixed. # netadm list
TYPE        PROFILE        STATE
ncp         DefaultFixed   online
ncp         Automatic      disabled
loc         Automatic      offline
loc         NoNet          offline
loc         DefaultFixed   online

2. 设置IPMP的transitive-probing属性为false

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

#svcadm refresh svc:/network/ipmp:default

查看transitive-probing属性

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

config/transitive-probing boolean false

# ipmpstat -p

ipmpstat: probe-based failure detection is disabled

3. Active-Active模式 (以4个网络接口为例)

创建IPMP组ipmp1

# ipadm create-ipmp ipmp1

创建网络接口net2, net3, net9和net10

#ipadm create-ip net2

#ipadm create-ip net3

#ipadm create-ip net9

#ipadm create-ip net10

添加网络接口到ipmp1组中

# ipadm add-ipmp -i net2 -i net3 -i net9 -i net10 ipmp1

查看ipmp1信息

# ipmpstat -g
GROUP       GROUPNAME   STATE     FDT       INTERFACES
ipmp1           ipmp1                 ok            --           net10 net9 net3 net2
# ipmpstat -i
INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE
net10               yes         ipmp1          -------         up          disabled    ok
net9                 yes         ipmp1          -------         up          disabled    ok
net3                 yes         ipmp1          -------         up          disabled    ok
net2                 yes         ipmp1          --mbM--     up          disabled    ok

为ipmp1设置IP地址

# ipadm create-addr -T static -a 192.168.57.142/24 ipmp1/v4

# ipmpstat -a
ADDRESS                   STATE  GROUP       INBOUND     OUTBOUND
192.168.57.142            up         ipmp1          net2              net10 net9 net3 net2
查看ipmp1的IP地址

# ipadm show-addr

ADDROBJ   TYPE     STATE     ADDR

lo0/v4           static      ok            127.0.0.1/8

ipmp1/v4      static       ok           192.168.57.144/24

4. Active-Standby模式

继续上面的例子,把net9和net10转换为standby

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

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

# ipmpstat -i
INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE
net10              no           ipmp1           is-----        up          disabled    ok
net9                no           ipmp1           is-----        up          disabled    ok
net3                yes         ipmp1           -------         up          disabled    ok
net2                yes         ipmp1           --mbM--     up          disabled    ok

 

从ifconfig命令输出中可以看到net9和net10有STANDBY标志,处于inactive状态。

# ifconfig -a inet

ipmp1: flags=108001000843<up,broadcast,running,multicast,ipv4,ipmp,physrunning> mtu 1500 index 9
        inet 192.168.57.142 netmask ffffff00 broadcast 192.168.57.255
        groupname ipmp1
net2: flags=100001000843<up,broadcast,running,multicast,ipv4,physrunning> mtu 1500 index 10
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname ipmp1
net3: flags=100001000843<up,broadcast,running,multicast,ipv4,physrunning> mtu 1500 index 11
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname ipmp1
net9: flags=100061000843<up,broadcast,running,multicast,ipv4,standby,inactive,physrunning> mtu 1500 index 12
        inet 0.0.0.0 netmask ff000000 
        groupname ipmp1
net10: flags=100061000843<up,broadcast,running,multicast,ipv4,standby,inactive,physrunning> mtu 1500 index 8
        inet 0.0.0.0 netmask ff000000 
        groupname ipmp1

 

官网原版:

Commonly Used Network Administration Commands

https://docs.oracle.com/cd/E37838_01/html/E61478/index.html

About IPMP Administration

https://docs.oracle.com/cd/E37838_01/html/E60991/gfkcy.html#scrolltoc

 

Administering IPMP

 https://docs.oracle.com/cd/E37838_01/html/E60991/gdysw.html#scrolltoc

 

How to Configure an Active-Standby IPMP Group

https://docs.oracle.com/cd/E37838_01/html/E60991/gfyeh.html#scrolltoc

 

Example 15  Configuring an Active-Standby IPMP Group

This example shows how to create an active-standby IPMP configuration.

$ ipadm create-ipmp ipmp0

$ ipadm create-ip net0
$ ipadm create-ip net1
$ ipadm create-ip net2
$ ipadm add-ipmp -i net0 -i net1 -i net2 ipmp0

$ ipadm create-addr -a 192.0.2.5/24 ipmp0
ipadm: ipmp0/v4
$ ipadm create-addr -a 192.0.2.10/24 ipmp0
ipadm: ipmp0/v4a

$ ipadm create-addr -a 192.0.2.15/27 net0
ipadm: net0/v4
$ ipadm create-addr -a 192.0.2.20/27 net1
ipadm: net1/v4
$ ipadm create-addr -a 192.0.2.25/27 net2
ipadm: net2/v4

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

$ ipmpstat -g
GROUP     GROUPNAME   STATE      FDT        INTERFACES
ipmp0     ipmp0      ok         10.00s     net0 net1 (net2)

$ ipmpstat -t
INTERFACE  MODE     TESTADDR        TARGETS
net0       routes   192.0.2.15/27   192.0.2.2/27
net1       routes   192.0.2.20/27   192.0.2.2/17
net2       routes   192.0.2.25/27   192.0.2.5/27

 

posted on 2019-05-14 21:41  梓沂  阅读(497)  评论(0编辑  收藏  举报