本节包含有关具有至少两个物理接口的典型 IPMP 组的配置任务。
有关多接口 IPMP 组的简介,请参阅IPMP 组。
有关规划任务,请参阅规划 IPMP 组。
有关如何配置仅有一个物理接口的 IPMP 组,请参阅配置具有单个物理接口的 IPMP 组。
将 VLAN 配置到 IPMP 组时,以下用于配置 IPMP 组的步骤也适用。
需要已经配置将来的 IPMP 组中所有接口的 IPv4 地址,如果适用,还需配置 IPv6 地址。
只能为每个子网或 L2 广播域配置一个 IPMP 组。有关详细信息,请参见IPMP 的基本要求
在要配置接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将每个物理接口放入 IPMP 组。
# ifconfig interface group group-name |
例如,要将 hme0 和 hme1 放入组 testgroup1 中,应键入以下命令:
# ifconfig hme0 group testgroup1 # ifconfig hme1 group testgroup1 |
请避免在组名中使用空格。ifconfig 状态显示不会显示空格。因此,请勿创建两个类似的组名,其中唯一的区别是一个名称还包含空格。如果其中一个组名包含空格,则这些组名在状态显示中看起来是相同的。
在双栈环境中,如果将某个接口的 IPv4 实例放入特定组中,则 IPv6 实例会自动放入同一组中。
仅当要在特定接口上使用基于探测器的故障检测时,才需要配置测试地址。测试地址将配置为在 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 的地址
设置为缺省值的网络掩码和广播地址
设置的 -failover 和 deprecated 选项
必须将 IPv4 测试地址标记为 deprecated,才能防止应用程序使用该测试地址。
检查特定接口的 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 |
# ifconfig interface inet6 -failover |
具有 IPv6 地址的物理接口会放入与接口的 IPv4 地址相同的 IPMP 组中。如果将具有 IPv4 地址的物理接口配置到 IPMP 组中,则会出现此情况。如果首先将具有 IPv6 地址的物理接口放入 IPMP 组中,则具有 IPv4 地址的物理接口也会隐式放入同一 IPMP 组中。
例如,要使用 IPv6 测试地址配置 hme0,可键入以下内容:
# ifconfig hme0 inet6 -failover |
无需将 IPv6 测试地址标记为 deprecated 即可防止应用程序使用该测试地址。
检查 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 测试地址是指接口的链路本地地址。
对于 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(可选)。
(可选)通过重复步骤 1 至 6,将更多接口添加到 IPMP 组中。
可以将新接口添加到实时系统上的现有组中。但是,重新引导后更改会丢失。
假定您要执行以下操作:
将网络掩码和广播地址设置为缺省值。
使用测试地址 192.168.85.21 配置接口。
可键入以下命令:
# ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up |
必须将 IPv4 测试地址标记为 deprecated,才能防止应用程序使用该测试地址。请参见如何配置具有多个接口的 IPMP 组。
要启用地址的故障转移属性,可使用不带连字符的 failover 选项。
IPMP 组中的所有测试 IP 地址都必须使用相同的网络前缀。测试 IP 地址必须属于单个 IP 子网。
假定您要创建一个名为 testgroup1 的具有以下配置的 IPMP 组:
数据地址为 192.168.85.19 的物理接口 hme0
测试地址为 192.168.85.21 的逻辑接口
在本示例中,将物理接口和数据地址联系在了一起。逻辑接口和测试地址也是如此。但是,接口“类型”和地址类型之间并没有内在的关系。
设置的 deprecated 和 -failover 选项
设置为缺省值的网络掩码和广播地址
可将以下行添加到 /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 |
要为具有 IPv6 地址的接口 hme0 创建测试组,可将以下行添加到 /etc/hostname6.hme0 文件:
-failover group testgroup1 up |
同样,要将第二个接口 hme1 放入组 testgroup1 中并且配置测试地址,可将以下行添加到 /etc/hostname6.hme1 文件:
-failover group testgroup1 up |
在 IPMP 组的配置过程中,in.mpathd 向系统控制台或 syslog 文件输出大量消息。这些消息实质是提示性消息,表示 IPMP 配置工作正常。
此消息表示已将接口 hme0 添加到 IPMP 组 testgroup1。但是,hme0 未配置测试地址。要启用基于探测器的故障检测,需要为接口指定测试地址。
May 24 14:09:57 host1 in.mpathd[101180]: No test address configured on interface hme0; disabling probe-based failure detection on it. testgroup1 |
对于已添加到 IPMP 组中的仅具有 IPv4 地址的所有接口,都会显示此消息。
May 24 14:10:42 host4 in.mpathd[101180]: NIC qfe0 of group testgroup1 is not plumbed for IPv6 and may affect failover capability |
为接口配置测试地址后,应该显示此消息。
Created new logical interface hme0:1 May 24 14:16:53 host1 in.mpathd[101180]: Test address now configured on interface hme0; enabling probe-based failure detection on it |
如果希望 IPMP 组具有活动-待机配置,请转到如何为 IPMP 组配置待机接口。
基于探测器的故障检测涉及目标系统的使用,如基于探测器的故障检测中所述。对于某些 IPMP 组,in.mpathd 会使用大量的缺省目标。但是,对于另一些 IPMP 组,则可能需要为基于探测器的故障检测配置特定目标。通过将路由表中的主机路由设置为探测目标,可以完成基于探测器的故障检测。缺省路由器的前面将列出在路由表中配置的任何主机路由。因此,IPMP 会使用明确定义的主机路由来选择目标。可以使用以下两种方法中的任一种直接指定目标: 手动设置主机路由或创建可以成为启动脚本的 shell 脚本。
在评定网络中的哪些主机可能成为合适的目标时,请考虑以下标准。
确保将来的目标可用并且正在运行。建立其 IP 地址的列表。
确保目标接口与要配置的 IPMP 组位于同一网络中。
目标系统的网络掩码和广播地址必须与 IPMP 组中的地址相同。
目标主机必须能够应答使用基于探测器的故障检测的接口发出的 ICMP 请求。
使用您的用户帐户登录到要在其中配置基于探测器的故障检测的系统。
将路由添加到要用作基于探测器的故障检测中的目标的特定主机。
$ route add -host destination-IP gateway-IP -static |
将 destination-IP 和 gateway-IP 的值替换为要用作目标的主机的 IPv4 地址。例如,可以键入以下内容以指定目标系统 192.168.85.137,该目标系统与 IPMP 组 testgroup1 中的接口位于同一子网中。
$ route add -host 192.168.85.137 192.168.85.137 -static |
将路由添加到网络中要用作目标系统的其他主机。
在已配置 IPMP 组的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
创建一个将静态路由设置为建议目标的 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 |
将 shell 脚本复制到启动脚本目录中。
# cp ipmp.targets /etc/init.d |
更改新启动脚本的权限。
# chmod 744 /etc/init.d/ipmp.targets |
更改新启动脚本的拥有权。
# chown root:sys /etc/init.d/ipmp.targets |
在 /etc/init.d 目录中为启动脚本创建链接。
# ln /etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets |
文件名 S70ipmp.targets 中的 S70 前缀会将新脚本相对其他启动脚本正确进行排序。
如果希望 IPMP 组具有活动-待机配置,请使用此过程。有关此类型配置的更多信息,请参阅IPMP 接口配置。
必须已将所有接口配置为 IPMP 组的成员。
在要成为待机接口的接口上,不应配置测试地址。
有关配置 IPMP 组和指定测试地址的信息,请参阅如何配置具有多个接口的 IPMP 组。
在要配置待机接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将一个接口配置为待机接口并指定测试地址。
# 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 定义为要配置为待机接口的物理接口。
将此测试地址指定给待机接口。
表示测试地址不用于外发包。
表示在接口出现故障时测试地址不进行故障转移。
将接口标记为待机接口。
例如,要创建 IPv6 测试地址,可键入以下命令:
# ifconfig hme1 plumb -failover standby up |
检查待机接口配置的结果。
# 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 命令,始终可以查看接口的当前状态。有关查看接口状态的更多信息,请参阅如何获取有关特定接口的信息。
将待机接口指定给同一 IPMP 组,并为该待机接口配置测试地址。
例如,要将 hme1 配置为待机接口,可将以下行添加到 /etc/hostname.hme1 文件:
192.168.85.22 netmask + broadcast + deprecated group test -failover standby up |
(可选)重新引导后保留 IPv6 待机接口。
将待机接口指定给同一 IPMP 组,并为该待机接口配置测试地址。
例如,要将 hme1 配置为待机接口,可将以下行添加到 /etc/hostname6.hme1 文件:
-failover group test standby up |
假定您要创建具有以下配置的测试地址:
作为待机接口的物理接口 hme2
测试地址为 192.168.85.22
设置的 deprecated 和 -failover 选项
设置为缺省值的网络掩码和广播地址
应键入以下内容:
# ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + \ deprecated -failover standby up |
仅当地址标记为 NOFAILOVER 地址时,才会将接口标记为待机接口。
通过键入以下内容,可以删除接口的待机状态:
# ifconfig interface -standby |