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 组

本节提供了用于规划和配置 IPMP 组的过程。第 5 章中的概述介绍了如何将 IPMP 组实现为接口。因此,在本章中,术语 IPMP 组IPMP 接口可互换使用。

如何规划 IPMP 组

以下过程包括在配置 IPMP 组之前要收集的必要规划任务和信息。这些任务不必按顺序执行。


注 - 必须为每个子网或 L2 广播域只配置一个 IPMP 组。有关更多信息,请参见用于使用 IPMP 的规则


  1. 确定满足您的需要的常规 IPMP 配置。

    IPMP 配置取决于用于处理系统上承载的通信类型的网络要求。IPMP 将传出网络包分配到 IPMP 组的各个接口,从而提高了网络吞吐量。然而,对于给定的 TCP 连接,传入通信通常只使用一个物理路径,以尽量降低处理无序包的风险。

    因此,如果您的网络处理大量传出通信,将多个接口配置到一个 IPMP 组中可以提高网络性能。相反,如果系统承载大量传入通信,则在组中配置大量接口不一定能通过对通信流量进行负载分配而提高性能。不过,有更多的底层接口有助于在接口出现故障时保证网络的可用性。

  2. 验证组中的每个接口是否具有唯一的 MAC 地址。

    要为系统中的每个接口配置唯一的 MAC 地址,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何确保每个接口的 MAC 地址是唯一的"

  3. 确保在 IPMP 组的所有接口上配置并推送了同一组 STREAMS 模块。

    同一组中的所有接口必须按相同顺序配置相同的 STREAMS 模块。

    1. 检查即将包含在 IPMP 组中的所有接口上 STREAMS 模块的顺序。

      您可以通过使用 ifconfig interface modlist 命令打印 STREAMS 模块的列表。例如,以下是 net0 接口的 ifconfig 输出:

      # ifconfig net0 modlist
          0 arp
          1 ip
          2 e1000g

      如输出所示,接口通常作为网络驱动程序存在于 IP 模块的下方。这些接口不需要额外的配置。

      然而,某些技术被作为 STREAMS 模块推送到 IP 模块和网络驱动程序之间。如果 STREAMS 模块是有状态的,即使将相同模块推送到组中的所有接口上,在进行故障转移时仍可能会出现意外行为。但是,只要按相同顺序将 STREAMS 模块推送到 IPMP 组中的所有接口上,就可以使用无状态 STREAMS 模块。

    2. 按 IPMP 组的标准顺序推送每个接口的模块。

      例如:

      # ifconfig net0 modinsert vpnmod@3
  4. 在 IPMP 组中的所有接口上使用相同的 IP 寻址格式。

    如果为一个接口配置了 IPv4,则必须为 IPMP 组中的所有接口配置 IPv4。例如,如果您为一个接口添加了 IPv6 寻址,则必须将 IPMP 组中的所有接口配置为支持 IPv6。

  5. 确定您要实现的故障检测的类型。

    例如,如果您要实现基于探测器的故障检测,则必须在底层接口上配置测试地址。如需相关信息,请参见IPMP 中的故障检测

  6. 确保 IPMP 组中的所有接口都连接到同一本地网络。

    例如,您可以将同一 IP 子网上的以太网交换机配置到一个 IPMP 组中。您可以将任意数量的接口配置到一个 IPMP 组中。


    注 - 您还可以配置一个只包含一个接口的 IPMP 组,例如,如果您的系统只有一个物理接口。如需相关信息,请参见IPMP 接口配置的类型


  7. 确保 IPMP 组不包含具有不同网络介质类型的接口。

    分组在一起的接口必须采用相同的接口类型。例如,不能将以太网接口和令牌环接口组合在一个 IPMP 组中。此外,不能将令牌总线接口与异步传输模式 (asynchronous transfer mode, ATM) 接口组合在同一 IPMP 组中。

  8. 对于具有 ATM 接口的 IPMP,请在 LAN 仿真模式下配置 ATM 接口。

    使用经典 IP over ATM 技术的接口不支持 IPMP,如 IETF RFC 1577IETF RFC 2225 中所定义。

如何配置使用 DHCP 的 IPMP 组

可以使用活动/活动接口或活动/备用接口配置多接口 IPMP 组。如需相关信息,请参见IPMP 接口配置的类型。以下过程介绍了如何通过使用 DHCP 配置活动/备用 IPMP 组。

开始之前

确保即将包含在目标 IPMP 组中的 IP 接口已在系统的网络数据链路上正确配置。有关配置链路和 IP 接口的过程,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何配置 IP 接口"。即使底层 IP 接口尚未创建,您仍可以创建一个 IPMP 接口。然而,如果未创建底层 IP 接口,对该 IPMP 接口的后续配置将会失败。

此外,如果您使用的是基于 SPARC 系统,请为每个接口配置一个唯一的 MAC 地址。有关过程,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何确保每个接口的 MAC 地址是唯一的"

最后,如果您使用 DHCP,请确保底层接口具有无限租用期。否则,如果 IPMP 组出现故障,测试地址将到期,in.mpathd 守护进程将随后禁用基于探测器的故障检测,而使用基于链路的故障检测。如果基于链路的故障检测发现接口运行正常,守护进程可能会错误地报告接口已修复。有关配置 DHCP 的更多信息,请参阅《在 Oracle Solaris 11.1 中使用 DHCP》

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 创建一个 IPMP 接口。
    # ipadm create-ipmp ipmp-interface

    其中,ipmp-interface 指定 IPMP 接口的名称。您可以为 IPMP 接口指定任何有意义的名称。与任何 IP 接口一样,该名称包含一个字符串和一个数字,例如 ipmp0

  3. 创建底层 IP 接口(如果尚不存在)。
    # ipadm create-ip under-interface

    其中 under-interface 指将添加到 IPMP 组的 IP 接口。

  4. 将要包含测试地址的底层 IP 接口添加到 IPMP 组。
    # ipadm add-ipmp -i under-interface1 [-i under-interface2 ...] ipmp-interface

    您可以为 IPMP 组添加系统中可用的所有 IP 接口。

  5. 让 DHCP 配置和管理 IPMP 接口上的数据地址。
    # ipadm create-addr -T dhcp ipmp-interface

    步骤 5 将 DHCP 服务器提供的地址与地址对象关联。地址对象使用 interface/address-type 格式(例如,ipmp0/v4)唯一标识 IP 地址。有关地址对象的更多信息,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何配置 IP 接口"

  6. 如果您使用基于探测器的故障检测和测试地址,请让 DHCP 管理底层接口的测试地址。

    对 IPMP 组的每个底层接口发出以下命令。

    # ipadm create-addr -T dhcp under-interface

    步骤 6 自动创建的地址对象使用 under-interface/address-type 格式,例如,net0/v4

示例 6-2 使用 DHCP 配置 IPMP 组

本示例显示如何使用 DHCP 配置活动/备用 IPMP 组,并且基于以下方案:

首先,管理员创建 IPMP 接口。

# ipadm create-ipmp ipmp0

接下来,管理员创建底层 IP 接口并将其添加到该 IPMP 接口。

# ipadm create-ip net0
# ipadm create-ip net1
# ipadm create-ip net2

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

接下来,管理员将 DHCP 管理的 IP 地址指定给该 IPMP 接口。指定给该 IPMP 接口的 IP 地址是数据地址。在本示例中,IPMP 接口有两个数据地址。

# ipadm create-addr -T dhcp ipmp0
ipadm: ipmp0/v4
# ipadm create-addr -T dhcp ipmp0
ipadm: ipmp0/v4a

接下来,管理员将 DHCP 管理的 IP 地址指定给该 IPMP 组的底层 IP 接口。指定给底层接口的 IP 地址是要用于基于探测器的故障检测的测试地址。

# ipadm create-addr -T dhcp net0
ipadm: net0/v4
# ipadm create-addr -T dhcp net1
ipadm: net1/v4
# ipadm create-addr -T dhcp net2
ipadm net2/v4

最后,管理员将 net2 配置为备用接口。

# ipadm set-ifprop -p standby=on net2

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

以下过程介绍了如何手动配置活动/活动 IPMP 组。在此过程中,步骤 1-4 介绍了如何配置基于链路的活动/活动 IPMP 组。步骤 5 介绍了如何使基于链路的配置基于探测器。

开始之前

确保即将包含在目标 IPMP 组中的 IP 接口已在系统的网络数据链路上正确配置。有关配置链路和 IP 接口的过程,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何配置 IP 接口"。即使底层 IP 接口尚不存在,您仍可以创建一个 IPMP 接口。然而,随后在此 IPMP 接口上的配置将失败。

此外,如果您使用的是基于 SPARC 系统,请为每个接口配置一个唯一的 MAC 地址。有关过程,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何确保每个接口的 MAC 地址是唯一的"

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 创建一个 IPMP 接口。
    # ipadm create-ipmp ipmp-interface

    其中,ipmp-interface 指定 IPMP 接口的名称。您可以为 IPMP 接口指定任何有意义的名称。与任何 IP 接口一样,该名称包含一个字符串和一个数字,例如 ipmp0

  3. 将底层 IP 接口添加到组中。
    # ipadm add-ipmp -i under-interface1 [-i underinterface2 ...] ipmp-interface

    其中 under-interface 指 IPMP 组的底层接口。您可以添加系统中可用的所有 IP 接口。


    注 - 在双栈环境中,如果将某个接口的 IPv4 实例放入特定组中,则 IPv6 实例将自动放入同一组中。


  4. 将数据地址添加到 IPMP 接口。
    # ipadm create-addr -a address ipmp-interface

    其中,address 可以采用 CIDR 表示法。


    注 - 只有 IPMP 组名称的 DNS 地址或 IP 地址是必需的。


  5. 如果您使用基于探测器的故障检测和测试地址,请为底层接口添加测试地址。
    # ipadm create-addr -a address under-interface

    其中,address 可以采用 CIDR 表示法。IPMP 组中的所有测试 IP 地址必须属于单个 IP 子网并使用相同的网络前缀。

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

有关备用接口的信息,请参见IPMP 接口配置的类型。以下过程介绍了如何配置一个 IPMP 组,其中将一个接口保留为备用。仅当组中的一个活动接口出现故障时,才部署此接口。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 创建一个 IPMP 接口。
    # ipadm create-ipmp ipmp-interface

    其中,ipmp-interface 指定 IPMP 接口的名称。您可以为 IPMP 接口指定任何有意义的名称。与任何 IP 接口一样,该名称包含一个字符串和一个数字,例如 ipmp0

  3. 将底层 IP 接口添加到组中。
    # ipadm add-ipmp -i under-interface1 [-i underinterface2 ...] ipmp-interface

    其中 under-interface 指 IPMP 组的底层接口。您可以添加系统中可用的所有 IP 接口。


    注 - 在双栈环境中,如果将某个接口的 IPv4 实例放入特定的 IPMP 组中,则 IPv6 实例将自动放入同一组中。


  4. 将数据地址添加到 IPMP 接口。
    # ipadm create-addr -a address ipmp-interface

    其中,address 可以采用 CIDR 表示法。

  5. 如果您使用基于探测器的故障检测和测试地址,请为底层接口添加测试地址。
    # ipadm create-addr -a address under-interface

    其中,address 可以采用 CIDR 表示法。IPMP 组中的所有测试 IP 地址必须属于单个 IP 子网并使用相同的网络前缀。

  6. 将一个底层接口配置为备用接口。
    # ipadm set-ifprop -p standby=on under-interface

示例 6-3 配置活动/备用 IPMP 组

本示例说明如何手动创建活动/备用 IPMP 配置。

首先,管理员创建 IPMP 接口。

# ipadm create-ipmp ipmp0

接下来,管理员创建底层 IP 接口并将其添加到该 IPMP 接口。

# ipadm create-ip net0
# ipadm create-ip net1
# ipadm create-ip net2

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

接下来,管理员将 IP 地址指定给该 IPMP 接口。指定给该 IPMP 接口的 IP 地址是数据地址。在本示例中,IPMP 接口有两个数据地址。

# ipadm create-addr -a 192.168.10.10/24 ipmp0
ipadm: ipmp0/v4
# ipadm create-addr -a 192.168.10.15/24 ipmp0
ipadm: ipmp0/v4a

本示例中的 IP 地址包括 prefixlen 属性,以十进制数表示。IP 地址的 prefixlen 部分指定地址的 IPv4 网络掩码或 IPv6 前缀所包含的地址的最左侧的连续位数。其余低阶位定义地址的主机部分。将 prefixlen 属性转换为地址的文本表现形式时,对于用于网络部分的位位置,此地址包含 1,对于主机部分,此地址包含 0。dhcp 地址对象类型不支持此属性。有关更多信息,请参见 ipadm(1M) 手册页。

接下来,管理员将 IP 地址指定给该 IPMP 组的底层 IP 接口。指定给底层接口的 IP 地址是要用于基于探测器的故障检测的测试地址。

# ipadm create-addr -a 192.168.10.30/24 net0
ipadm: net0/v4
# ipadm create-addr -a 192.168.10.32/24 net1
ipadm: net1/v4
# ipadm create-addr -a 192.168.10.34/24 net2
ipadm: net2/v4

最后,管理员将 net2 配置为备用接口。

# ipadm set-ifprop -p standby=on net2

管理员可以使用 ipmpstat 命令查看 IPMP 配置。

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

# ipmpstat -t
INTERFACE  MODE     TESTADDR        TARGETS
net0       routes   192.168.10.30   192.168.10.1
net1       routes   192.168.10.32   192.168.10.1
net2       routes   192.168.10.34   192.168.10.5