跳过导航链接 | |
退出打印视图 | |
系统管理指南:IP 服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
1. Oracle Solaris TCP/IP 协议套件(概述)
5. 配置 TCP/IP 网络服务和 IPv4 寻址(任务)
25. Oracle Solaris 中的 IP 过滤器(概述)
本节介绍如何修改作为主机或服务器的节点上启用了 IPv6 的接口的配置。大多数情况下,应当针对启用了 IPv6 的接口使用地址自动配置,如无状态自动配置概述中所述。但是,可以按照本节中的任务说明,根据需要修改接口的 IPv6 地址。
下表列出了各种可修改现有 IPv6 网络的任务。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。
|
IPv6 临时地址包括一个随机生成的用作接口 ID 的 64 位数字,而不是包括接口的 MAC 地址。对于要保持匿名的 IPv6 节点上的任何接口都可以使用临时地址。例如,您可能希望对于需要访问公共 Web 服务器的主机的接口使用临时地址。临时地址可实现 IPv6 保密性增强功能。RFC 3041 中介绍了这些增强功能,可从 "Privacy Extensions for Stateless Address Autoconfiguration in IPv6" 中获取。
如果需要的话,可以在 /etc/inet/ndpd.conf 文件中为一个或多个接口启用临时地址。但是,与自动配置的标准 IPv6 地址不同,临时地址由 64 位子网前缀和一个随机生成的 64 位数字组成。这个随机数将成为 IPv6 地址的接口 ID 部分。临时地址作为接口 ID 时,不会生成链路本地地址。
请注意,临时地址的缺省首选生命周期为一天。启用临时地址生成功能时,还可以在 /etc/inet/ndpd.conf 文件中配置下列变量:
临时地址存在的时间跨度,在此之后临时地址将从主机中删除。
临时地址过时之前已经过的时间。此时间跨度应短于有效生命周期。
在首选生命周期到期之前的持续时间,在这段时间内,主机应生成新的临时地址。
可以按如下所示表示临时地址的持续时间:
n 秒数(缺省值)
n 小时数 (h)
n 天数 (d)
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
ifdefault TmpValidLifetime duration
此语法为主机上的所有接口指定有效生命周期。duration 的值应当以秒、小时或天为单位。缺省的有效生命周期为 7 天。另外,还可以使用带有 if interface 关键字的 TmpValidLifetime 来为特定接口的临时地址指定有效生命周期。
if interface TmpPreferredLifetime duration
此语法为特定接口的临时地址指定首选生命周期。缺省的首选生命周期为一天。另外,还可以使用带有 ifdefault 关键字的 TmpPreferredLifetime 来为主机所有接口上的临时地址指定首选生命周期。
注 - 缺省地址选择可为已经过时的 IPv6 地址指定较低的优先级。如果某个 IPv6 临时地址已过时,则缺省地址选择会将未过时的地址选作包的源地址。未过时的地址可能是自动生成的 IPv6 地址,也可能是接口的 IPv4 地址。有关缺省地址选择的更多信息,请参见管理缺省地址选择。
ifdefault TmpRegenAdvance duration
此语法可为主机上所有接口的临时地址指定地址过时之前的前导时间。缺省值是 5 秒。
# pkill -HUP in.ndpd # /usr/lib/inet/in.ndpd
在 ifconfig 的输出中,接口定义所在的行中应包含 TEMPORARY 一词。
示例 7-4 /etc/inet/ndpd.conf 文件中的临时地址变量
以下示例显示了针对主网络接口启用了临时地址的 /etc/inet/ndpd.conf 文件片段。
ifdefault TmpAddrsEnabled true ifdefault TmpValidLifetime 14d ifdefault TmpPreferredLifetime 7d ifdefault TmpRegenAdvance 6s
示例 7-5 启用临时地址后的 ifconfig-a6 命令输出
此示例显示了创建临时地址之后 ifconfig 命令的输出。
# ifconfig -a6 lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 hme0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 ether 8:0:20:b9:4c:54 inet6 fe80::a00:20ff:feb9:4c54/10 hme0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2 inet6 2001:db8:3c4d:15:a00:20ff:feb9:4c54/64 hme0:2: flags=802080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6,TEMPORARY> mtu 1500 index 2 inet6 2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64
请注意,hme0:2 接口后面的行中包括单词 TEMPORARY。此名称表示地址 2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64 具有临时接口 ID。
另请参见
要为 IPv6 地址设置名称服务支持,请参见针对 IPv6 配置名称服务支持。
要为服务器配置 IPv6 地址,请参见如何配置用户指定的 IPv6 标记。
要监视 IPv6 节点上的活动,请参见第 8 章。
如IPv6 寻址概述中所述,IPv6 地址的 64 位接口 ID 又称作标记。在地址自动配置过程中,该标记与接口的 MAC 地址相关联。大多数情况下,非路由节点(即 IPv6 主机和服务器)应当使用为其自动配置的标记。
但是,对于在系统维护过程中经常需要交换接口的服务器,使用自动配置的标记可能会产生问题。如果更换接口卡,则 MAC 地址也会随之更改。因此,依赖稳定 IP 地址的服务器将会遇到问题。网络基础结构的各个部分(如 DNS 或 NIS)可能已经存储了服务器接口的特定 IPv6 地址。
为了避免出现地址更改问题,可以手动配置要用作 IPv6 地址中接口 ID 的标记。要创建此标记,需要指定一个 64 位或更少的十六进制数字,使其占用 IPv6 地址的接口 ID 部分。在后续的地址自动配置过程中,相邻节点搜索协议不会基于接口的 MAC 地址创建接口 ID。相反,手动创建的标记将成为接口 ID。此标记始终被指定给该接口,即使更换了卡也是如此。
注 - 用户指定的标记和临时地址之间的区别在于,临时地址是随机生成的,而不是由用户显式创建的。
接下来的说明对于经常更换接口的服务器尤其有用。它们也可用于在任何 IPv6 节点上配置用户指定的标记。
必须先检测接口,然后才能为其 IPv6 地址配置标记。
# ifconfig a6 qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 ether 0:3:ba:13:14:e1 inet6 fe80::203:baff:fe13:14e1/10
此输出显示网络接口 qfe0 已经过检测并且具有链路本地地址 fe80::203:baff:fe13:14e1/10。此地址是在安装过程中自动配置的。
对于每个要具有用户指定接口 ID(标记)的接口,请使用以下形式的 ifconfig 命令:
ifconfig interface inet6 token address/64
例如,可使用以下命令配置 qfe0 的标记:
# ifconfig qfe0 inet6 token ::1a:2b:3c:4d/64
对于要具有用户指定标记的每个接口,重复该步骤。
token ::token-name/64
例如,可以在 /etc/hostname6.interface 文件的末尾添加以下文本:
token ::1a:2b:3c:4d/64
在系统重新引导之后,在 /etc/hostname6. interface 文件中配置的标记将应用于接口的 IPv6 地址。此 IPv6 地址在后续的重新引导过程中仍会持续保留。
# pkill -HUP -in.ndpd
示例 7-6 在 IPv6 接口上配置用户指定的标记
在以下示例中,bge0:1 接口具有自动配置的 IPv6 地址。子网前缀 2001:db8:3c4d:152:/64 由节点本地链路上的路由器通告。接口 ID 2c0:9fff:fe56:8255 是用 bge0:1 的 MAC 地址生成的。
# ifconfig -a6 lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5 inet6 fe80::2c0:9fff:fe56:8255/10 ether 0:c0:9f:56:82:55 bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5 inet6 2001:db8:3c4d:152:c0:9fff:fe56:8255/64 # ifconfig bge0 inet6 token ::1a:2b:3c:4d/64 # vi /etc/hostname6.bge0 token ::1a:2b:3c:4d/64 # pkill -HUP -in.ndpd # ifconfig -a6 lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5 inet6 fe80::2c0:9fff:fe56:8255/10 ether 0:c0:9f:56:82:55 bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5 inet6 2001:db8:3c4d:152:1a:2b:3c:4d/64
配置标记之后,bge0:1 的第二个状态行上的全局地址现在包含为其配置的接口 ID 1a:2b:3c:4d。
另请参见
要使用服务器的 IPv6 地址更新名称服务,请参见针对 IPv6 配置名称服务支持。
要监视服务器性能,请参见第 8 章。
如果计划在服务器上配置 IPv6,则在服务器的接口上启用 IPv6 时,必须做出几个决定。所做的决定会影响用于配置接口 IPv6 地址的接口 ID(又称作标记)的策略。
开始之前
下一过程假定以下情况成立:
已在服务器上安装了 Oracle Solaris。
已经使用配置 IPv6 接口中的过程,在 Oracle Solaris 安装过程中或安装之后在服务器接口上启用了 IPv6。
如果适用,请升级应用程序软件以支持 IPv6。请注意,许多在 IPv4 协议栈上运行的应用程序也能在 IPv6 上成功运行。有关更多信息,请参阅如何准备网络服务以支持 IPv6。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
有关更多信息,请参阅配置 IPv6 路由器。
缺省情况下,在创建 IPv6 地址的接口 ID 部分时,IPv6 地址自动配置会使用接口的 MAC 地址。如果接口的 IPv6 地址是已知的,则使用一个接口交换另一个接口会导致问题。新接口的 MAC 地址将会不同。在地址自动配置过程中,会生成新的接口 ID。
对于不打算替换的启用了 IPv6 的接口,请使用自动配置的 IPv6 地址,如IPv6 地址自动配置中所述。
对于必须匿名显示在本地网络外部的启用了 IPv6 的接口,请考虑对接口 ID 使用随机生成的标记。有关说明和示例,请参阅如何配置临时地址。
对于计划定期交换的启用了 IPv6 的接口,请为接口 ID 创建标记。有关说明和示例,请参阅如何配置用户指定的 IPv6 标记。