JavaScript is required to for searching.
跳过导航链接
退出打印视图
管理 Oracle Solaris 11.1 网络性能     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  网络性能管理介绍

2.  使用链路聚合

3.  使用 VLAN

4.  管理桥接网络(任务)

5.  IPMP 介绍

6.  管理 IPMP(任务)

部署 IPMP 时维护路由

如何在使用 IPMP 时定义路由

配置 IPMP 组

如何规划 IPMP 组

如何配置使用 DHCP 的 IPMP 组

如何手动配置活动/活动 IPMP 组

如何手动配置活动/备用 IPMP 组

维护 IPMP

如何将接口添加到 IPMP 组

如何从 IPMP 组中删除接口

如何添加 IP 地址

如何删除 IP 地址

如何将接口从一个 IPMP 组移至另一个 IPMP 组

如何删除 IPMP 组

配置基于探测器的故障检测

为基于探测器的故障检测选择目标的要求

配置基于探测器的故障检测(任务列表)

如何选择要使用的故障检测方法

如何为基于探测器的故障检测手动指定目标系统

如何配置 IPMP 守护进程的行为

监视 IPMP 信息

定制 ipmpstat 命令的输出

在脚本中使用 ipmpstat 命令

7.  使用 LLDP 交换网络连接信息

8.  使用 Oracle Solaris 中的数据中心桥接功能

9.  Oracle Solaris 中的边缘虚拟桥接

10.  集成负载平衡器(概述)

11.  配置集成负载平衡器

12.  管理集成负载平衡器

13.  虚拟路由器冗余协议(概述)

A.  链路聚合类型:功能比较

B.  链路聚合和 IPMP:功能比较

索引

监视 IPMP 信息

本节中的示例使用 ipmpstat 命令,从而使您能够监视系统中 IPMP 组的不同方面。您可以将 IPMP 组作为一个整体来观察其状态,也可以观察其底层 IP 接口的状态。您还可以验证 IPMP 组的数据地址和测试地址的配置。通过使用 ipmpstat 命令还可以获取有关故障检测的信息。有关 ipmpstat 命令及其选项的更多信息,请参见ipmpstat(1M) 手册页。

当您使用 ipmpstat 命令时,缺省情况下,将显示 80 列可容纳的最有意义的字段。在输出中,将显示特定于与 ipmpstat 命令结合使用的选项的所有字段(使用 ipmpstat -p 语法时除外)。

缺省情况下,输出中显示主机名而不是数字 IP 地址(只要主机名存在)。要在输出中列出数字 IP 地址,请将 -n 选项与其他选项结合使用以显示特定的 IPMP 组信息。


注 - 在以下示例中,ipmpstat 命令的使用不需要系统管理员特权,除非另有说明。


请将以下选项与 ipmpstat 命令结合使用以确定要显示的信息:

以下示例显示可以通过 ipmpstat 命令获取的有关系统中 IPMP 配置的信息。

示例 6-9 获取 IPMP 组信息

-g 选项列出系统上各 IPMP 组的状态,包括其底层接口的状态。如果为特定组启用了基于探测器的故障检测,则该命令还包括该组的故障检测时间。

$ ipmpstat -g
GROUP   GROUPNAME   STATE      FDT        INTERFACES
ipmp0   ipmp0       ok         10.00s     net0 net1
acctg1  acctg1      failed     --         [net3 net4]
field2  field2      degraded   20.00s     net2 net5 (net7) [net6]

输出字段提供以下信息:

GROUP

指定 IPMP 接口名称。对于匿名组,此字段为空。有关匿名组的更多信息,请参见 in.mpathd(1M) 手册页。

GROUPNAME

指定 IPMP 组的名称。对于匿名组,此字段将为空。

STATE

表示一个 IPMP 组的当前状态,可以是以下值之一:

  • ok 表示 IPMP 组的所有底层接口都可用。

  • degraded 表示该组中的部分底层接口不可用。

  • failed 表示该组的所有接口都不可用。

FDT

指定故障检测时间(如果启用了故障检测)。如果禁用了故障检测,则此字段为空。

INTERFACES

指定属于该 IPMP 组的底层接口。在此字段中,首先列出活动接口,然后是非活动接口,最后列出不可用的接口。接口的状态由列出方式表示:

  • interface(不带圆括号或方括号)表示活动接口。系统使用活动接口发送或接收数据通信。

  • (interface)(带圆括号)表示能正常工作但处于非活动状态的接口。根据管理策略的定义,该接口并未使用。

  • [interface](带方括号)表示接口不可用,因为它已出现故障或处于脱机状态。

示例 6-10 获取 IPMP 数据地址信息

-a 选项显示数据地址以及每个地址所属的 IPMP 组。显示的信息还包括哪些地址可用,具体取决于是否通过 ipadm [up-addr/down-addr] 命令切换了地址的状态。您还可以确定一个地址可以在哪个传入或传出接口上使用。

$ ipmpstat -an
ADDRESS         STATE    GROUP      INBOUND     OUTBOUND
192.168.10.10   up       ipmp0         net0    net0 net1
192.168.10.15   up       ipmp0         net1    net0 net1
192.0.0.100     up       acctg1       --          --
192.0.0.101     up       acctg1       --          --
128.0.0.100     up       field2        net2    net2 net7
128.0.0.101     up       field2        net7    net2 net7
128.0.0.102     down     field2       --          --

输出字段提供以下信息:

ADDRESS

指定主机名或数据地址(如果 -n 选项与 -a 选项结合使用)。

STATE

指示 IPMP 接口上的地址状态是 up(因此可用)还是 down(因此不可用)。

GROUP

指定承载特定数据地址的 IPMP 接口。通常,在 Oracle Solaris 中,IPMP 组的名称是 IPMP 接口。

INBOUND

标识接收给定地址的包的接口。根据外部事件,字段信息可能会发生更改。例如,如果数据地址已关闭或者 IPMP 组中没有活动的 IP 接口,此字段为空。空字段指示系统当前没有接受发送到给定地址的 IP 包。

OUTBOUND

标识发送使用给定地址作为源地址的包的接口。与 INBOUND 字段一样,OUTBOUND 信息也可能根据外部事件而变化。空字段指示系统当前未发送具有给定的源地址的包。该字段可能为空,原因是该地址已关闭或组中没有活动的 IP 接口。

示例 6-11 获取有关 IPMP 组的底层 IP 接口的信息

-i 选项显示有关 IPMP 组的底层 IP 接口的信息。

$ ipmpstat -i
INTERFACE   ACTIVE   GROUP      FLAGS      LINK       PROBE      STATE
net0        yes      ipmp0      --mb---    up         ok         ok
net1        yes      ipmp0      -------    up         disabled   ok
net3        no       acctg1     -------    unknown    disabled   offline
net4        no       acctg1     is-----    down       unknown    failed
net2        yes      field2     --mb---    unknown    ok         ok
net6        no       field2     -i-----    up         ok         ok
net5        no       filed2     -------    up         failed     failed
net7        yes      field2     --mb---    up         ok         ok

输出字段提供以下信息:

INTERFACE

指定每个 IPMP 组的每个底层接口。

ACTIVE

指示该接口是正常工作并在使用中 (yes) 还是没有 (no)。

GROUP

指定 IPMP 接口名称。对于匿名组,此字段为空。有关匿名组的更多信息,请参见 in.mpathd(1M) 手册页。

FLAGS

指示每个底层接口的状态,可以是以下各项之一或这些项的任意组合:

  • i 指示为接口设置了 INACTIVE 标志。因此,该接口不用于发送或接收数据通信。

  • s 指示接口配置为备用接口。

  • m 指示接口由系统指定用于发送和接收 IPMP 组的 IPv4 多播通信。

  • b 指示接口由系统指定用于接收 IPMP 组的广播通信。

  • M 指示接口由系统指定用于发送和接收 IPMP 组的 IPv6 多播通信。

  • d 指示接口已关闭,因此不可用。

  • h 指示接口与另一个接口共享一个重复的物理硬件地址并且已处于脱机状态。h 标志指示接口不可用。

LINK

指示基于链路的故障检测的状态,为以下状态之一:

  • updown 分别指示链路可用或不可用。

  • unknown 指示驱动程序不支持链路是 up 还是 down 的通知,因此不检测链路状态的变化。

PROBE

指定使用测试地址配置的接口的基于探测器的故障检测的状态,如下所示:

  • ok 指示探测器正常工作并处于活动状态。

  • failed 表示基于探测器的故障检测已检测到接口未正常工作。

  • unknown 指示找不到合适的探测器目标,因此无法发送探测器。

  • disabled 指示在接口上没有配置 IPMP 测试地址。因此,基于探测器的故障检测处于禁用状态。

STATE

指定接口的整体状态,如下所示:

  • ok 指示接口已联机并正在基于故障检测方法的配置正常工作。

  • failed 指示接口当前未工作,原因是接口的链路已关闭或探测器检测已确定该接口无法发送或接收通信。

  • offline 指示接口不可用。通常,在以下情况下会将接口置于脱机状态:

    • 正在测试接口。

    • 正在执行动态重新配置。

    • 接口与另一个接口共享一个重复的硬件地址。

  • unknown 指示无法确定 IPMP 接口的状态,因为找不到基于探测器的故障检测的探测器目标。

示例 6-12 获取 IPMP 探测器目标信息

-t 选项标识与 IPMP 组中每个 IP 接口相关联的探测器目标。第一个输出是为基于探测器的故障检测使用测试地址的 IPMP 配置示例。

$ ipmpstat -nt
INTERFACE   MODE          TESTADDR        TARGETS
net0        routes        192.168.85.30   192.168.85.1 192.168.85.3
net1        disabled      --              --
net3        disabled      --              --
net4        routes        192.1.2.200     192.1.2.1
net2        multicast     128.9.0.200     128.0.0.1 128.0.0.2
net6        multicast     128.9.0.201     128.0.0.2 128.0.0.1
net5        multicast     128.9.0.202     128.0.0.1 128.0.0.2
net7        multicast     128.9.0.203     128.0.0.1 128.0.0.2

第二个输出是使用传递式探测(即,没有测试地址的基于探测器的故障检测)的 IPMP 配置示例。

$ ipmpstat -nt
INTERFACE   MODE         TESTADDR         TARGETS
net3        transitive   <net1>           <net1> <net2> <net3>
net2        transitive   <net1>           <net1> <net2> <net3>
net1        routes       172.16.30.100    172.16.30.1

输出字段提供以下信息:

INTERFACE

指定 IPMP 组的每个底层接口。

MODE

指定用于获取探测器目标的方法。

  • routes 指示使用系统路由表查找探测器目标。

  • mcast 指示使用多播 ICMP 探测器查找目标。

  • disabled 指示已为接口禁用基于探测器的故障检测。

  • transitive 指示使用传递式探测检测故障,如第二个示例中所示。请注意,无法在同时使用传递式探测器和测试地址的情况下实现基于探测器的故障检测。如果您不希望使用测试地址,则必须启用传递式探测。如果您不希望使用传递式探测,则必须配置测试地址。有关概述,请参见基于探测器的故障检测

TESTADDR

指定主机名;如果 -n 选项与 -t 选项结合使用,则指定分配给用于发送和接收探测器的接口的 IP 地址。

如果使用传递式探测,则接口名称指当前未用于接收数据的底层 IP 接口。这些名称还指示传递式测试探测器是使用这些指定接口的源地址发送的。对于接收数据的活动底层 IP 接口,显示的 IP 地址指示传送 ICMP 探测器的源地址。


注 - 如果某 IP 接口同时配置了 IPv4 和 IPv6 测试地址,分别显示每个测试地址的探测器目标信息。


TARGETS

在空格分隔的列表中列出当前探测器目标。探测器目标以主机名或 IP 地址形式显示。如果 -n 选项与 -t 选项结合使用,将会显示 IP 地址。

示例 6-13 观察 IPMP 探测器

-p 选项使您能够观察正在运行的探测器。将该选项和 ipmpstat 命令一起使用时,会持续显示有关系统上探测器活动的信息,直到您按 Control-C 组合键终止命令。您必须具有主管理员权限才能运行此命令。

第一个输出是为基于探测器的故障检测使用测试地址的 IPMP 配置示例。

# ipmpstat -pn
TIME    INTERFACE   PROBE     NETRTT   RTT      RTTAVG     TARGET
0.11s   net0        589       0.51ms   0.76ms   0.76ms     192.168.85.1
0.17s   net4        612       --       --       --         192.1.2.1
0.25s   net2        602       0.61ms   1.10ms   1.10ms     128.0.0.1
0.26s   net6        602       --       --       --         128.0.0.2
0.25s   net5        601       0.62ms   1.20ms   1.00ms     128.0.0.1
0.26s   net7        603       0.79ms   1.11ms   1.10ms     128.0.0.1
1.66s   net4        613       --       --       --         192.1.2.1
1.70s   net0        603       0.63ms   1.10ms   1.10ms     192.168.85.3
^C

第二个输出是使用传递式探测(即,没有测试地址的基于探测器的故障检测)的 IPMP 配置示例。

# ipmpstat -pn
TIME    INTERFACE   PROBE      NETRTT   RTT      RTTAVG     TARGET
1.39S   net4        t28        1.05ms   1.06ms   1.15ms     <net1>
1.39s   net1        i29        1.00ms   1.42ms   1.48ms     172.16.30.1
^C

输出字段提供以下信息:

TIME

指定发送探测器的时间(相对于发出 ipmpstat 命令的时间)。如果探测器在 ipmpstat 开始之前已启动,则显示的时间为负值(即相对于发出命令的时间)。

INTERFACE

指定在其上发送探测器的接口。

PROBE

指定代表探测器的标识符。如果使用传递式探测进行故障检测,则标识符具有前缀 t(对于传递式探测器)或 i(对于 ICMP 探测器)。

NETRTT

指定探测器的总网络往返时间(以毫秒为单位)。NETRTT 指从 IP 模块发送探测器到 IP 模块接收到来自目标的 ack 包的时间。如果 in.mpathd 守护进程已确定探测器丢失,则该字段为空。

RTT

指定探测器的总往返时间(以毫秒为单位)。RTT 指从 in.mpathd 守护进程执行代码以发送探测器到守护进程完成对来自目标的 ack 包的处理之间的时间。如果守护进程已确定探测器丢失,则该字段为空。如果 RTT 出现峰值而 NETRTT 没有出现,则可能表明本地系统过载。

RTTAVG

指定接口上的探测器在本地系统和目标之间的平均往返时间。平均往返时间可以帮助确定速度慢的目标。如果数据不足以计算平均值,此字段为空。

TARGET

指定主机名;如果 -n 选项与 -p 选项结合使用,则指定向其发送探测器的目标地址。

定制 ipmpstat 命令的输出

ipmpstat 命令的 -o 选项允许您定制输出。将此选项与之前的其他 ipmpstat 选项结合使用可选择除主要选项通常显示的全部字段之外要显示的特定字段。

例如,-g 选项提供以下信息:

假定您希望仅显示系统上 IPMP 组的状态。您可以结合使用 -o-g 选项并指定 groupnamestate 字段,如以下示例所示:

$ ipmpstat -g -o groupname,state
GROUPNAME  STATE
ipmp0      ok
accgt1     failed
field2     degraded

要显示 ipmpstat 命令关于特定类型信息的所有字段,请在语法中包含 -o all。例如,要列出提供组信息的所有字段,请键入 ipmpstat -g -o all

在脚本中使用 ipmpstat 命令

当您通过脚本或使用命令别名发出命令时,尤其是如果您还想生成计算机可解析的输出,-o 选项非常有用。

要生成计算机可解析的信息,请将 -P-o 选项与其他 ipmpstat 主要选项之一以及要显示的特定字段结合使用。计算机可解析的输出在以下几个方面有别于常规输出:

为了正确使用 ipmpstat -P 语法,请遵循以下规则:

忽略上述任一规则将导致 ipmpstat -P 失败。

以下示例显示了使用 -P 选项时的信息格式。

$ ipmpstat -P -o -g groupname,fdt,interfaces
ipmp0:10.00s:net0 net1
acctg1::[net3 net4]
field2:20.00s:net2 net7 (net5) [net6]

组名称、故障检测时间和底层接口是组信息字段。因此,应将 -o -g 选项与 -P 选项结合使用。

-P 选项设计用于脚本中。以下示例显示了如何通过脚本发出 ipmpstat 命令。此脚本用于显示 IPMP 组的故障检测时间。

getfdt() {
         ipmpstat -gP -o group,fdt | while IFS=: read group fdt; do
             [[ "$group" = "$1" ]] && { echo "$fdt"; return; }
         done
     }