JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:IP 服务     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分系统管理介绍:IP 服务

1.  Oracle Solaris TCP/IP 协议套件(概述)

第 2 部分TCP/IP 管理

2.  规划 TCP/IP 网络(任务)

3.  IPv6 介绍(概述)

4.  规划 IPv6 网络(任务)

5.  配置 TCP/IP 网络服务和 IPv4 寻址(任务)

6.  管理网络接口(任务)

7.  配置 IPv6 网络(任务)

8.  管理 TCP/IP 网络(任务)

9.  对网络问题进行故障排除(任务)

10.  TCP/IP 和 IPv4 详解(参考)

11.  IPv6 详解(参考)

第 3 部分DHCP

12.  关于 DHCP(概述)

13.  规划 DHCP 服务(任务)

14.  配置 DHCP 服务(任务)

15.  管理 DHCP(任务)

16.  配置和管理 DHCP 客户机

17.  对 DHCP 问题进行故障排除(参考)

18.  DHCP 命令和文件(参考信息)

第 4 部分IP 安全性

19.  IP 安全体系结构(概述)

20.  配置 IPsec(任务)

21.  IP 安全体系结构(参考信息)

22.  Internet 密钥交换(概述)

23.  配置 IKE(任务)

24.  Internet 密钥交换(参考信息)

25.  Oracle Solaris 中的 IP 过滤器(概述)

26.  IP 过滤器(任务)

第 5 部分IPMP

27.  IPMP 介绍(概述)

28.  管理 IPMP(任务)

配置 IPMP(任务列表)

配置和管理 IPMP 组(任务列表)

在支持动态重新配置的接口上管理 IPMP(任务列表)

使用 IPMP 组获得高可用性

规划 IPMP 组

如何规划 IPMP 组

配置 IPMP 组

如何配置具有多个接口的 IPMP 组

配置目标系统

配置待机接口

配置具有单个物理接口的 IPMP 组

如何配置单接口 IPMP 组

维护 IPMP 组

如何显示接口的 IPMP 组成员关系

如何将接口添加到 IPMP 组

如何从 IPMP 组中删除接口

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

在支持动态重新配置的系统上替换出现故障的物理接口

如何删除出现故障的物理接口(DR 分离)

如何替换出现故障的物理接口(DR 连接)

恢复系统引导时不存在的物理接口

如何恢复系统引导时不存在的物理接口

修改 IPMP 配置

如何配置 /etc/default/mpathd 文件

第 6 部分IP 服务质量 (IP Quality of Service, IPQoS)

29.  IPQoS 介绍(概述)

30.  规划启用了 IPQoS 的网络(任务)

31.  创建 IPQoS 配置文件(任务)

32.  启动和维护 IPQoS(任务)

33.  使用流记帐和统计信息收集功能(任务)

34.  IPQoS 的详细介绍(参考信息)

词汇表

索引

使用 IPMP 组获得高可用性

本节提供了配置 IPMP 组的过程,并介绍如何将一个接口配置为待机接口。

规划 IPMP 组

将系统上的接口配置为 IPMP 组的一部分之前,需要进行一些配置前规划。

如何规划 IPMP 组

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

  1. 确定系统上的哪些接口将是 IPMP 组的一部分。

    IPMP 组通常由至少两个连接到同一 IP 链路的物理接口组成。但是,如果需要,可以配置单接口 IPMP 组。有关 IPMP 组的简介,请参阅IPMP 接口配置。例如,可以在同一 IPMP 组下配置同一台以太网交换机或同一个 IP 子网。可以在同一 IPMP 组中配置任意数量的接口。

    不能将 ifconfig 命令的 group 参数用于逻辑接口。例如,可以将 group 参数用于 hme0,但是不能用于 hme0:1

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

    有关说明,请参阅SPARC: 如何确保接口的 MAC 地址是唯一的

  3. 为 IPMP 组选择一个名称。

    任何非空的名称都适合用作组的名称。您可能希望使用一个可以标识接口所连接到的 IP 链路的名称。

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

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

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

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

      # ifconfig hme0 modlist
          0 arp
          1 ip
          2 hme

      接口通常作为网络驱动程序直接位于 IP 模块之下,如 ifconfig hme0 modlist 的输出中所示。它们应该不需要其他配置。

      但是,某些技术(如 NCA 或 IP 过滤器)会将自身作为 STREAMS 模块插入到 IP 模块和网络驱动程序之间。同一 IPMP 组的接口的行为方式可能会出现问题。

      如果 STREAMS 模块是有状态的,即使将相同模块推送到组中的所有接口上,在进行故障转移时仍可能会出现意外行为。但是,假定按相同顺序将 STREAMS 模块推送到 IPMP 组中的所有接口上,则可以使用无状态 STREAMS 模块。

    2. 按 IPMP 组的标准顺序推送接口的模块。
      ifconfig interface modinsert module-name
      ifconfig hme0 modinsert ip
  5. 在 IPMP 组的所有接口上使用相同的 IP 寻址格式。

    如果为 IPv4 配置了一个接口,则必须为 IPv4 配置组的所有接口。假定有一个由多个 NIC 的接口组成的 IPMP 组。如果在一个 NIC 的接口上进行 IPv6 寻址,则必须将 IPMP 组中的所有接口配置为支持 IPv6。

  6. 检查 IPMP 组中的所有接口是否已连接到同一 IP 链路。
  7. 检验 IPMP 组是否包含具有不同网络介质类型的接口。

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

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

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

配置 IPMP 组

本节包含有关具有至少两个物理接口的典型 IPMP 组的配置任务。

如何配置具有多个接口的 IPMP 组

将 VLAN 配置到 IPMP 组时,以下用于配置 IPMP 组的步骤也适用。

开始之前

需要已经配置将来的 IPMP 组中所有接口的 IPv4 地址,如果适用,还需配置 IPv6 地址。


注意

注意 - 必须为每个子网或 L2 广播域只配置一个 IPMP 组。有关详细信息,请参见IPMP 的基本要求


  1. 在要配置接口的系统上,承担主管理员角色或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。有关如何创建该角色并将其指定给用户,请参见《Oracle Solaris 管理:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 将每个物理接口放入 IPMP 组。
    # ifconfig interface group group-name

    例如,要将 hme0hme1 放入组 testgroup1 中,应键入以下命令:

    # ifconfig hme0 group testgroup1
    # ifconfig hme1 group testgroup1

    请避免在组名中使用空格。ifconfig 状态显示不会显示空格。因此,请勿创建两个类似的组名,其中唯一的区别是一个名称还包含空格。如果其中一个组名包含空格,则这些组名在状态显示中看起来是相同的。

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

  3. (可选)在一个或多个物理接口上配置 IPv4 测试地址。

    仅当要在特定接口上使用基于探测器的故障检测时,才需要配置测试地址。测试地址将配置为在 ifconfig 命令中指定的物理接口的逻辑接口。

    如果组中的一个接口将成为待机接口,请勿在此时配置该接口的测试地址。作为如何为 IPMP 组配置待机接口的一部分,可以为待机接口配置一个测试地址。

    请使用 ifconfig 命令的以下语法配置测试地址:

    # ifconfig interface addif ip-address parameters -failover deprecated up

    例如,可以为主网络接口 hme0 创建以下测试地址:

    # ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up

    此命令可为主网络接口 hme0 设置以下参数:

    • 设置为 192.168.85.21 的地址

    • 设置为缺省值的网络掩码和广播地址

    • 设置的 -failoverdeprecated 选项


      注 - 必须将 IPv4 测试地址标记为 deprecated,才能防止应用程序使用该测试地址。


  4. 检查特定接口的 IPv4 配置。

    通过键入 ifconfig interface,始终可以查看接口的当前状态。有关查看接口状态的更多信息,请参阅如何获取有关特定接口的信息

    通过指定分配给测试地址的逻辑接口,可以获取有关物理接口的测试地址配置的信息。

    # ifconfig hme0:1
        hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
        mtu 1500 index 2 
        inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255
  5. (可选)如果适用,请配置 IPv6 测试地址。
    # ifconfig interface inet6 -failover

    具有 IPv6 地址的物理接口会放入与接口的 IPv4 地址相同的 IPMP 组中。如果将具有 IPv4 地址的物理接口配置到 IPMP 组中,则会出现此情况。如果首先将具有 IPv6 地址的物理接口放入 IPMP 组中,则具有 IPv4 地址的物理接口也会隐式放入同一 IPMP 组中。

    例如,要使用 IPv6 测试地址配置 hme0,可键入以下内容:

    # ifconfig hme0 inet6 -failover

    无需将 IPv6 测试地址标记为 deprecated 即可防止应用程序使用该测试地址。

  6. 检查 IPv6 配置。
    # ifconfig hme0 inet6
        hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
                inet6 fe80::a00:20ff:feb9:17fa/10 
                groupname test

    IPv6 测试地址是指接口的链路本地地址。

  7. (可选)重新引导后保留 IPMP 组配置。
    • 对于 IPv4,请将以下行添加到 /etc/hostname.interface 文件:

      interface-address <parameters> group group-name up \
          addif logical-interface -failover deprecated <parameters> up

      在此情况下,测试 IPv4 地址仅在下次重新引导时配置。如果要在当前会话中调用配置,请执行步骤 1、2 和 3(可选)。

    • 对于 IPv6,请将以下行添加到 /etc/hostname6.interface 文件:

      -failover group group-name up

      此测试 IPv6 地址仅在下次重新引导时配置。如果要在当前会话中调用配置,请执行步骤 1、2 和 5(可选)。

  8. (可选)通过重复步骤 1 至 6,将更多接口添加到 IPMP 组中。

    可以将新接口添加到实时系统上的现有组中。但是,重新引导后更改会丢失。

示例 28-1 配置具有两个接口的 IPMP 组

假定您要执行以下操作:

可键入以下命令:

# ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up

必须将 IPv4 测试地址标记为 deprecated,才能防止应用程序使用该测试地址。请参见如何配置具有多个接口的 IPMP 组

要启用地址的故障转移属性,可使用不带连字符的 failover 选项。

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

示例 28-2 重新引导后保留 IPv4 IPMP 组配置

假定您要创建一个名为 testgroup1 的具有以下配置的 IPMP 组:

可将以下行添加到 /etc/hostname.hme0 文件:

192.168.85.19 netmask + broadcast + group testgroup1 up \
    addif 192.168.85.21 deprecated -failover netmask + broadcast + up

同样,要将第二个接口 hme1 放入同一组 testgroup1 中并且配置测试地址,可添加以下行:

192.168.85.20 netmask + broadcast + group testgroup1 up \
    addif 192.168.85.22 deprecated -failover netmask + broadcast + up

示例 28-3 重新引导后保留 IPv6 IPMP 组配置

要为具有 IPv6 地址的接口 hme0 创建测试组,可将以下行添加到 /etc/hostname6.hme0 文件:

-failover group testgroup1 up

同样,要将第二个接口 hme1 放入组 testgroup1 中并且配置测试地址,可将以下行添加到 /etc/hostname6.hme1 文件:

-failover group testgroup1 up

故障排除

在 IPMP 组的配置过程中,in.mpathd 向系统控制台或 syslog 文件输出大量消息。这些消息实质是提示性消息,表示 IPMP 配置工作正常。

另请参见

如果希望 IPMP 组具有活动-待机配置,请转到如何为 IPMP 组配置待机接口

配置目标系统

基于探测器的故障检测涉及目标系统的使用,如基于探测器的故障检测中所述。对于某些 IPMP 组,in.mpathd 会使用大量的缺省目标。但是,对于另一些 IPMP 组,则可能需要为基于探测器的故障检测配置特定目标。通过将路由表中的主机路由设置为探测目标,可以完成基于探测器的故障检测。缺省路由器的前面将列出在路由表中配置的任何主机路由。因此,IPMP 会使用明确定义的主机路由来选择目标。可以使用以下两种方法中的任一种直接指定目标: 手动设置主机路由或创建可以成为启动脚本的 shell 脚本。

在评定网络中的哪些主机可能成为合适的目标时,请考虑以下标准。

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

  1. 使用您的用户帐户登录到要在其中配置基于探测器的故障检测的系统。
  2. 将路由添加到要用作基于探测器的故障检测中的目标的特定主机。
    $ route add -host destination-IP gateway-IP -static

    destination-IPgateway-IP 的值替换为要用作目标的主机的 IPv4 地址。例如,可以键入以下内容以指定目标系统 192.168.85.137,该目标系统与 IPMP 组 testgroup1 中的接口位于同一子网中。

    $ route add -host 192.168.85.137 192.168.85.137 -static 
  3. 将路由添加到网络中要用作目标系统的其他主机。

如何在 shell 脚本中指定目标系统

  1. 在已配置 IPMP 组的系统上,承担主管理员角色或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。有关如何创建该角色并将其指定给用户,请参见《Oracle Solaris 管理:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 创建一个将静态路由设置为建议目标的 shell 脚本。

    例如,可以创建一个名为 ipmp.targets 的包含以下内容的 shell 脚本:

    TARGETS="192.168.85.117 192.168.85.127 192.168.85.137"
    
    case "$1" in
            'start')
                /usr/bin/echo "Adding static routes for use as IPMP targets"
            for target in $TARGETS; do
          /usr/sbin/route add -host $target $target
            done
                      ;;
            'stop')
                  /usr/bin/echo "Removing static routes for use as IPMP targets"
             for target in $TARGETS; do
            /usr/sbin/route delete -host $target $target
             done
                      ;;
      esac  
  3. 将 shell 脚本复制到启动脚本目录中。
     # cp ipmp.targets /etc/init.d  
  4. 更改新启动脚本的权限。
    # chmod 744 /etc/init.d/ipmp.targets
  5. 更改新启动脚本的所有权。
    # chown root:sys /etc/init.d/ipmp.targets
  6. /etc/init.d 目录中为启动脚本创建链接。
    # ln /etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets

    文件名 S70ipmp.targets 中的 S70 前缀会将新脚本相对其他启动脚本正确进行排序。

配置待机接口

如果希望 IPMP 组具有活动-待机配置,请使用此过程。有关此类型配置的更多信息,请参阅IPMP 接口配置

如何为 IPMP 组配置待机接口

开始之前

有关配置 IPMP 组和指定测试地址的信息,请参阅如何配置具有多个接口的 IPMP 组

  1. 在要配置待机接口的系统上,承担主管理员角色或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。有关如何创建该角色并将其指定给用户,请参见《Oracle Solaris 管理:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 将一个接口配置为待机接口并指定测试地址。
    # ifconfig interface plumb \
    ip-address other-parameters deprecated -failover standby up

    待机接口只能具有一个 IP 地址,即测试地址。设置 standby up 选项之前,必须先设置 -failover 选项。对于 <other-parameters>,请使用您的配置所需的参数,如 ifconfig(1M) 手册页中所述。

    • 例如,要创建 IPv4 测试地址,可键入以下命令:

      # ifconfig hme1 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up
      hme1

      hme1 定义为要配置为待机接口的物理接口。

      192.168.85.22

      将此测试地址指定给待机接口。

      deprecated

      表示测试地址不用于外发包。

      -failover

      表示在接口出现故障时测试地址不进行故障转移。

      standby

      将接口标记为待机接口。

    • 例如,要创建 IPv6 测试地址,可键入以下命令:

      # ifconfig hme1 plumb -failover standby up
  3. 检查待机接口配置的结果。
    # ifconfig hme1
    hme1: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,
          STANDBY,INACTIVE mtu 1500 
             index 4 inet 192.168.85.22 netmask ffffff00 broadcast 19.16.85.255
             groupname test

    INACTIVE 标志表示此接口不用于任何外发包。此待机接口上发生故障转移时,会清除 INACTIVE 标志。


    注 - 通过键入 ifconfig interface 命令,始终可以查看接口的当前状态。有关查看接口状态的更多信息,请参阅如何获取有关特定接口的信息


  4. (可选)重新引导后保留 IPv4 待机接口。

    将待机接口指定给同一 IPMP 组,并为该待机接口配置测试地址。

    例如,要将 hme1 配置为待机接口,可将以下行添加到 /etc/hostname.hme1 文件:

    192.168.85.22 netmask + broadcast + deprecated group test -failover standby up 
  5. (可选)重新引导后保留 IPv6 待机接口。

    将待机接口指定给同一 IPMP 组,并为该待机接口配置测试地址。

    例如,要将 hme1 配置为待机接口,可将以下行添加到 /etc/hostname6.hme1 文件:

    -failover group test standby up

示例 28-4 为 IPMP 组配置待机接口

假定您要创建具有以下配置的测试地址:

应键入以下内容:

# ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + \
deprecated -failover standby up

仅当地址标记为 NOFAILOVER 地址时,才会将接口标记为待机接口。

通过键入以下内容,可以删除接口的待机状态:

# ifconfig interface -standby

配置具有单个物理接口的 IPMP 组

如果 IPMP 组中仅有一个接口,则无法进行故障转移。但是,可以通过将接口指定给 IPMP 组对该接口启用故障检测。不必配置专用的测试 IP 地址,即可为单接口 IPMP 组建立故障检测。可以使用单个 IP 地址发送数据和检测故障。

如何配置单接口 IPMP 组

  1. 在将来具有单接口 IPMP 组的系统上,承担主管理员角色或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。有关如何创建该角色并将其指定给用户,请参见《Oracle Solaris 管理:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 对于 IPv4,创建单接口 IPMP 组。

    使用以下语法将单个接口指定给 IPMP 组。

    # ifconfig interface group group-name

    以下示例会将接口 hme0 指定给 IPMP 组 v4test

    # ifconfig hme0 group v4test

    执行此步骤之后,IPMP 会对接口启用基于链路的故障检测。

    此外,还可以使用 ifconfig 命令的 -failover 子命令启用基于探测器的故障检测。以下示例通过使用当前分配给 hme0 的 IP 地址,在 hme0 上启用基于探测器的故障检测。

    # ifconfig hme0 -failover

    请注意,与多接口组不同,同一 IP 地址既可充当数据地址,又可充当测试地址。要让应用程序将测试地址用作数据地址,不能针对单接口 IPMP 组将测试地址标记为 deprecated

  3. 对于 IPv6,创建单接口 IPMP 组。

    使用以下语法将单个接口指定给 IPMP 组:

    # ifconfig interface inet6 group group-name

    例如,要将单接口 hme0 添加到 IPMP 组 v6test 中,请键入以下内容:

    # ifconfig hme0 inet6 group v6test

    执行此步骤之后,IPMP 会对接口启用基于链路的故障检测。

    此外,还可以使用 ifconfig 命令的 -failover 子命令启用基于探测器的故障检测。以下示例通过使用当前分配给 hme0 的 IP 地址,在 hme0 上启用基于探测器的故障检测。

    # ifconfig hme0 inet6 -failover

    请注意,与多接口组不同,同一 IP 地址既可充当数据地址,又可充当测试地址。要让应用程序将测试地址用作数据地址,不能针对单接口 IPMP 组将测试地址标记为 deprecated

    在单物理接口配置中,无法检验所探测的目标系统是否已出现故障或者接口是否已出现故障。仅可以通过一个物理接口来探测目标系统。如果子网中仅有一个缺省路由器,则当组中仅有一个物理接口时,关闭 IPMP。如果存在单独的 IPv4 和 IPv6 缺省路由器,或者存在多个缺省路由器,则需要探测多个目标系统。因此,可以安全地打开 IPMP。