系统管理指南:IP 服务

管理缺省地址选择

Oracle Solaris : 可以让单个接口拥有多个 IP 地址。例如,使用网络多路径 (network multipathing, IPMP) 之类的技术,可以将多个网络接口卡 (network interface card, NIC) 连接到同一 IP 链路层。此链路可以具有一个或多个 IP 地址。此外,启用了 IPv6 的系统上的接口具有一个链路本地 IPv6 地址,至少具有一个 IPv6 路由地址,并且至少一个接口具有 IPv4 地址。

当系统启动事务时,应用程序便会对 getaddrinfo 套接字发出调用。getaddrinfo 将搜索可能在目标系统上使用的地址。然后,内核将设置此列表的优先级,以便找到包的最佳目标。此过程称为目标地址排序。然后,如果确定了包的最佳目标地址,Oracle Solaris : 内核将选择相应的源地址格式。此过程称为地址选择。有关目标地址排序的更多信息,请参见 getaddrinfo(3SOCKET) 手册页。

仅启用了 IPv4 的系统和启用了双栈 IPv4/IPv6 的系统必须执行缺省地址选择。大多数情况下,不需要更改缺省地址选择机制。但是,您可能需要更改地址格式的优先级,以便支持 IPMP 或首选使用 6to4 地址格式等。

Procedure如何管理 IPv6 地址选择策略表

以下过程介绍如何修改地址选择策略表。有关 IPv6 缺省地址选择的概念性信息,请参阅ipaddrsel 命令


注意 – 注意 –

如果不是出于下一个任务中提到的某些原因,请不要更改 IPv6 地址选择策略表。策略表构造不正确可能会导致网络出现问题。请确保保存了策略表的副本(如下一过程所示)。


  1. 承担主管理员角色,或成为超级用户。

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

  2. 查看当前的 IPv6 地址选择策略表。


    # ipaddrsel
    # Prefix                  Precedence Label
    ::1/128                           50 Loopback
    ::/0                              40 Default
    2002::/16                         30 6to4
    ::/96                             20 IPv4_Compatible
    ::ffff:0.0.0.0/96                 10 IPv4
  3. 备份缺省地址策略表的副本。


    # cp /etc/inet/ipaddrsel.conf /etc/inet/ipaddrsel.conf.orig
    
  4. 使用文本编辑器在 /etc/inet/ipaddrsel.conf 中添加自定义信息。

    针对 /etc/inet/ipaddrsel 中的各项使用以下语法:


    prefix/prefix-length precedence label [# comment ] 
    

    下面是一些常见的对策略表的修改:

    • 为 6to4 地址指定最高优先级。


      2002::/16                         50 6to4
      ::1/128                           45 Loopback

      6to4 地址格式现在具有最高优先级 50,而先前优先级为 50 的回送现在的优先级变为 45。其他地址格式保持不变。

    • 指定与特定目标地址进行通信的特定源地址。


      ::1/128                           50 Loopback
      2001:1111:1111::1/128             40 ClientNet
      2001:2222:2222::/48               40 ClientNet
      ::/0                              40 Default

      对于仅有一个物理接口的主机,此特定项非常有用。此处,2001:1111:1111::1/128 是发往网络 2001:2222:2222::/48 中目标的所有包的首选源地址。优先级 40 使得源地址 2001:1111:1111::1/128 的优先级高于为接口配置的其他地址格式。

    • IPv4 地址优先于 IPv6 地址。


      ::ffff:0.0.0.0/96                 60 IPv4
      ::1/128                           50 Loopback
      .
      .

      IPv4 格式 ::ffff:0.0.0.0/96 的优先级已从缺省的 10 更改为 60,这是表中的最高优先级。

  5. 将已修改的策略表加载到内核。


    ipaddrsel -f /etc/inet/ipaddrsel.conf
    
  6. 如果已修改的策略表存在问题,请恢复缺省 IPv6 地址选择策略表。


    # ipaddrsel -d
    

Procedure如何仅修改当前会话的 IPv6 地址选择表

编辑 /etc/inet/ipaddrsel.conf 文件时,所做的任何修改即使在重新引导系统之后也都会保留下来。如果希望已修改的策略表仅存在于当前会话中,请执行以下过程。

  1. 承担主管理员角色,或成为超级用户。

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

  2. /etc/inet/ipaddrsel 的内容复制到 filename,其中 filename 是您选择的文件名称。


    # cp /etc/inet/ipaddrsel filename
    
  3. 根据需要在 filename 中编辑策略表。

  4. 将已修改的策略表加载到内核。


    # ipaddrsel -f filename
    

    内核将使用新的策略表,直到重新引导系统。