系统管理指南:IP 服务

将临时地址用于接口

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 文件中配置下列变量:

有效生命周期 TmpValidLifetime

临时地址存在的时间跨度,在此之后临时地址将从主机中删除。

首选生命周期 TmpPreferredLifetime

临时地址过时之前已经过的时间。此时间跨度应短于有效生命周期。

地址重新生成时间

在首选生命周期到期之前的持续时间,在这段时间内,主机应生成新的临时地址。

可以按如下所示表示临时地址的持续时间:

n

n 秒数(缺省值)

n h

n 小时数 (h)

n d

n 天数 (d)

Procedure如何配置临时地址

  1. 以主管理员或超级用户身份登录到 IPv6 主机。

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

  2. 如有必要,请在主机的接口上启用 IPv6。

    请参阅如何启用当前会话的 IPv6 接口

  3. 编辑 /etc/inet/ndpd.conf 文件以打开临时地址生成功能。

    • 要在主机的所有接口上配置临时地址,请将以下行添加到 /etc/inet/ndpd.conf 中:


      ifdefault TmpAddrsEnabled true
      
    • 要配置特定接口的临时地址,请将以下一行添加到 /etc/inet/ndpd.conf 中:


      if interface TmpAddrsEnabled true 
      
  4. (可选)指定临时地址的有效生命周期。


    ifdefault TmpValidLifetime duration
    

    此语法为主机上的所有接口指定有效生命周期。duration 的值应当以秒、小时或天为单位。缺省的有效生命周期为 7 天。另外,还可以使用带有 if interface 关键字的 TmpValidLifetime 来为特定接口的临时地址指定有效生命周期。

  5. (可选)为临时地址指定首选生命周期,在此之后临时地址将过时。


    if interface TmpPreferredLifetime duration
    

    此语法为特定接口的临时地址指定首选生命周期。缺省的首选生命周期为一天。另外,还可以使用带有 ifdefault 关键字的 TmpPreferredLifetime 来为主机所有接口上的临时地址指定首选生命周期。


    注 –

    缺省地址选择可为已经过时的 IPv6 地址指定较低的优先级。如果某个 IPv6 临时地址已过时,则缺省地址选择会将未过时的地址选作包的源地址。未过时的地址可能是自动生成的 IPv6 地址,也可能是接口的 IPv4 地址。有关缺省地址选择的更多信息,请参见管理缺省地址选择


  6. (可选)指定地址过时之前的前导时间,在这段时间内,主机应生成新的临时地址。


    ifdefault TmpRegenAdvance duration
    

    此语法可为主机上所有接口的临时地址指定地址过时之前的前导时间。缺省值是 5 秒。

  7. 更改 in.ndpd 守护进程的配置。


    # pkill -HUP in.ndpd
    # /usr/lib/inet/in.ndpd
    
  8. 运行 ifconfig -a6 命令来验证临时地址是否已创建,如示例 7–5 中所示。

    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。


另请参见