JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:网络接口和网络虚拟化     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  网络栈概述

此 Oracle Solaris 发行版中的网络配置

Oracle Solaris 中的网络栈

网络设备和数据链路名称

其他链路类型的管理

第 1 部分网络自动配置

2.  NWAM 简介

3.  NWAM 配置和管理(概述)

4.  NWAM 配置文件配置(任务)

5.  NWAM 配置文件管理(任务)

6.  关于 NWAM 图形用户界面

第 2 部分数据链路和接口配置

7.  使用配置文件上的数据链路和接口配置命令

8.  数据链路配置和管理

9.  配置 IP 接口

10.  在 Oracle Solaris 上配置无线接口通信

11.  管理网桥

12.  管理链路聚合

13.  管理 VLAN

14.  IPMP 简介

15.  管理 IPMP

IPMP 管理任务列表

IPMP 组创建和配置(任务列表)

IPMP 组维护(任务列表)

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

IPMP 组监视(任务列表)

配置 IPMP 组

如何规划 IPMP 组

如何通过使用 DHCP 配置 IPMP 组

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

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

维护 IPMP 组

如何将接口添加到 IPMP 组

如何从 IPMP 组中删除接口

如何添加或删除 IP 地址

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

如何删除 IPMP 组

为基于探测器的故障检测进行配置

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

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

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

使用动态重新配置恢复 IPMP 配置

如何更换出现故障的物理卡

监视 IPMP 信息

如何获取 IPMP 组信息

如何获取 IPMP 数据地址信息

如何获取有关组的底层 IP 接口的信息

如何获取 IPMP 探测器目标信息

如何观察 IPMP 探测器

如何在脚本中定制 ipmpstat 命令的输出

如何生成 ipmpstat 命令的机器可解析的输出

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

第 3 部分网络虚拟化和资源管理

17.  网络虚拟化和资源控制简介(概述)

18.  规划网络虚拟化和资源控制

19.  配置虚拟网络(任务)

20.  在虚拟化环境中使用链路保护

21.  管理网络资源

22.  监视网络通信流量和资源使用情况

词汇表

索引

配置 IPMP 组

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

如何规划 IPMP 组

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


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


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

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

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

  2. 对于基于 SPARC 的系统,验证组中的每个接口具有唯一的 MAC 地址。

    要为系统中的每个接口配置唯一的 MAC 地址,请参见SPARC: 如何确保接口的 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 interface modinsert module-name@position
      ifconfig net0 modinsert vpnmod@3
  4. 在 IPMP 组的所有接口上使用相同的 IP 寻址格式。

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

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

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

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

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


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


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

    组合在一起的接口应属于相同的接口类型,如 /usr/include/net/if_types.h 中定义的那样。例如,不能将以太网接口和令牌环接口组合在一个 IPMP 组中。此外,不能将令牌总线接口与异步传输模式 (asynchronous transfer mode, ATM) 接口组合在同一 IPMP 组中。

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

    使用经典的 IP over ATM 的接口不支持 IPMP。

如何通过使用 DHCP 配置 IPMP 组

在当前的 IPMP 实现中,可以利用动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 配置 IPMP 组。

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

开始之前

确保即将包含在 IPMP 组中的 IP 接口已在系统的网络数据链路上正确配置。即使底层 IP 接口尚不存在,您仍可以创建一个 IPMP 接口。然而,随后在此 IPMP 接口上的配置将失败。

有关配置链路和 IP 接口的过程,请参见IP 接口配置(任务)。有关配置 IPv6 接口的信息,请参见《Oracle Solaris 管理:IP 服务》中的"配置 IPv6 接口"

此外,如果您使用的是 SPARC 系统,请为每个接口配置一个唯一的 MAC 地址。有关过程,请参见SPARC: 如何确保接口的 MAC 地址是唯一的

最后,如果您使用 DHCP,请确保底层接口具有无限租用期。否则,在组出现故障的情况下,测试地址将到期,IPMP 守护进程将禁用基于探测器的故障检测,而使用基于链路的故障检测。如果基于链路的故障检测发现接口运行正常,守护进程可能会错误地报告接口已修复。有关配置 DHCP 的更多信息,请参阅《System Administration Guide: IP Services》中的第 13  章 "Planning for DHCP Service (Tasks)"


注 - 如果系统上的活动网络配置文件是一个反应性配置文件,则您无法使用 IPMP。在配置 IPMP 组之前,如有必要,请启用 DefaultFixed 配置文件以切换到固定网络配置文件。有关过程,请参见配置文件和配置工具


  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  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 addrobj

    addrobj 代表一个地址对象并使用 interface/string 格式。本步骤中的 interface 是 IPMP 接口。字符串可以是用户定义的任何字符串。因此,如果您在 IPMP 接口上有多个数据地址,相应的地址对象将是 ipmp-interface/string1ipmp-interface /string2ipmp-interface/ string3 等。

  6. 让 DHCP 管理底层接口中的测试地址。

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

    # ipadm create-addr -T dhcp addrobj

    addrobj 代表一个地址对象并使用 interface/string 格式。本步骤中的 interface 是底层接口。字符串可以是用户定义的任何字符串。因此,如果您的 IPMP 组有多个底层接口,相应的地址对象将是 under-interface1/stringipmp-interface2 /stringipmp-interface3/ string 等。

示例 15-1 使用 DHCP 配置 IPMP 组

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

# ipadm create-ipmp itops0

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

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

# ipadm create-addr -T dhcp itops0/dhcp0
# ipadm create-addr -T dhcp itops0/dhcp1

# ipadm create-addr -T dhcp net0/test
# ipadm create-addr -T dhcp net2/test
# ipadm create-addr -T dhcp net3/test

# ipadm set-ifprop -p standby=on net2

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

以下过程描述手动配置活动/活动 IPMP 组的步骤。

开始之前

确保即将包含在目标 IPMP 组中的 IP 接口已在系统的网络数据链路上正确配置。有关配置链路和 IP 接口的过程,请参见IP 接口配置(任务)。有关配置 IPv6 接口的信息,请参见《Oracle Solaris 管理:IP 服务》中的"配置 IPv6 接口"。即使底层 IP 接口尚不存在,您仍可以创建一个 IPMP 接口。然而,随后在此 IPMP 接口上的配置将失败。

此外,如果您使用的是 SPARC 系统,请为每个接口配置一个唯一的 MAC 地址。有关过程,请参见SPARC: 如何确保接口的 MAC 地址是唯一的

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  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 -T static IP-address addrobj

    IP 地址可以采用 CIDR 表示法。

    addrobj 必须使用命名约定 ipmp-interface/any-string。因此,如果 IPMP 接口的名称是 ipmp0,则 addrobj 可以是 ipmp0/dataaddr

  5. 在底层接口上添加测试地址。
    # ipadm create-addr -T static IP-address addrobj

    IP 地址可以采用 CIDR 表示法。

    addrobj 必须使用命名约定 under-interface/any-string。因此,如果底层接口的名称是 net0,则 addrobj 可以是 net0/testaddr


    注 - 仅当要在特定接口上使用基于探测器的故障检测时,才需要配置测试地址。

    IPMP 组中的所有测试 IP 地址都必须使用相同的网络前缀。测试 IP 地址必须属于单个 IP 子网。


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

有关备用接口的更多信息,请参见IPMP 接口配置的类型。以下步骤配置一个 IPMP 组,其中将一个接口保留为后备。仅当组中的一个活动接口出现故障时,才部署此接口。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  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 -T static IP-address addrobj

    IP 地址可以采用 CIDR 表示法。

    addrobj 必须使用命名约定 ipmp-interface/any-string。因此,如果 IPMP 接口的名称是 ipmp0,则 addrobj 可以是 ipmp0/dataaddr

  5. 在底层接口上添加测试地址。
    # ipadm create-addr -T static IP-address addrobj

    IP 地址可以采用 CIDR 表示法。

    addrobj 必须使用命名约定 under-interface/any-string。因此,如果底层接口的名称是 net0,则 addrobj 可以是 net0/testaddr


    注 - 仅当要在特定接口上使用基于探测器的故障检测时,才需要配置测试地址。

    IPMP 组中的所有测试 IP 地址都必须使用相同的网络前缀。测试 IP 地址必须属于单个 IP 子网。


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

示例 15-2 配置活动/备用 IPMP 组

本示例说明如何手动创建活动/备用 IPMP 配置。该示例首先创建底层接口。

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

# ipadm create-ipmp itops0

# ipadm add-ipmp -i net0 -i net1 -i net2 itops0
# ipadm create-addr -T static -a 192.168.10.10/24 itops0/v4add1
# ipadm create-addr -T static -a 192.168.10.15/24 itops0/v4add2

# ipadm create-addr -T static -a 192.168.85.30/24 net0/test
# ipadm create-addr -T static -a 192.168.85.32/24 net1/test
# ipadm create-addr -T static -a 192.168.85.34/24 net2/test

# ipadm set-ifprop -p standby=yes net2

# ipmpstat -g
GROUP     GROUPNAME   STATE      FDT        INTERFACES
itops0    itops0      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