系统管理指南:IP 服务

第 7 章 配置 IPv6 网络(任务)

本章包含在网络上配置 IPv6 需要执行的任务。本章主要包含以下主题:

有关 IPv6 概念的概述,请参阅第 3 章。有关 IPv6 规划任务的信息,请参阅第 4 章。要查找有关本章中的任务的参考信息,请参阅第 11 章

配置 IPv6 接口

配置 IPv6 的第一步就是在接口上启用 IPv6。可以在 Oracle Solaris 10 安装过程中启用 IPv6 支持,也可以通过在已安装的系统的接口上配置 IPv6 来启用 IPv6 支持。

在 Oracle Solaris 10 安装过程中,可以在一个或多个系统接口上启用 IPv6。安装之后,与 IPv6 相关的下列文件和表将准备就绪:

本节介绍如何在已安装的系统的接口上启用 IPv6。

在接口上启用 IPv6(任务列表)

下表列出了各种配置 IPv6 接口的任务。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。

任务 

说明 

参考 

在已经装有 Oracle Solaris 10 的系统的接口上启用 IPv6。 

使用此任务可以在安装 Oracle Solaris 10 之后在接口上启用 IPv6。 

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

使启用了 IPv6 的接口的配置在重新引导后仍然持保持不变。 

使用此任务可以使接口的 IPv6 地址成为永久地址。 

如何启用持久性 IPv6 接口

关闭 IPv6 地址自动配置。 

如果需要手动配置 IPv6 地址的接口 ID 部分,请使用此任务。 

如何关闭 IPv6 地址自动配置

Procedure如何启用当前会话的 IPv6 接口

开始配置 IPv6 时,请首先在将成为 IPv6 节点的所有系统的接口上启用 IPv6。最初,接口通过自动配置过程获取其 IPv6 地址,如IPv6 地址自动配置中所述。然后,可以根据节点在 IPv6 网络中的作用(作为主机、服务器或路由器)来调整节点的配置。


注 –

如果接口与当前正在通告某个 IPv6 前缀的路由器在同一链路上,则接口会获取该站点前缀,并将其作为自动配置的地址的一部分。有关更多信息,请参阅如何配置启用了 IPv6 的路由器


以下过程说明如何为安装 Oracle Solaris 10 之后添加的接口启用 IPv6。

开始之前

完成 IPv6 网络的规划任务,如升级硬件和软件以及准备寻址计划。有关更多信息,请参见IPv6 规划(任务列表)

  1. 以主管理员身份或超级用户身份登录预期的 IPv6 节点。

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

  2. 在接口上启用 IPv6。


    # ifconfig inet6 interface plumb up
    
  3. 启动 IPv6 守护进程 in.ndpd


    # /usr/lib/inet/in.ndpd
    

    注 –

    可以使用 ifconfig-a6 命令来显示节点上启用了 IPv6 的接口的状态。



示例 7–1 在安装之后启用 IPv6 接口

此示例说明如何在 qfe0 接口上启用 IPv6。在开始之前,请检查系统上已配置的所有接口的状态。


# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 <UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 

目前仅为该系统配置了 qfe0 接口。请按如下所示在该接口上启用 IPv6:


# ifconfig inet6 qfe0 plumb up
# /usr/lib/inet/in.ndpd
# ifconfig -a6
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
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 启用 IPv6 前后的状态。ifconfig-a6 选项仅显示 qfe0 的 IPv6 信息和回送接口。请注意,输出结果表明仅为 qfe0 配置了一个链路本地地址 fe80::203:baff:fe13:14e1/10。此地址指明到目前为止,该节点的本地链路上没有任何路由器通告站点前缀。

启用 IPv6 之后,可以使用 ifconfig -a 命令来显示系统上所有接口的 IPv4 和 IPv6 地址。


接下来的操作

Procedure如何启用持久性 IPv6 接口

此过程说明如何启用具有自动配置的 IPv6 地址的 IPv6 接口,这些地址在随后进行重新引导时将一直保持不变。


注 –

如果接口与当前正在通告某个 IPv6 前缀的路由器在同一链路上,则接口会获取该站点前缀,并将其作为自动配置的地址的一部分。有关更多信息,请参阅如何配置启用了 IPv6 的路由器


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

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

  2. 为安装之后添加的接口创建 IPv6 地址。

    1. 创建配置文件。


      # touch /etc/hostname6.interface
      
    2. 向配置文件添加地址。


      inet6 ipv6-address up
      addif inet6 ipv6-address up
      ...
  3. 创建静态 IPv6 缺省路由。


    # /usr/sbin/route -p add -inet6 default ipv6-address
    
  4. (可选)创建一个 /etc/inet/ndpd.conf 文件,该文件定义了节点上接口变量的参数。

    如果需要为主机的接口创建临时地址,请参阅将临时地址用于接口。有关 /etc/inet/ndpd.conf 的详细信息,请参阅 ndpd.conf(4) 手册页和ndpd.conf 配置文件

  5. 重新引导该节点。


    # reboot -- -r
    

    在重新引导过程中将发送路由器搜索包。如果路由器以站点前缀进行响应,则节点可以使用对应的包含全局 IPv6 地址的 /etc/hostname6.interface 文件配置任何接口。否则,仅能使用链路本地地址配置启用了 IPv6 的接口。重新引导还将以 IPv6 模式重新启动 in.ndpd 和其他网络守护进程。


示例 7–2 使 IPv6 接口的配置在重新引导过程中持续保留

此示例说明如何使 qfe0 接口的 IPv6 配置在重新引导过程中持续保留。在此示例中,本地链路上的路由器会通告站点前缀和子网 ID 2001:db8:3c4d:15/64

首先,检查系统接口的状态。


# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 <UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 

# touch /etc/hostname6.qfe0
# vi /etc/hostname6.qfe0
inet6 fe80::203:baff:fe13:1431/10 up
addif inet6 2001:db8:3c4d:15:203:baff:fe13:14e1/64 up

# route -p add -inet6 default fe80::203:baff:fe13:1431
# reboot -- -r

验证已配置的 IPv6 地址是否仍适用于 qfe0 接口。


# 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:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe13:14e1/64

ifconfig -a6 的输出显示了 qfe0 的两项。标准 qfe0 项包括 MAC 地址和链路本地地址。第二项 qfe0:1 表示为 qfe0 接口上的其他 IPv6 地址创建了伪接口。新的全局 IPv6 地址 2001:db8:3c4d:15:203:baff:fe13:14e1/64 包括由本地路由器通告的站点前缀和子网 ID。


接下来的操作

Procedure如何关闭 IPv6 地址自动配置

通常应当使用地址自动配置来为主机和服务器的接口生成 IPv6 地址。但是,有时可能希望关闭地址自动配置,尤其是在希望手动配置标记时,如配置 IPv6 标记中所述。

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

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

  2. 为节点创建 /etc/inet/ndpd.conf 文件。

    /etc/inet/ndpd.conf 文件定义了特定节点的接口变量。必须在该文件中包含以下内容,才能关闭所有服务器接口的地址自动配置:


    if-variable-name StatelessAddrConf false

    有关 /etc/inet/ndpd.conf 的详细信息,请参阅 ndpd.conf(4) 手册页和ndpd.conf 配置文件

  3. 使用所做更改更新 IPv6 守护进程。


    # pkill -HUP in.ndpd
    

配置 IPv6 路由器

在网络上配置 IPv6 的第一步是在路由器上配置 IPv6。路由器配置涉及到许多独立的任务,本节将介绍这些任务。您可以根据站点要求执行部分或全部任务。

IPv6 路由器配置(任务列表)

按下表中的顺序执行接下来的任务,以配置 IPv6 网络。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。

任务 

说明  

参考 

1. 在开始配置 IPv6 之前,确保已完成了必需的先决条件。 

必须先在启用了 IPv6 的接口上完成规划任务和 Oracle Solaris : 安装,然后再配置启用了 IPv6 的路由器。 

第 4 章配置 IPv6 接口

2. 配置路由器。 

定义网络的站点前缀。  

如何配置启用了 IPv6 的路由器

3. 在路由器上配置隧道接口。 

在路由器上设置手动隧道或 6to4 隧道接口。本地 IPv6 网络需要使用隧道来与其他隔离的 IPv6 网络通信。 

4. 在网络上配置交换机。 

如果网络配置中包括交换机,此时请在配置过程中针对 IPv6 配置交换机。 

请参阅交换机制造商文档。 

5. 在网络上配置任何集线器。 

如果网络配置中包括集线器,此时请在配置过程中针对 IPv6 配置集线器。 

请参阅集线器制造商文档。 

6. 针对 IPv6 配置网络名称服务。  

针对 IPv6 配置路由器之后,将主名称服务(DNS、NIS 或 LDAP)配置为识别 IPv6 地址。 

如何向 DNS 中添加 IPv6 地址

7. (可选)在主机和服务器上修改启用了 IPv6 的接口的地址。 

配置 IPv6 路由器之后,对启用了 IPv6 的主机和服务器进一步进行修改。 

修改主机和服务器的 IPv6 接口配置

8. 将应用程序配置为支持 IPv6。 

为了支持 IPv6,不同的应用程序可能需要不同的操作。 

请参阅应用程序文档。 

Procedure如何配置启用了 IPv6 的路由器

此过程假定在 Oracle Solaris : 的安装过程中已针对 IPv6 配置了路由器的所有接口。

  1. 在即将成为 IPv6 路由器的系统上,承担主管理员角色或成为超级用户。

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

  2. 检查在安装过程中针对 IPv6 配置了路由器上的哪些接口。


    # ifconfig -a
    

    检查输出,确保现在已经使用链路本地地址检测了要针对 IPv6 配置的接口。以下 ifconfig -a 的样例命令输出显示了已经为路由器的接口配置的 IPv4 和 IPv6 地址。


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    dmfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffffff00 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
    dmfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
            inet 172.16.26.220 netmask ffffff00 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:16 
    lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
            inet6 ::1/128 
    dmfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
            ether 0:3:ba:11:b1:15 
            inet6 fe80::203:baff:fe11:b115/10 
    dmfe1: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
            ether 0:3:ba:11:b1:16 
            inet6 fe80::203:baff:fe11:b116/10 

    该输出还显示在安装过程中已经使用 IPv6 链路本地地址 fe80::203:baff:fe11:b115/10fe80::203:baff:fe11:b116/10 配置了主网络接口 dmfe0 和附加接口 dmfe1

  3. 在路由器的所有接口上配置 IPv6 包转发功能。

    对于 Solaris 10 11/03 及更早的版本,请使用以下命令:


    # routeadm -e ipv6-forwarding -u
    

    使用以下任一命令启用包转发:

    • 使用 routeadm 命令,如下所示:


      # routeadm -e ipv6-forwarding -u
      
    • 使用以下服务管理工具 (Service Management Facility, SMF) 命令,如下所示:


      # svcadm enable ipv6-forwarding
  4. 启动路由选择守护进程。

    in.ripngd 守护进程可处理 IPv6 路由。

    对于 Solaris 10 11/06 及更早的版本,请键入以下命令启动 in.ripngd


    # routeadm -e ipv6-routing
    # routeadm -u
    

    通过以下任一方式启用 IPv6 路由:

    • 使用 routeadm 命令,如下所示:


      # routeadm -e ipv6-routing -u
      
    • 使用 SMF 启用 IPv6 路由:


      # svcadm enable ripng:default
      

    有关 routeadm 命令的语法信息,请参见 routeadm(1M) 手册页。

  5. 创建 /etc/inet/ndpd.conf 文件。

    /etc/inet/ndpd.conf 中指定要由路由器通告的站点前缀以及其他配置信息。此文件由 in.ndpd 守护进程读取,该守护进程实现了 IPv6 相邻节点搜索协议。

    有关变量和允许值的列表,请参阅ndpd.conf 配置文件ndpd.conf(4) 手册页。

  6. /etc/inet/ndpd.conf 文件中键入以下文本:


    ifdefault AdvSendAdvertisements true
    prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
    

    此文本通告 in.ndpd 守护进程通过路由器上针对 IPv6 配置的所有接口发出路由器通告。

  7. /etc/inet/ndpd.conf 文件中添加其他文本,以便在路由器的各接口上配置站点前缀。

    该文本应采用以下格式:


    prefix global-routing-prefix:subnet ID/64 interface
    

    以下样例 /etc/inet/ndpd.conf 文件将路由器配置为通过接口 dmfe0dmfe1 通告站点前缀 2001:0db8:3c4d::/48


    ifdefault AdvSendAdvertisements true
    prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
    
    if dmfe0 AdvSendAdvertisements 1
    prefix 2001:0db8:3c4d:15::0/64 dmfe0
    
    if dmfe1 AdvSendAdvertisements 1
    prefix 2001:0db8:3c4d:16::0/64 dmfe1
    
  8. 重新引导系统。

    IPv6 路由器随即开始在本地链路上通告 ndpd.conf 文件中的任何站点前缀。


示例 7–3 显示 IPv6 接口的 ifconfig 输出

以下示例显示了 ifconfig -a 命令的输出,在完成配置 IPv6 路由器过程之后将看到这类输出。


lo0: flags=1000849 <UP LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
dmfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.16.15.232 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:15 
dmfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
        inet 172.16.16.220 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:16 
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
dmfe0: flags=2100841 <UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        ether 0:3:ba:11:b1:15 
        inet6 fe80::203:baff:fe11:b115/10 
dmfe0:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe11:b115/64
dmfe1: flags=2100841 <UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 3
        ether 0:3:ba:11:b1:16 
        inet6 fe80::203:baff:fe11:b116/10 
dmfe1:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
           index 3
        inet6 2001:db8:3c4d:16:203:baff:fe11:b116/64

在此示例中,已经针对 IPv6 配置的每个接口现在都有两个地址。包含接口名称的项(如 dmfe0)显示该接口的链路本地地址。形式为 interface:n 的项(如 dmfe0:1)显示全局 IPv6 地址。此地址除包括接口 ID 外,还包括已在 /etc/ndpd.conf 文件中配置的站点前缀。


另请参见

修改主机和服务器的 IPv6 接口配置

本节介绍如何修改作为主机或服务器的节点上启用了 IPv6 的接口的配置。大多数情况下,应当针对启用了 IPv6 的接口使用地址自动配置,如无状态自动配置概述中所述。但是,可以按照本节中的任务说明,根据需要修改接口的 IPv6 地址。

修改 IPv6 接口配置(任务列表)

下表列出了各种可修改现有 IPv6 网络的任务。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。

任务 

说明 

参考 

关闭 IPv6 地址自动配置。 

如果需要手动配置 IPv6 地址的接口 ID 部分,请使用此任务。 

如何关闭 IPv6 地址自动配置

为主机创建临时地址。 

通过对随机创建的临时地址(用作地址中较低的 64 位)进行配置,隐藏主机的接口 ID。 

如何配置临时地址

为系统的接口 ID 配置标记。 

在 IPv6 地址中创建要用作接口 ID 的 64 位标记。 

如何配置用户指定的 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 文件中配置下列变量:

有效生命周期 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。


另请参见

配置 IPv6 标记

IPv6 Addressing Overview中所述,IPv6 地址的 64 位接口 ID 又称作IPv6 寻址概述。在地址自动配置过程中,该标记与接口的 MAC 地址相关联。大多数情况下,非路由节点(即 IPv6 主机和服务器)应当使用为其自动配置的标记。

但是,对于在系统维护过程中经常需要交换接口的服务器,使用自动配置的标记可能会产生问题。如果更换接口卡,则 MAC 地址也会随之更改。因此,依赖稳定 IP 地址的服务器将会遇到问题。网络基础结构的各个部分(如 DNS 或 NIS)可能已经存储了服务器接口的特定 IPv6 地址。

为了避免出现地址更改问题,可以手动配置要用作 IPv6 地址中接口 ID 的标记。要创建此标记,需要指定一个 64 位或更少的十六进制数字,使其占用 IPv6 地址的接口 ID 部分。在后续的地址自动配置过程中,相邻节点搜索协议不会基于接口的 MAC 地址创建接口 ID。相反,手动创建的标记将成为接口 ID。此标记始终被分配给该接口,即使更换了卡也是如此。


注 –

用户指定的标记和临时地址之间的区别在于,临时地址是随机生成的,而不是由用户显式创建的。


Procedure如何配置用户指定的 IPv6 标记

接下来的说明对于经常更换接口的服务器尤其有用。它们也可用于在任何 IPv6 节点上配置用户指定的标记。

  1. 验证要配置标记的接口是否已经过检测。

    必须先检测接口,然后才能为其 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。此地址是在安装过程中自动配置的。

  2. 创建一个或多个要用作节点接口标记的 64 位十六进制数字。有关标记的示例,请参阅链路本地单点传送地址

  3. 配置每个接口的标记。

    对于每个要具有用户指定接口 ID(标记)的接口,请使用以下形式的 ifconfig 命令:


    ifconfig interface inet6  token address/64
    

    例如,可使用以下命令配置 qfe0 的标记:


    # ifconfig qfe0 inet6 token ::1a:2b:3c:4d/64
    

    对于要具有用户指定标记的每个接口,重复该步骤。

  4. (可选)使新的 IPv6 地址在重新引导过程中持续保留。

    1. 对于每个配置了标记的接口,编辑或创建 /etc/hostname6.interface 文件。

    2. 在每个 /etc/hostname6.interface 文件的末尾添加以下文本:


      token ::token-name/64

      例如,可以在 /etc/hostname6.interface 文件的末尾添加以下文本:


      token ::1a:2b:3c:4d/64

    在系统重新引导之后,在 /etc/hostname6. interface 文件中配置的标记将应用于接口的 IPv6 地址。此 IPv6 地址在后续的重新引导过程中仍会持续保留。

  5. 使用所做更改更新 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,则在服务器的接口上启用 IPv6 时,必须做出几个决定。所做的决定会影响用于配置接口 IPv6 地址的接口 ID(又称作标记)的策略。

Procedure如何在服务器接口上启用 IPv6

开始之前

下一过程假定以下情况成立:

如果适用,请升级应用程序软件以支持 IPv6。请注意,许多在 IPv4 协议栈上运行的应用程序也能在 IPv6 上成功运行。有关更多信息,请参阅如何准备网络服务以支持 IPv6

  1. 在服务器上,承担主管理员角色或成为超级用户。

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

  2. 确保与服务器在同一链路上的路由器上配置了 IPv6 子网前缀。

    有关更多信息,请参阅配置 IPv6 路由器

  3. 对服务器上启用了 IPv6 的接口,使用适当的接口 ID 策略。

    缺省情况下,在创建 IPv6 地址的接口 ID 部分时,IPv6 地址自动配置会使用接口的 MAC 地址。如果接口的 IPv6 地址是已知的,则使用一个接口交换另一个接口会导致问题。新接口的 MAC 地址将会不同。在地址自动配置过程中,会生成新的接口 ID。

    • 对于不打算替换的启用了 IPv6 的接口,请使用自动配置的 IPv6 地址,如IPv6 地址自动配置中所述。

    • 对于必须匿名显示在本地网络外部的启用了 IPv6 的接口,请考虑对接口 ID 使用随机生成的标记。有关说明和示例,请参阅如何配置临时地址

    • 对于计划定期交换的启用了 IPv6 的接口,请为接口 ID 创建标记。有关说明和示例,请参阅如何配置用户指定的 IPv6 标记

针对 IPv6 支持配置隧道所需的任务(任务列表)

下表列出了各种配置不同类型的 IPv6 隧道的任务。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。

任务 

说明 

参考 

手动配置 IPv6 over IPv4 隧道。 

手动创建经由 IPv4 网络的 IPv6 隧道,此解决方案可用于在大型企业网络(主要是 IPv4 企业网络)中访问远程 IPv6 网络。 

如何手动配置 IPv6 over IPv4 隧道

手动配置 IPv6 over IPv6 隧道。 

手动配置经由 IPv6 网络的 IPv6 隧道,此解决方案通常用在大型企业网络中。 

如何手动配置 IPv6 over IPv6 隧道

手动配置 IPv4 over IPv6 隧道。 

手动配置经由 IPv6 网络的 IPv4 隧道,此解决方案通常用在同时包含 IPv4 网络和 IPv6 网络的大型网络中。 

如何配置 IPv4 over IPv6 隧道

自动配置 IPv6 over IPv4 隧道(6to4 隧道)。 

创建 6to4 自动隧道,此解决方案用于通过 Internet 访问外部的 IPv6 站点。 

如何配置 6to4 隧道

在 6to4 路由器和 6to4 中继路由器之间配置隧道。 

使用 6to4relay 命令启用连接到 6to4 中继路由器的隧道。

如何配置通往 6to4 中继路由器的 6to4 隧道

针对 IPv6 支持配置隧道

在大型 IPv4 网络中,IPv6 网络通常是隔离的实体。IPv6 网络上的节点可能需要与隔离的 IPv6 网络上的节点通信(在企业内或以远程方式进行)。通常,尽管 IPv6 主机也可以充当隧道端点,但是仍需要在 IPv6 路由器之间配置一条隧道。有关隧道规划的信息,请参阅在网络拓扑中规划隧道

可以为 IPv6 网络设置自动或手动配置的隧道。Oracle Solaris : IPv6 实现支持下列类型的隧道封装:

有关隧道的概念性说明,请参见IPv6 隧道

Procedure如何手动配置 IPv6 over IPv4 隧道

本过程介绍如何设置从 IPv6 节点经由 IPv4 网络到达远程 IPv6 节点的隧道。

  1. 以主管理员或超级用户身份登录到本地隧道的端点。

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

  2. 创建 /etc/hostname6.ip.tun n 文件。

    其中 n 表示隧道编号,第一个隧道的编号从零开始。然后,按照下列子步骤来添加项:

    1. 添加隧道的源地址和目标地址。


      tsrc IPv4-source-address tdst IPv4-destination-address up
    2. (可选)为源 IPv6 地址和目标 IPv6 地址各添加一个逻辑接口。


      addif IPv6-source-address  IPv6-destination-address 
      

      如果希望为该接口自动配置地址,请忽略该子步骤,无需为隧道配置链路本地地址。

  3. 重新引导系统。

  4. 对隧道的另一端重复该任务。


示例 7–7 IPv6 over IPv4 手动隧道的 /etc/hostname6.ip.tun 文件中的项

此样例 /etc/hostname6.ip.tun 文件显示了为其手动配置全局源地址和全局目标地址的隧道。


tsrc 192.168.8.20 tdst 192.168.7.19 up
addif 2001:db8:3c4d:8::fe12:528 2001:db8:3c4d:7:a00:20ff:fe12:1234 up

Procedure如何手动配置 IPv6 over IPv6 隧道

本过程介绍如何设置从 IPv6 节点经由 IPv6 网络到达远程 IPv6 节点的隧道。

  1. 以主管理员或超级用户身份登录到本地隧道的端点。

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

  2. 创建 /etc/hostname6.ip6.tun n 文件。

    n 可使用值 0、1、2 等。然后,按照下列子步骤来添加项:

    1. 添加隧道的源地址和目标地址。


      tsrc IPv6-source-address tdst IPv6-destination-address
      IPv6-packet-source-address IPv6-packet-destination-address up
    2. (可选)为源 IPv6 地址和目标 IPv6 地址各添加一个逻辑接口。


      addif IPv6-source-address  IPv6-destination-address up

      如果希望为该接口自动配置地址,请忽略该步骤,无需为隧道配置链路本地地址。

  3. 重新引导系统。

  4. 对于隧道的另一端重复此过程。


示例 7–8 IPv6 over IPv6 隧道的 /etc/hostname6.ip6.tun 文件中的项

此示例显示了 IPv6 over IPv6 隧道的项。


tsrc 2001:db8:3c4d:22:20ff:0:fe72:668c tdst 2001:db8:3c4d:103:a00:20ff:fe9b:a1c3
fe80::4 fe80::61 up

Procedure如何配置 IPv4 over IPv6 隧道

本过程介绍如何配置从一台 IPv4 主机经由 IPv6 网络到达另一台 IPv4 主机的隧道。如果您的公司网络是异构网络,并且 IPv4 子网由 IPv6 子网分隔,则可以使用此过程。

  1. 以主管理员或超级用户身份登录到本地 IPv4 隧道的端点。

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

  2. 创建 /etc/hostname.ip6.tunn 文件。

    n 可使用值 0、1、2 等。然后,按照下列步骤来添加项:

    1. 添加隧道的源地址和目标地址。


      tsrc IPv6-source-address tdst IPv6-destination-address
      
    2. (可选)为源 IPv6 地址和目标 IPv6 地址各添加一个逻辑接口。


      addif IPv6-source-address  IPv6-destination-address up
  3. 重新引导本地主机。

  4. 对于隧道的另一端重复此过程。


示例 7–9 IPv4 over IPv6 隧道的 /etc/hostname6.ip6.tun 中的项

此示例显示了 IPv4 over IPv6 隧道的项。


tsrc 2001:db8:3c4d:114:a00:20ff:fe72:668c tdst 2001:db8:3c4d:103:a00:20ff:fe9b:a1c3
10.0.0.4 10.0.0.61 up

Procedure如何配置 6to4 隧道

如果 IPv6 网络需要与远程 IPv6 网络通信,请考虑使用 6to4 自动隧道。6to4 隧道的配置过程包括将边界路由器配置为 6to4 路由器。6to4 路由器可充当您的网络与远程 IPv6 网络上的端点路由器之间的 6to4 隧道的端点。

开始之前

在 IPv6 网络上配置 6to4 路由之前,必须已经完成以下操作:

  1. 以主管理员或超级用户身份登录到将来的 6to4 路由器。

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

  2. 通过创建 /etc/hostname6.ip.6to4tun0 文件在路由器上配置 6to4 伪接口。

    • 如果计划使用建议的约定(子网 ID=0,主机 ID=1),请针对 /etc/hostname6.ip.6to4tun0 使用短格式:


      tsrc IPv4-address up
    • 如果计划对子网 ID 和主机 ID 使用其他约定,请针对 /etc/hostname6.ip.6to4tun0 使用长格式:


      tsrc IPv4-address 2002:IPv4-address:subnet-ID:interface-ID:/64 up

    以下是 /etc/hostname6.ip.6to4tun0 的必需参数:

    tsrc

    表示此接口用作隧道源。

    IPv4-address

    以点分十进制格式指定在作为 6to4 伪接口的物理接口上配置的 IPv4 地址。

    其余参数是可选的。但是,如果指定了一个可选参数,则必须指定所有的可选参数。

    2002

    指定 6to4 前缀。

    IPv4–address

    以十六进制表示法指定伪接口的 IPv4 地址。

    subnet-ID

    以十六进制表示法指定除 0 以外的子网 ID。

    interface-ID

    指定除 1 以外的接口 ID。

    /64

    表示 6to4 前缀的长度为 64 位。

    up

    将 6to4 接口配置为 "up"。


    注 –

    网络上的两个 IPv6 隧道不能具有相同的源地址和目标地址。否则,包会被丢弃。如果 6to4 路由器还通过 atun 命令执行隧道连接,则可能会发生这种类型的事件。有关 atun 的信息,请参阅 tun(7M) 手册页。


  3. (可选)在路由器上创建其他 6to4 伪接口。

    每个将来的 6to4 伪接口都必须具有一个已配置的全局唯一的 IPv4 地址。

  4. 重新引导 6to4 路由器。

  5. 验证接口状态。


    # ifconfig ip.6to4tun0 inet6
            
    

    如果接口已正确配置,则将接收到以下类似输出:


    ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11
            inet tunnel src 111.222.33.44 
            tunnel hop limit 60 
            inet6 2002:6fde:212c:10:/64 
  6. 编辑 /etc/inet/ndpd.conf 文件以通告 6to4 路由。

    有关详细信息,请参阅 ndpd.conf(4) 手册页。

    1. 在第一行中指定要接收通告的子网。

      创建具有以下格式的 if 项:


      if subnet-interface AdvSendAdvertisements 1

      例如,要向连接到 hme0 接口的子网通告 6to4 路由,请将 subnet-interface 替换为 hme0


      if hme0 AdvSendAdvertisements 1
    2. 在通告的第二行中添加 6to4 前缀。

      创建具有以下格式的 prefix 项:


      prefix 2002:IPv4-address:subnet-ID::/64 subnet-interface
      
  7. 重新引导路由器。

    或者,可以向 /etc/inet/in.ndpd 守护进程发出 sighup,以便开始发送路由器通告。要接收 6to4 前缀的每个子网上的 IPv6 节点现在可以使用 6to4 派生地址自动进行配置。

  8. 将节点的新 6to4 派生地址添加到在 6to4 站点上使用的名称服务中。

    有关说明,请转至针对 IPv6 配置名称服务支持


示例 7–10 6to4 路由器配置(短形式)

下面举例说明了/etc/hostname6.ip.6to4tun0 的短形式:


# cat /etc/hostname6.ip.6to4tun0
tsrc 111.222.33.44 up


示例 7–11 6to4 路由器配置(长形式)

下面举例说明了 /etc/hostname6.ip.6to4tun0 的长形式:


# cat /etc/hostname6.ip.6to4tun0
tsrc 111.222.33.44 2002:6fde:212c:20:1/64 up


示例 7–12 显示 6to4 伪接口的 ifconfig 输出

以下样例说明了针对 6to4 伪接口的 ifconfig 命令的输出:


# ifconfig ip.6to4tun0 inet6
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11
        inet tunnel src 192.168.87.188
        tunnel hop limit 60 
        inet6 2002:c0a8:57bc::1/64 


示例 7–13 /etc/inet/ndpd.conf 中的 6to4 通告

以下样例 /etc/inet/ndpd.conf 文件将在两个子网上通告 6to4 路由:


if qfe0 AdvSendAdvertisements 1
prefix  2002:c0a8:57bc:10::/64 qfe0 

if qfe1 AdvSendAdvertisements 1
prefix  2002:c0a8:57bc:2::/64 qfe1

在 6to4 站点上配置多个路由器

对于多路由器站点,可能需要进一步配置 6to4 路由器后面的路由器以支持 6to4。如果站点使用 RIP,则必须在每个非 6to4 路由器上配置通往 6to4 路由器的静态路由。如果使用商业路由协议,则无需创建通往 6to4 路由器的静态路由。

Procedure如何配置通往 6to4 中继路由器的 6to4 隧道


注意 – 注意 –

由于 6to4 中继路由器存在重要的安全问题,因此,在缺省情况下,Oracle Solaris : 中会禁用 6to4 中继路由器支持。请参见建立通往 6to4 中继路由器的隧道时的安全问题


开始之前

在启用通往 6to4 中继路由器的隧道之前,必须先完成下列任务:

  1. 以主管理员或超级用户身份登录到 6to4 路由器。

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

  2. 使用以下格式之一启用通往 6to4 中继路由器的隧道:

    • 启用通往任意点传送 6to4 中继路由器的隧道。


      # /usr/sbin/6to4relay -e
      

      -e 选项可用于在 6to4 路由器和任意点传送 6to4 中继路由器之间设置隧道。任意点传送 6to4 中继路由器具有已知的 IPv4 地址 192.88.99.1。物理位置距离您的站点最近的任意点传送中继路由器将成为 6to4 隧道的端点。该中继路由器随后将在 6to4 站点和本机 IPv6 站点之间转发包。

      有关任意点传送 6to4 中继路由器的详细信息,请参阅 RFC 3068, "An Anycast Prefix for 6to4 Relay Routers"

    • 启用通往特定 6to4 中继路由器的隧道。


      # /usr/sbin/6to4relay -e -a relay-router-address
      

      -a 选项表示后面将跟有一个特定路由器地址。请将 relay-router-address 替换为用以启用隧道的特定 6to4 中继路由器的 IPv4 地址。

    除非删除 6to4 隧道的伪接口,否则通往 6to4 中继路由器的隧道将一直保持活动状态。

  3. 如果不再需要隧道,请删除通往 6to4 中继路由器的隧道:


    # /usr/sbin/6to4relay -d
    
  4. (可选)使通往 6to4 中继路由器的隧道在重新引导过程中持续保留。

    您的站点可能迫切要求通往 6to4 中继路由器的隧道在 6to4 路由器每次重新引导时都进行恢复。要支持此方案,必须执行下列操作:

    1. 编辑 /etc/default/inetinit 文件。

      需要修改的行位于该文件的末尾。

    2. ACCEPT6TO4RELAY=NO 行中的 "NO" 值更改为 "YES"。

    3. (可选)创建通往特定 6to4 中继路由器的隧道,该隧道在重新引导过程中持续保留。

      对于 RELAY6TO4ADDR 参数,请将 192.88.99.1 地址更改为要使用的 6to4 中继路由器的 IPv4 地址。


示例 7–14 获取有关 6to4 中继路由器支持的状态信息

可以使用 /usr/bin/6to4relay 命令来确定对 6to4 中继路由器是否启用了的支持。以下示例显示了禁用 6to4 中继路由器支持(此为 Oracle Solaris : 中的缺省设置)时的输出:


# /usr/sbin/6to4relay
6to4relay: 6to4 Relay Router communication support is disabled.

启用对 6to4 中继路由器的支持时,将接收到以下输出:


# /usr/sbin/6to4relay
6to4relay: 6to4 Relay Router communication support is enabled.
IPv4 remote address of Relay Router=192.88.99.1

针对 IPv6 配置名称服务支持

本节介绍如何将 DNS 和 NIS 名称服务配置为支持 IPv6 服务。


注 –

LDAP 无需执行特定于 IPv6 的配置任务即可支持 IPv6。


有关管理 DNS、NIS 和 LDAP 的全部详细信息,请参阅《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》

Procedure如何向 DNS 中添加 IPv6 地址

  1. 以主管理员或超级用户身份登录到主 DNS 服务器或辅助 DNS 服务器。

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

  2. 通过为每个启用了 IPv6 的节点添加 AAAA 记录,来编辑相应的 DNS 区域文件:


    host-name  IN   AAAA 	host-address
    
  3. 编辑 DNS 反向区域文件并添加 PTR(指针)记录:


    host-address IN   PTR   hostname
    

    有关 DNS 管理的详细信息,请参阅《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》


示例 7–15 DNS 反向区域文件

此示例显示了反向区域文件中的 IPv6 地址。


$ORIGIN	ip6.int.	
8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0 \
	IN		PTR		vallejo.Eng.apex.COM.

向 NIS 中添加 IPv6 地址

在 Solaris 10 11/06 及更早的版本中,已为 NIS 添加了两个映射: ipnodes.bynameipnodes.byaddr。这些映射中既包含 IPv4 主机名和地址之间的关联,又包含 IPv6 主机名和地址之间的关联。可识别 IPv6 的工具使用的是 ipnodes NIS 映射。hosts.bynamehosts.byaddr 映射中仅包含 IPv4 主机名和地址之间的关联。为了便于现有的应用程序使用,这些映射仍保持原样。对 ipnodes 映射的管理与对 hosts.bynamehosts.byaddr 映射的管理类似。对于 Solaris 10 11/06 而言,有一点很重要,在用 IPv4 地址更新主机映射时,ipnode 映射也会使用相同信息进行更新。


注 –

Oracle Solaris 10 的后续版本不再使用 ipnodes 映射。现在,ipnodes 映射的 IPv6 功能保留在 hosts 映射中。


有关管理 NIS 映射的说明,请参阅《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》中的第 5  章 “设置和配置 NIS 服务”

Procedure如何显示 IPv6 名称服务信息

可以使用 nslookup 命令显示 IPv6 名称服务信息。

  1. 使用您的用户帐户运行 nslookup 命令。


    % /usr/sbin/nslookup
    

    此时会出现缺省的服务器名称和地址,后跟 nslookup 命令的尖括号提示符。

  2. 在尖括号提示符下键入以下命令,查看有关特定主机的信息:


    >set q=any
    >host-name
    
  3. 键入以下命令,以便仅查看 AAAA 记录:


    >set q=AAAA
    hostname
    
  4. 键入 exit,退出 nslookup 命令。


示例 7–16 使用 nslookup 显示 IPv6 信息

此示例显示了 nslookup 在 IPv6 网络环境中的输出结果。


%  /usr/sbin/nslookup
Default Server:  dnsserve.local.com
Address:  10.10.50.85
> set q=AAAA
> host85
Server:  dnsserve.local.com
Address:  10.10.50.85

host85.local.com      IPv6 address = 2::9256:a00:fe12:528
> exit

Procedure如何验证 DNS IPv6 PTR 记录是否已正确更新

在此过程中,可使用 nslookup 命令显示 DNS IPv6 的 PTR 记录。

  1. 使用您的用户帐户运行 nslookup 命令。


    % /usr/sbin/nslookup
    

    此时会出现缺省的服务器名称和地址,后跟 nslookup 命令的尖括号提示符。

  2. 在尖括号提示符下键入以下命令,查看 PTR 记录:


    >set q=PTR
    
  3. 键入 exit,退出该命令。


示例 7–17 使用 nslookup 显示 PTR 记录

以下示例显示了使用 nslookup 命令时所显示的 PTR 记录。


%  /usr/sbin/nslookup
Default Server:  space1999.Eng.apex.COM
Address:  192.168.15.78
> set q=PTR
> 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int

8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int name = 
vallejo.ipv6.Eng.apex.COM
ip6.int nameserver = space1999.Eng.apex.COM
> exit

Procedure如何通过 NIS 显示 IPv6 信息

在此过程中,可使用 ypmatch 命令,通过 NIS 显示 IPv6 信息:

  1. 使用您的用户帐户键入以下命令,显示 NIS 中的 IPv6 地址:


    % ypmatch hostname hosts ipnodes.byname
    

    此时会显示有关指定 hostname 的信息。


    注 –

    Solaris 11/06 之后的 Oracle Solaris : 版本中不再包含 ipnodes 映射。现在,ipnodes 的 IPv6 功能保留在 hosts 映射中。



示例 7–18 ypmatch 命令输出的 IPv6 地址

对于 Solaris 10 11/06 及更早的版本,以下样例说明了针对 ipnodes.byname 数据库执行 ypmatch 操作的结果。


% ypmatch farhost hosts ipnodes.byname
2001:0db8:3c4d:15:a00:20ff:fe12:5286       farhost

Procedure如何显示与名称服务无关的 IPv6 信息

此过程仅适用于 Solaris 10 11/06 及更早的版本。对于后续版本,可以针对 hosts 数据库执行相同的操作。

  1. 使用您的用户帐户键入以下命令:


    % getent ipnodes hostname
    

    此时会显示有关指定 host-name 的信息。


示例 7–19 显示 ipnodes 数据库中的 IPv6 信息

以下样例说明了 getent 命令的输出:


% getent ipnodes vallejo

2001:0db8:8512:2:56:a00:fe87:9aba    myhost myhost
fe80::56:a00:fe87:9aba     myhost myhost