系统管理指南:IP 服务

第 5 章 配置 TCP/IP 网络服务和 IPv4 寻址(任务)

TCP/IP 网络管理包括两个阶段。第一个阶段是装配硬件。第二个阶段是配置实现 TCP/IP 协议的守护进程、文件和服务。

本章介绍如何在实现 IPv4 寻址和服务的网络上配置 TCP/IP。


注 –

本章中的许多任务同时适用于仅启用了 IPv4 的网络和启用了 IPv6 的网络。如果这两种寻址格式的配置任务是不同的,则 IPv4 配置步骤在本章中介绍。本章中的任务交叉引用第 7 章中的等效 IPv6 任务。


本章包含以下信息:

本章新增内容

在 Solaris 10 8/07 中,进行了以下更改:

配置 IPv4 网络之前(任务列表)

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

任务 

说明 

参考 

1. 设计网络拓扑。 

确定网络的物理布局。 

网络拓扑概述IPv4 自治系统拓扑

2. 从 ISP 或区域 Internet 注册机构 (Regional Internet Registry, RIR) 获取网络号。 

获取已注册的网络号,站点上的系统可以使用它与外部进行通信。 

设计 IPv4 寻址方案

3. 为网络规划 IPv4 寻址方案。如果适用,则包括子网寻址。 

将网络号用作寻址计划的基础。 

设计 IPv4 寻址方案

4. 根据网络拓扑来装配网络硬件。保证硬件正常工作。 

设置在网络拓扑设计中概述的系统、网络介质、路由器、交换机、集线器和网桥。 

硬件手册和网络拓扑概述

5. 将 IPv4 地址和主机名指定给网络中的所有系统。 

在 Oracle Solaris : 安装过程中或安装后,在适当的文件中指定 IPv4 地址。 

设计 IPv4 寻址方案如何更改 IPv4 地址和其他网络配置参数

6. 运行网络接口和路由器所需的配置软件(如果适用)。 

配置路由器和多宿主主机。 

为网络规划路由器配置 IPv4 路由器(以了解有关路由器的信息)。

7. 确定网络使用的名称服务或目录服务: NIS、LDAP、DNS 或本地文件。 

配置选定的名称服务和/或目录服务。 

《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》

8. 选择网络的域名(如果适用)。 

选择网络的域名,并向 InterNIC 注册。 

《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》

确定主机配置模式

作为网络管理员,您可以将 TCP/IP 配置为在主机和路由器上运行(如果适用)。可以将这些系统配置为从本地系统上的文件或者从网络中其他系统上的文件获取配置信息。需要以下配置信息:

从本地文件获取 TCP/IP 配置信息的系统在本地文件模式下运行。从远程网络服务器获取 TCP/IP 配置信息的系统在网络客户机模式下运行。

应该以本地文件模式运行的系统

要以本地文件模式运行,系统必须有 TCP/IP 配置文件的本地副本。TCP/IP 配置文件中介绍了这些文件。系统应有自己的磁盘,尽管严格说来此建议并非必需。

大多数服务器应该以本地文件模式运行。此要求涉及以下服务器:

此外,路由器应该以本地文件模式运行。

专门用作打印服务器的系统无需以本地文件模式运行。单台主机是否应该以本地文件模式运行,取决于网络的规模。

如果运行的网络规模很小,则在单台主机上维护这些文件所涉及的工作量是易于管理的。如果网络为数百台主机服务,则该任务将变得很困难,即使将网络划分为许多管理子域也是如此。因此,对于大型网络,使用本地文件模式通常效率较低。但是,由于路由器和服务器必须是独立的,因此应该以本地文件模式配置它们。

网络配置服务器

网络配置服务器是为以网络客户机模式配置的主机提供 TCP/IP 配置信息的服务器。这些服务器支持以下三种引导协议:

网络配置服务器还可以用作 NFS 文件服务器。

如果要将任何主机配置为网络客户机,还必须将网络上的至少一个系统配置为网络配置服务器。如果网络划分为多个子网,则包含网络客户机的每个子网必须配有至少一个网络配置服务器。

配置为网络客户机的系统

从网络配置服务器获取其配置信息的任何主机都以网络客户机模式运行。已配置为网络客户机的系统不需要 TCP/IP 配置文件的本地副本。

网络客户机模式简化了大型网络的管理。网络客户机模式最大限度地减小了在单台主机上执行的配置任务的数目。网络客户机模式保证网络中的所有系统都遵循相同的配置标准。

可以在所有类型的计算机上配置网络客户机模式。例如,可以在独立系统上配置网络客户机模式。

混合配置

配置并不仅限于纯本地文件模式或纯网络客户机模式。路由器和服务器应该始终以本地文件模式进行配置。对于主机,可以使用本地文件模式和网络客户机模式的任何组合。

IPv4 网络拓扑方案

图 5–1 显示了网络号为 192.9.200 的虚构网络上的主机。该网络有一个网络配置服务器,称为 sahara。主机 tenerenubian 有自己的磁盘并以本地文件模式运行。主机 faiyum 也有磁盘,但是此系统以网络客户机模式运行。

最后,系统 timbuktu 被配置为路由器。该系统包括两个网络接口。第一个接口名为 timbuktu。此接口属于网络 192.9.200。第二个接口名为 timbuktu-201。此接口属于网络 192.9.201。这两个网络都位于组织域 deserts.worldwide.com 中。该域将本地文件用作其名称服务。

图 5–1 IPv4 网络拓扑方案中的主机

该图显示一个样例网络,其中有一个为四台主机提供服务的网络服务器。

将子网添加到网络(任务列表)

如果要将不使用子网的网络更改为使用子网的网络,请执行以下任务列表中的任务。


注 –

本节中的信息仅适用于 IPv4 子网。有关规划 IPv6 子网的信息,请参阅准备网络拓扑以支持 IPv6为子网制定编号方案


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

任务 

说明 

参考 

1. 确定网络拓扑是否需要子网。 

确定新子网的拓扑,其中包括路由器和主机在子网中的位置。 

为网络规划路由器什么是子网划分?网络类

2. 将含有新子网号的 IP 地址指定给要成为子网成员的系统。 

在 Oracle Solaris : 安装过程中或稍后,在 /etc/hostname.interface 文件中配置使用新子网号的 IP 地址。

确定网络的 IP 地址寻址格式

3. 在子网中的所有预期系统上配置子网的网络掩码。 

如果要手动配置网络客户机,请修改 /etc/inet/netmasks 文件。或者,将网络掩码提供给 Oracle Solaris : 安装程序。

netmasks 数据库为 IPv4 地址创建网络掩码

4. 用子网中所有系统的新 IP 地址编辑网络数据库。 

在所有主机上修改 /etc/inet/hosts(对于 Solaris 10 11/06 和早期发行版,则修改 /etc/inet/ipnodes),以反映新主机地址。

hosts 数据库

5. 重新引导所有系统。 

   

网络配置任务列表

下表列出了从无子网的网络配置转变到使用子网的网络后还需要执行的额外任务。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。

任务 

说明 

参考 

以本地文件模式配置主机 

涉及到编辑 nodenamehostnamehostsdefaultdomaindefaultrouternetmasks 文件

如何以本地文件模式配置主机

设置网络配置服务器 

涉及到打开 in.tftp 守护进程以及编辑 hostsethersbootparams 文件

如何设置网络配置服务器

以网络客户机模式配置主机 

涉及到创建 hostname 文件、编辑 hosts 文件以及删除 nodenamedefaultdomain 文件(如果它们存在)

如何以网络客户机模式配置主机

为网络客户机指定路由策略 

涉及到确定在主机上使用静态路由还是动态路由。 

如何在单接口主机上启用静态路由如何在单接口主机上启用动态路由

修改现有网络配置  

涉及到更改主机名、IP 地址以及在安装时设置的或稍后配置的其他参数。 

如何更改 IPv4 地址和其他网络配置参数

配置本地网络中的系统

网络软件与操作系统软件一起安装。此时,必须将某些 IP 配置参数存储在适当文件中,以便可以在引导时读取它们。

网络配置过程涉及到创建或编辑网络配置文件。如何使配置信息可用于系统内核是有条件的。是否可用取决于这些文件是在本地存储(本地文件模式)还是从网络配置服务器获取(网络客户机模式)。

在网络配置过程中提供的参数如下:

如果 Oracle Solaris : 安装程序检测到系统上有多个接口,则可以选择在安装过程中配置其他接口。有关完整说明,请参见《Oracle Solaris 10 9/10 安装指南:基本安装》

本章包含有关创建和编辑本地配置文件的信息。有关使用名称服务数据库的信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》

Procedure如何以本地文件模式配置主机

使用此过程可以在以本地文件模式运行的主机上配置 TCP/IP。

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

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

  2. 转到 /etc 目录。

  3. 验证在 /etc/nodename 文件中设置的主机名是否正确。

    在 Oracle Solaris : 安装过程中指定系统的主机名时,该主机名将输入到 /etc/nodename 文件中。确保节点名称项是系统的正确主机名。

  4. 检验系统上的每个网络接口是否存在对应的 /etc/hostname.interface 文件。

    有关 /etc/hostname. interface 文件的文件语法和基本信息,请参阅管理物理接口的基础知识

    Oracle Solaris : 安装程序要求您在安装过程中至少配置一个接口。自动配置的第一个接口将成为主网络接口。安装程序为主网络接口和在安装时选择配置的任何其他接口创建 /etc/hostname.interface 文件。

    如果在安装过程中配置了其他接口,请验证每个接口是否有对应的 /etc/hostname.interface 文件。在 Oracle Solaris : 安装过程中,无需配置多个接口。但是,如果稍后要将更多接口添加到系统中,则必须手动配置它们。

    有关手动配置接口的步骤,请参阅在 Solaris 10 3/05 中管理接口如何在安装系统后配置物理接口(适用于从 Solaris 10 1/06 开始的发行版)。

  5. 对于 Solaris 10 11/06 和更早的发行版,验证 /etc/inet/ipnodes 文件中的项是否最新。

    Oracle Solaris 10 安装程序会创建 /etc/inet/ipnodes 文件。此文件包含在安装过程中配置的每个接口的节点名称和 IPv4 地址以及 IPv6 地址(如果适用)。

    /etc/inet/ipnodes 文件中的项使用以下格式:


    IP-address node-name nicknames...
    

    nicknames 是接口的其他名称。

  6. 验证 /etc/inet/hosts 文件中的项是否最新。

    Oracle Solaris : 安装程序为主网络接口、回送地址和在安装过程中配置的任何其他接口(如果适用)创建项。

    1. 确保 /etc/inet/hosts 中的现有项是最新的。

    2. (可选)为安装后添加到本地主机的任何网络接口添加 IP 地址和对应名称。

    3. (可选)如果 /usr 文件系统是 NFS 挂载的,则添加文件服务器的一个或多个 IP 地址。

  7. /etc/defaultdomain 文件中键入主机的全限定域名。

    例如,假定主机 tenere 是域 deserts.worldwide.com 的一部分。此时应在 /etc/defaultdomain 中键入 deserts.worldwide.com。有关更多信息,请参见/etc/defaultdomain 文件

  8. /etc/defaultrouter 文件中键入路由器的名称。

    有关此文件的信息,请参见/etc/defaultrouter 文件

  9. /etc/inet/hosts 文件中键入缺省路由器的名称及其 IP 地址。

    还可以使用其他路由选项,如如何以网络客户机模式配置主机中所述。可以将这些选项应用于本地文件模式配置。

  10. 为网络添加网络掩码(如果适用):

    • 如果主机从 DHCP 服务器获取其 IP 地址,则不必指定网络掩码。

    • 如果已经在此客户机所在的网络上设置 NIS 服务器,则可以将 netmask 信息添加到该服务器上的相应数据库中。

    • 对于所有其他情况,请执行以下操作:

    1. /etc/inet/netmasks 文件中键入网络号和网络掩码。

      使用以下格式:


      network-number netmask

      例如,对于 C 类网络号 192.168.83,请键入:


      192.168.83.0    255.255.255.0
      

      对于 CIDR 地址,将网络前缀转换为等效的用点分十进制表示法表示的项。网络前缀及其点分十进制等效项可以在表 2–3 中找到。例如,使用以下内容可以表示 CIDR 网络前缀 192.168.3.0/22


      192.168.3.0 255.255.252.0
    2. /etc/nsswitch.conf 中更改网络掩码的查找顺序,以便首先搜索本地文件:


      netmasks:   files nis
  11. 重新引导系统。

Procedure如何设置网络配置服务器

有关如何设置安装服务器和引导服务器的信息,请参见《Oracle Solaris 10 9/10 安装指南:基本安装》

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

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

  2. 转到预期的网络配置服务器的根 (/) 目录。

  3. 通过创建目录 /tftpboot 打开 in.tftpd 守护进程:


    # mkdir /tftpboot
    

    此命令将系统配置为 TFTP、bootparams 和 RARP 服务器。

  4. 创建指向目录的符号链接。


    # ln -s /tftpboot/. /tftpboot/tftpboot
    
  5. /etc/inetd.conf 文件中启用 tftp 行。

    检查该项是否如下所示:


    tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot

    此行可防止 in.tftpd 检索除位于 /tftpboot 中的文件之外的任何文件。

  6. 编辑 hosts 数据库。

    添加网络中每个客户机的主机名和 IP 地址。

  7. 编辑 ethers 数据库。

    为网络中以网络客户机模式运行的每台主机创建项。

  8. 编辑 bootparams 数据库。

    请参见bootparams 数据库。使用通配符项,或者为以网络客户机模式运行的每台主机创建项。

  9. /etc/inetd.conf 项转换为服务管理工具 (Service Management Facility, SMF) 服务清单,并启用生成的服务:


    # /usr/sbin/inetconv
    
  10. 验证 in.tftpd 是否正常工作。


    # svcs network/tftp/udp6
    

    应该看到与如下所示类似的输出:


    STATE          STIME    FMRI
    online         18:22:21 svc:/network/tftp/udp6:default
管理 in.tftpd 守护进程

in.tftpd 守护进程由服务管理工具管理。可以使用 svcadm 命令对 in.tftpd 执行管理操作(如启用、禁用或重新启动)。启动和重新启动此服务的职责已委托给 inetd。使用 inetadm 命令可以进行配置更改以及查看 in.tftpd 的配置信息。使用 svcs 命令可以查询服务的状态。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 18  章 “管理服务(概述)”

配置网络客户机

网络客户机从网络配置服务器接收其配置信息。因此,在将主机配置为网络客户机之前,必须确保至少为网络设置了一个网络配置服务器。

Procedure如何以网络客户机模式配置主机

在要以网络客户机模式配置的每台主机上,执行以下过程。

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

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

  2. /etc 目录中搜索 nodename 文件。

    如果存在这样的文件,则删除它。

    删除 /etc/nodename 会导致系统使用 hostconfig 程序从网络配置服务器获取主机名、域名和路由器地址。请参见配置本地网络中的系统

  3. 如果 /etc/hostname.interface 文件不存在,则创建它。

    确保该文件为空。/etc/hostname.interface 文件为空会导致系统从网络配置服务器获取 IPv4 地址。

  4. 确保 /etc/inet/hosts 文件仅包含回送网络接口的 localhost 名称和 IP 地址。


    # cat /etc/inet/hosts
    # Internet host table
    #
    127.0.0.1       localhost

    IPv4 回送接口的 IP 地址为 127.0.0.1.

    有关更多信息,请参见回送地址。该文件不应包含本地主机(主网络接口)的 IP 地址和主机名。

  5. 检查是否存在 /etc/defaultdomain 文件。

    如果存在这样的文件,则删除它。

    hostconfig 程序自动设置域名。要覆盖由 hostconfig 设置的域名,请在 /etc/defaultdomain 文件中键入替代域名。

  6. 确保客户机的 /etc/nsswitch.conf 文件中的搜索路径反映网络的名称服务需求。

Procedure如何更改 IPv4 地址和其他网络配置参数

此过程说明如何在以前安装的系统上修改 IPv4 地址、主机名和其他网络参数。使用此过程可以修改服务器或联网独立系统的 IP 地址。此过程不适用于网络客户机或设备。这些步骤创建一个在重新引导后继续存在的配置。


注 –

此操作说明仅适用于更改主网络接口的 IPv4 地址。要为系统添加其他接口,请参阅如何在安装系统后配置物理接口


在几乎所有情况下,以下步骤都使用传统的 IPv4 点分十进制表示法指定 IPv4 地址和子网掩码。另外,在此过程中也可以使用 CIDR 表示法在所有适用文件中指定 IPv4 地址。有关 CIDR 表示法的简介,请参见CIDR 格式的 IPv4 地址

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

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

  2. (仅适用于 Solaris 10 11/06 及早期发行版)在 /etc/inet/ipnodes 文件或等效 ipnodes 数据库中修改 IP 地址。

    对于要添加到系统的每个 IP 地址,使用以下语法:


    IP-address host-name, nicknames
    IP-address interface-name, nicknames
    

    第一项应该包含主网络接口的 IP 地址和系统的主机名。可以选择添加主机名的别名。将其他物理接口添加到系统时,在 /etc/inet/ipnodes 中为这些接口的 IP 地址和关联名称创建项。

  3. 如果必须更改系统的主机名,请在 /etc/nodename 文件中修改主机名项。

  4. /etc/inet/hosts 文件或等效 hosts 数据库中修改 IP 地址和主机名(如果适用)。

  5. /etc/hostname.interface 文件中修改主网络接口的 IP 地址。

    可以在 /etc/hostname.interface 文件中将以下任何项用作主网络接口的项:

    • 用传统的点分十进制格式表示的 IPv4 地址

      使用以下语法:


      IPv4 address subnet mask
      

      网络掩码项是可选的。如果不指定它,则假定为缺省网络掩码。

      以下是一个示例:


      # vi hostname.eri0
      10.0.2.5 netmask 255.0.0.0
      
    • 用 CIDR 表示法表示的 IPv4 地址(如果适合网络配置)。


      IPv4 address/network prefix
      

      以下是一个示例:


      # vi hostname.eri0
      10.0.2.5/8
      

      CIDR 前缀指定适合 IPv4 地址的网络掩码。例如,上面的 /8 指示网络掩码 255.0.0.0

    • 主机名。

      要在 /etc/hostname.interface 文件中使用系统的主机名,请确保主机名和关联的 IPv4 地址也在 hosts 数据库中。

  6. 如果已更改子网掩码,请在以下文件中修改子网项:

    • /etc/netmasks

    • (可选)/etc/hostname.interface

  7. 如果已更改子网地址,请在 /etc/defaultrouter 中将缺省路由器的 IP 地址更改为新子网缺省路由器的 IP 地址。

  8. 重新引导系统。


    # reboot -- -r
    

示例 5–1 修改要在重新引导后继续存在的 IPv4 地址和其他网络参数

此示例说明如何更改已移动到其他子网的系统的以下网络参数:

查看系统的当前状态:


# hostname
myhost
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 

接下来,在适当的文件中更改系统的主机名和 eri0 的 IP 地址:


# vi /etc/nodename
mynewhostname

In Solaris 10 11/06 and earlier Solaris 10 releases only, do the following:
# vi /etc/inet/ipnodes
192.168.55.14   mynewhostname      #moved system to 192.168.55 net

# vi /etc/inet/hosts
#
# Internet host table
#
127.0.0.1       localhost
192.168.55.14   mynewhostname        loghost
# vi /etc/hostname.eri0
192.168.55.14   netmask  255.255.255.0

最后,更改缺省路由器的网络掩码和 IP 地址。


# vi /etc/netmasks.
.
.
192.168.55.0    255.255.255.0
# vi /etc/defaultrouter
192.168.55.200        #moved system to 192.168.55 net
#

进行这些更改后,重新引导系统。


# reboot -- -r

验证在重新引导后是否保持刚设置的配置:


# hostname
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.55.14 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 


示例 5–2 为当前会话更改 IP 地址和主机名

此示例说明如何仅为当前会话更改主机名、主网络接口的 IP 地址和子网掩码。如果重新引导系统,则系统会恢复到其以前的 IP 地址和子网掩码。主网络接口 eri0 的 IP 地址从 10.0.0.14 更改为 192.168.34.100


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.34.100 netmask 255.255.255.0 broadcast + up
# vi /etc/nodename
mynewhostname

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.34.100 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname


示例 5–3 使用 CIDR 表示法为当前会话更改 IPv4 地址

此示例说明如何使用 CIDR 表示法,仅为当前会话更改主机名和 IP 地址。如果重新引导系统,则系统会恢复到其以前的 IP 地址和子网掩码。主网络接口 eri0 的 IP 地址从 10.0.0.14 更改为 192.168.6.25/27


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.6.25/27 broadcast + up
# vi /etc/nodename
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.06.25 netmask ffffffe0 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname

对 IPv4 地址使用 CIDR 表示法时,不必指定网络掩码。ifconfig 使用网络前缀标识来确定网络掩码。例如,对于 192.168.6.0/27 网络,ifconfig 设置网络掩码 ffffffe0。如果使用了更常见的 /24 前缀标识,则生成的网络掩码是 ffffff00。使用 /24 前缀标识相当于在配置新 IP 地址时为 ifconfig 指定网络掩码 255.255.255.0


另请参见

要更改除主网络接口之外的接口的 IP 地址,请参阅《系统管理指南:基本管理》如何在安装系统后配置物理接口

IPv4 网络上的包转发和路由

本节包含说明如何在 IPv4 网络上为路由器和主机配置转发和路由的过程和示例。

包转发是在网络上的系统之间共享信息的基本方法。包在源接口和目标接口(通常位于两个不同的系统上)之间进行传送。当您发出命令或将消息发送到非本地接口时,系统将那些包转发到本地网络上。然后,具有包头中所指定目标 IP 地址的接口将从本地网络检索包。如果目标地址不在本地网络上,则将包转发到下一个相邻网络或跃点。缺省情况下,在安装 Oracle Solaris : 时自动配置包转发。

路由是系统确定要向何处发送包的过程。系统上的路由协议“搜索”本地网络中的其他系统。当源系统和目标系统位于同一本地网络中时,包在它们之间传送的路径称为直接路由。如果包必须至少传送到源系统之外的一个跃点,则源系统和目标系统之间的路径称为间接路由。路由协议获知目标接口的路径,并将有关已知路由的数据保留在系统的路由表中。

路由器是特别配置的系统,具有用于将路由器连接到多个本地网络的多个物理接口。因此,路由器可以将包转发到主 LAN 之外,而不管路由器是否运行路由协议。有关路由器如何转发包的更多信息,请参阅为网络规划路由器

路由协议处理系统上的路由活动,并通过与其他主机交换路由信息,维护到远程网络的已知路由。路由器和主机都可以运行路由协议。主机上的路由协议与其他路由器和主机上的路由选择守护进程进行通信。这些协议有助于主机确定向何处转发包。启用网络接口后,系统自动与路由选择守护进程进行通信。这些守护进程监视网络中的路由器,并将路由器的地址通告本地网络中的所有主机。某些路由协议(虽然不是全部)还维护可以用于衡量路由性能的统计信息。与包转发不同,必须在 Oracle Solaris : 系统上显式配置路由。

本节介绍在 IPv4 路由器和主机上管理包转发和路由的任务。有关在启用了 IPv6 的网络中路由的信息,请参阅配置 IPv6 路由器

Oracle Solaris : 支持的路由协议

路由协议分为内部网关协议 (interior gateway protocol, IGP)、外部网关协议 (exterior gateway protocol, EGP) 或这两者的组合。内部网关协议通过常见的管理控制在网络中的路由器之间交换路由信息。在图 5–3 所示的网络拓扑中,路由器运行 IGP 以交换路由信息。通过外部网关协议,将本地互联网络连接到外部网络的路由器可以与外部网络中的其他路由器交换信息。例如,将公司网络连接到 ISP 的路由器运行 EGP,以便与 ISP 上的相应路由器交换路由信息。边界网关协议 (Border Gateway Protocol, BGP) 是常见的 EGP,用于在不同的组织和 IGP 之间传送路由信息。

下表提供有关 Oracle Solaris : 路由协议以及每个协议的关联文档的位置的信息。

表 5–1 Oracle Solaris : 路由协议

协议 

关联的守护进程 

说明 

参考 

路由信息协议 (Routing Information Protocol, RIP) 

in.routed

用于路由 IPv4 包和维护路由表的 IGP 

如何配置 IPv4 路由器

Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 路由器搜索 

in.routed

由主机用来搜索网络上存在的路由器 

如何在单接口主机上启用静态路由如何在单接口主机上启用动态路由

下一代路由信息协议 (Routing Information Protocol next generation, RIPng) 

in.ripngd

用于路由 IPv6 包和维护路由表的 IGP 

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

相邻节点搜索 (Neighbor Discovery, ND) 协议 

in.ndpd

通告存在 IPv6 路由器并搜索网络中存在的 IPv6 主机 

配置 IPv6 接口

Oracle Solaris 10 也支持开放源代码 Quagga 路由协议套件。这些协议可以从 SFW 集合磁盘获取,尽管它们不是 Oracle Solaris : 主发行版的一部分。下表列出了 Quagga 协议:

表 5–2 OpenSolaris Quagga 协议

协议 

守护进程  

说明 

RIP 协议 

ripd

路由 IPv4 包并将其路由表通告相邻节点的 IPv4 距离向量 IGP。 

RIPng 

ripngd

IPv6 距离向量 IGP。路由 IPv6 包和维护路由表。 

开放最短路径优先 (Open Shortest Path First, OSPF) 协议 

ospfd

用于包路由和高可用性联网的 IPv4 链路状态 IGP 

边界网关协议 (Border Gateway Protocol, BGP) 

bgpd

用于在管理域之间路由的 IPv4 和 IPv6 EGP。 

下图显示使用 Quagga 路由协议的自治系统:

图 5–2 运行 Quagga 协议的公司网络

此图显示运行 Quagga 路由协议的公司网络。上下文对该图进行了说明。

该图显示了一个公司网络自治系统,该系统已划分为两个路由域:A 和 B。路由域是具有统一的路由策略的互联网络(出于管理目的或由于域使用单个路由协议)。图中的两个域都运行 Quagga 协议套件中的路由协议。

路由域 A 是通过单个 OSPF 域 ID 管理的 OSPF 域。此域中的所有系统都将 OSPF 作为其内部网关协议运行。除了内部主机和路由器外,域 A 还包括两个边界路由器。

边界路由器 R1 将公司网络连接到 ISP 并最终连接到 Internet。为便于公司网络和外界之间的通信,R1 通过其面向外部的网络接口运行 BGP。边界路由器 R5 将域 A 与域 B 连接在一起。管理域 B 上的所有系统时,都将 RIP 作为其内部网关协议。因此,边界路由器 R5 在面向域 A 的接口上必须运行 OSPF,在面向域 B 的接口上必须运行 RIP。

有关 Quagga 协议的更多信息,请参阅 Open Solaris Quagga。有关这些协议的配置过程,请转到 quagga 文档

IPv4 自治系统拓扑

具有多个路由器和网络的站点通常将其网络拓扑作为单个路由域或自治系统 (autonomous system, AS) 进行管理。下图显示了一个将被视为小型 AS 的典型网络拓扑。在贯穿本节的示例中引用的就是此拓扑。

图 5–3 具有多个 IPv4 路由器的自治系统

在下面的上下文中,对自治系统的此拓扑图进行了说明。

该图显示了一个已划分为三个本地网络(即 10.0.5.0172.20.1.0192.168.5)的 AS。四个路由器分担包转发和路由职责。AS 包括以下类型的系统:

配置 IPv4 路由器

本节包含配置 IPv4 路由器的过程和示例。要配置启用了 IPv6 的路由器,请参阅如何配置启用了 IPv6 的路由器

由于路由器提供两个或多个网络之间的接口,因此必须为路由器的每个物理网络接口指定唯一名称和 IP 地址。这样,每个路由器都有与其主网络接口关联的主机名和 IP 地址,以及其他每个网络接口的至少一个唯一名称和 IP 地址。

也可以使用以下过程将只有一个物理接口的系统(缺省情况下为主机)配置为路由器。如果单接口系统将要用作 PPP 链路上的一个端点,则可以将它配置为路由器,如《系统管理指南:网络服务》中的“规划拨号 PPP 链路”所述。


注 –

可以在 Oracle Solaris : 系统安装过程中配置路由器的所有接口。有关说明,请参见《Oracle Solaris 10 9/10 安装指南:基本安装》


Procedure如何配置 IPv4 路由器

以下说明假定要在安装后配置路由器的接口。

开始之前

在网络中物理安装路由器后,将路由器配置为以本地文件模式运行,如如何以本地文件模式配置主机中所述。此配置可确保即使网络配置服务器关闭路由器也会引导。

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

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

  2. 从 Solaris 10 1/06 发行版开始,使用 dladm show-link 命令确定在路由器上物理安装了哪些接口。


    # dladm show-link
    

    dladm show-link 的以下示例输出指示,在系统上以物理方式提供了具有四个接口的 qfe NIC 和两个 bge 接口。


    qfe0             type: legacy    mtu: 1500       device: qfe0
    qfe1             type: legacy    mtu: 1500       device: qfe1
    qfe2             type: legacy    mtu: 1500       device: qfe0
    qfe3             type: legacy    mtu: 1500       device: qfe1
    bge0             type: non-vlan  mtu: 1500       device: bge0
    bge1             type: non-vlan  mtu: 1500       device: bge1
  3. 查看在安装过程中配置和检测了路由器上的哪些接口。


    # ifconfig -a
    

    ifconfig -a 的以下示例输出显示在安装过程中配置了接口 qfe0。此接口位于 172.16.0.0 网络中。尚未配置 qfe NIC 上的其他接口(即 qfe1 - qfe3)以及 bge 接口。


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffff0000 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
             
  4. 配置并检测另一个接口。


    # ifconfig interface plumb up
    

    例如,对于 qfe1,请键入:


    # ifconfig qfe1 plumb up
    

    注 –

    使用 ifconfig 命令显式配置的接口在重新引导后不会继续存在。


  5. 将 IPv4 地址和网络掩码指定给接口。


    注意 – 注意 –

    可以将 IPv4 路由器配置为通过 DHCP 接收其 IP 地址,但是此建议仅适用于非常有经验的 DHCP 系统管理员。



    # ifconfig interface IPv4-address netmask+netmask
    

    例如,要将 IP 地址 192.168.84.3 指定给 qfe1,请执行以下任一操作:

    • 如果使用传统的 IPv4 表示法,请键入以下内容:


      # ifconfig qfe1 192.168.84.3 netmask + 255.255.255.0
      
    • 如果使用 CIDR 表示法,请键入以下内容:


      # ifconfig qfe1 192.168.84.3/24
      

      前缀 /24 自动将 255.255.255.0 网络掩码指定给 qfe1。有关 CIDR 前缀及其点分十进制网络掩码等效项的表,请参阅图 2–2

  6. (可选)要确保在重新引导后接口配置继续存在,请为其他每个物理接口创建 /etc/hostname.interface 文件。

    例如,请创建 /etc/hostname.qfe1/etc/hostname.qfe2 文件。然后在 /etc/hostname.qfe1 文件中键入主机名 timbuktu,在 /etc/hostname.qfe2 中键入主机名 timbuktu-201。有关配置单个接口的更多信息,请参阅如何在安装系统后配置物理接口

    在创建此文件后,务必进行配置重新引导:


    # reboot -- -r
    
  7. /etc/inet/hosts 文件中添加每个接口的主机名和 IP 地址。

    例如:


    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    192.168.200.9      gobi
    192.168.200.10     mojave
    192.168.200.110    saltlake
    192.168.200.12     chilean

    接口 timbuktutimbuktu-201 位于同一系统上。请注意,timbuktu-201 的网络地址与 timbuktu 的网络接口不同。之所以不同,是因为网络 192.168.201 的物理网络介质已连接到 timbuktu-201 网络接口,而网络 192.168.200 的介质已连接到 timbuktu 接口。

  8. (仅适用于 Solaris 10 11/06 及早期 Solaris 10 发行版)将每个新接口的 IP 地址和主机名添加到 /etc/inet/ipnodes 文件或等效 ipnodes 数据库中。

    例如:


    vi /etc/inet/ipnodes
    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    
  9. 如果路由器连接到划分为多个子网的任何网络,请将网络号和网络掩码添加到 /etc/inet/netmasks 文件。

    • 对于传统的 IPv4 地址表示法(如 192.168.83.0),应键入:


      192.168.83.0    255.255.255.0
    • 对于 CIDR 地址,在 /etc/inet/netmask 文件的项中使用前缀的点分十进制版本。网络前缀及其点分十进制等效项可以在图 2–2 中找到。例如,可以使用 /etc/netmasks 中的以下项来表示 CIDR 网络前缀 192.168.3.0/22


      192.168.3.0 255.255.252.0
  10. 在路由器上启用 IPv4 包转发。

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

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


      # routeadm -e ipv4-forwarding -u
      
    • 使用以下服务管理工具 (service management facility, SMF) 命令:


      # svcadm enable ipv4-forwarding
      

    此时,路由器可以将包转发到本地网络之外。路由器还支持静态路由(可以将路由手动添加到路由表的过程)。如果计划在此系统上使用静态路由,则路由器配置已完成。但是,需要在系统路由表中维护路由。有关添加路由的信息,请参见配置路由route(1M) 手册页。

  11. (可选)启动路由协议。

    路由选择守护进程 /usr/sbin/in.routed 自动更新路由表(该过程称为动态路由)。使用以下任一方法打开缺省 IPv4 路由协议:

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


      # routeadm -e ipv4-routing -u
      
    • 使用以下 SMF 命令启动路由协议,如 RIP。


      # svcadm enable route:default
      

      in.routed 守护进程关联的 SMF FMRI 是 svc:/network/routing/route

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


示例 5–4 配置网络的缺省路由器

此示例说明如何升级具有多个接口的系统以使其成为缺省路由器。目标是使图 5–3 所示的路由器 2 成为网络 172.20.1.0 的缺省路由器。路由器 2 包含两个有线网络连接,一个是与网络 172.20.1.0 的连接,另一个是与网络 10.0.5.0 的连接。该示例假定路由器在本地文件模式下工作,如如何以本地文件模式配置主机中所述。

成为超级用户或承担等效角色后,可以确定系统接口的状态。从 Solaris 10 1/06 开始,可以使用 dladm 命令,如下所示:


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0 
bge0            type: non-vlan  mtu: 1500       device: bge0 
bge1            type: non-vlan  mtu: 1500       device: bge1

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.20.10.100
        ether 8:0:20:c1:1b:c6 

dladm show-link 的输出指示有三个链路在系统上是可用的。仅检测了 ce0 接口。进行缺省路由器配置首先应将 bge0 接口物理连接到 10.0.5.0 网络。然后,检测该接口,并使其在重新引导后继续存在。


# ifconfig bge0 plumb up
# ifconfig bge0 10.0.5.10
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.255.255.255
        ether 8:0:20:c1:1b:c6 
bge0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.5.10 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:e5:95:c4
 # vi /etc/hostname.bge0
10.0.5.10
255.0.0.0

使用重新配置引导命令,重新引导系统:


# reboot -- -r

使用有关新检测的接口和它所连接到的网络的信息,继续配置以下网络数据库:


# vi /etc/inet/hosts
127.0.0.1       localhost
172.20.1.10        router2        #interface for network 172.20.1
10.0.5.10          router2-out    #interface for network 10.0.5
# vi /etc/inet/netmasks
172.20.1.0    255.255.0.0
10.0.5.0      255.0.0.0

最后,使用 SMF 启用包转发,再启用 in.routed 路由选择守护进程。


# svcadm enable ipv4-forwarding
# svcadm enable route:default

现在,在路由器 2 上启用了 IPv4 包转发和通过 RIP 的动态路由。但是,网络 172.20.1.0 的缺省路由器配置尚未完成。您需要执行以下操作:


路由表和路由类型

路由器和主机都维护路由表。每个系统上的路由选择守护进程都使用所有的已知路由来更新该表。在将包转发到本地网络之前,系统的内核读取路由表。路由表列出了系统知晓的网络的 IP 地址,包括系统本地缺省网络的 IP 地址。该表还列出了每个已知网络的网关系统的 IP 地址。网关是一个系统,它可以接收传出包并将它们转发到距本地网络一个跃点的位置。以下是一个仅启用了 IPv4 的网络中某系统的简单路由表:


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG       1    532   ce0
224.0.0.0            10.0.5.100           U        1      0   bge0
10.0.0.0             10.0.5.100           U        1      0   bge0
127.0.0.1            127.0.0.1            UH       1     57   lo0

可以在 Oracle Solaris : 系统上配置以下两种类型的路由:静态路由和动态路由。可以在单个系统上配置其中一种或两种路由类型。实现动态路由的系统依赖路由协议(如用于 IPv4 网络的 RIP 和用于 IPv6 网络的 RIPng)来维护其路由表。仅运行静态路由的系统不依赖于路由协议来获取路由信息及更新路由表。相反,您必须通过 route 命令手动维护系统的已知路由。有关完整的详细信息,请参阅 route(1M) 手册页。

为本地网络或自治系统配置路由时,请考虑在特定的路由器和主机上支持哪种路由类型。

下表显示了不同的路由类型,以及各个路由类型分别最适用于哪种网络方案。

路由类型 

最适用于 

静态 

小型网络、从缺省路由器获取其路由的主机,以及仅需要知晓接下来几个跃点上一个或两个路由器的缺省路由器。

动态 

较大的互联网络、具有多个主机的本地网络中的路由器以及大型自治系统上的主机。动态路由是大多数网络中系统的最佳选择。

组合的静态和动态路由 

将静态路由网络和动态路由网络连接在一起的路由器,以及将内部自治系统与外部网络连接在一起的边界路由器。将系统上的静态路由和动态路由组合在一起是一种常见的做法。 

图 5–3 所示的 AS 将静态路由和动态路由组合在一起。

配置路由

要为 IPv4 网络实现动态路由,请使用 routeadmsvcadm 命令启动 in.routed 路由选择守护进程。有关说明,请参见如何配置 IPv4 路由器。动态路由是大多数网络和自治系统的首选策略。但是,您的网络拓扑或您网络中的特定系统可能需要静态路由。在该情况下,必须手动编辑系统路由表,向网关反映已知路由。接下来的过程说明如何添加静态路由。


注 –

到同一目标的两个路由不会自动导致系统进行负载平衡或故障转移。如果需要这些功能,请使用 IPMP,如第 30 章中所述。


Procedure如何将静态路由添加到路由表

  1. 查看路由表的当前状态。

    使用常规用户帐户运行以下形式的 netstat 命令:


    % netstat -rn
    

    输出将与如下所示类似:


    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.5.125        192.168.5.10          U      1   5879   ipge0
    224.0.0.0            198.168.5.10          U      1  0       ipge0
    default              192.168.5.10          UG     1  91908
    127.0.0.1            127.0.0.1             UH     1  811302   lo0
  2. 承担主管理员角色或成为超级用户。

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

  3. (可选)刷新路由表中的现有项。


    # route flush
    
  4. 添加一个在系统重新引导后继续存在的路由。


    # route -p add -net network-address -gateway gateway-address
    
    -p

    创建一个在系统重新引导后必须继续存在的路由。如果希望路由仅对当前会话有效,则不要使用 -p 选项。

    add

    指示将要添加以下路由。

    -net network-address

    指定路由将转到具有 network-address 中地址的网络。

    -gateway gateway-address

    指示指定路由的网关系统具有 IP 地址 gateway-address


示例 5–5 将静态路由添加到路由表

以下示例说明如何将静态路由添加到系统。该系统是路由器 2,即Figure&;5–3 所示的 图 5–3 网络的缺省路由器。在示例 5–4 中,为路由器 2 配置了动态路由。为了更好地充当网络 172.20.1.0 中主机的缺省路由器,路由器 2 还需要到 AS 的边界路由器 10.0.5.150 的静态路由。

要查看路由器 2 上的路由表,请执行以下操作:


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

路由表指示路由器 2 知晓的两个路由。缺省路由将路由器 2 的 172.20.1.10 接口用作其网关。在路由器 2 上运行的 in.routed 守护进程搜索到第二个路由 10.0.5.0。此路由的网关是 IP 地址为 10.0.5.20 的路由器 1。

要将另一个路由添加到网络 10.0.5.0(它将其网关作为边界路由器),请执行以下操作:


# route -p add -net 10.0.5.0/24 -gateway 10.0.5.150/24
add net 10.0.5.0: gateway 10.0.5.150

现在,路由表具有边界路由器(其 IP 地址为 10.0.5.150/24)的路由。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
10.0.5.0             10.0.5.150           U         1    375 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

配置多宿主主机

在 Oracle Solaris : 中,有多个接口的系统被视为多宿主主机。多宿主主机不转发 IP 包。但是,您可以将多宿主主机配置为运行路由协议。通常,可以将以下类型的系统配置为多宿主主机:

Procedure如何创建多宿主主机

  1. 在预期的多宿主主机上,承担主管理员角色或成为超级用户。

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

  2. 配置并检测在 Oracle Solaris : 安装过程中没有配置的其他每个网络接口。

    请参阅如何在安装系统后配置物理接口

  3. 验证是否未在多宿主主机上启用 IP 转发。


    # routeadm
     
    

    不带选项的 routeadm 命令可报告路由选择守护进程的状态。routeadm 的以下输出说明已启用 IPv4 转发:


       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              disabled
                IPv6 forwarding   disabled             disabled
    
                Routing services   "route:default ripng:default"
  4. 如果在系统上启用了包转发,请禁用它。

    使用以下命令之一:

    • 对于 routeadm 命令,请键入以下内容:


      # routeadm -d ipv4-forwarding -u
      
    • 要使用 SMF,请键入以下内容:


      # svcadm disable ipv4-forwarding
      
  5. (可选)为多宿主主机打开动态路由。

    使用以下命令之一打开 in.routed 守护进程:

    • 对于 routeadm 命令,请键入以下内容:


      # routeadm -e ipv4-routing -u
      
    • 要使用 SMF,请键入以下内容:


      # svcadm enable route:default
      

示例 5–6 配置多宿主主机

以下示例说明如何配置图 5–3 所示的多宿主主机。在该示例中,系统具有主机名 hostc。此主机具有两个接口,这两个接口都已连接到网络 192.168.5.0

要开始操作,请显示系统接口的状态。


# dladm show-link
hme0           type: legacy    mtu: 1500       device: hme0 
qfe0           type: legacy    mtu: 1500       device: qfe0 
qfe1           type: legacy    mtu: 1500       device: qfe1 
qfe2           type: legacy    mtu: 1500       device: qfe2 
qfe3           type: legacy    mtu: 1500       device: qfe3
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
      inet 192.168.5.82 netmask ff000000 broadcast 192.255.255.255
      ether 8:0:20:c1:1b:c6 
 

dladm show-link 命令报告,hostc 具有两个接口,共有五个可能的链路。但是,仅检测到 hme0。要将 hostc 配置为多宿主主机,必须在 qfe NIC 上添加 qfe0 或其他链路。首先,请将 qfe0 接口物理连接到 192.168.5.0 网络。然后,检测 qfe0 接口,并使其在重新引导后继续存在。


# ifconfig qf0 plumb up
# ifconfig qfe0 192.168.5.85
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.82 netmask ff0000 broadcast 192.255.255.255
        ether 8:0:20:c1:1b:c6 
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.85 netmask ff000000 broadcast 192.255.255.255
        ether 8:0:20:e1:3b:c4
 # vi /etc/hostname.qfe0
192.168.5.85
255.0.0.0

使用重新配置命令,重新引导系统:


# reboot -- -r

接下来,将 qfe0 接口添加到 hosts 数据库:


# vi /etc/inet/hosts
127.0.0.1           localhost
192.168.5.82        host3    #primary network interface for host3
192.168.5.85        host3-2  #second interface

然后,在 host3 上检查包转发和路由的状态:


# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

routeadm 命令报告,当前打开了通过 in.routed 守护进程的动态路由和包转发。但是,您将需要关闭包转发:


# svcadm disable ipv4-forwarding

也可以使用 routeadm 命令(如如何创建多宿主主机所示)关闭包转发。禁用包转发后,host3 将成为多宿主主机。


为单接口系统配置路由

单接口主机需要实现某种形式的路由。如果主机要从一个或多个本地缺省路由器获取其路由,则必须将该主机配置为使用静态路由。否则,建议对该主机使用动态路由。以下过程包含启用这两种路由类型的说明。

Procedure如何在单接口主机上启用静态路由

以下过程可在单接口主机上启用静态路由。使用静态路由的主机不运行动态路由协议(如 RIP)。相反,主机必须依赖于缺省路由器的服务来获取路由信息。IPv4 自治系统拓扑图显示了几个缺省路由器及其客户机主机。如果在安装特定主机时提供了缺省路由器的名称,则该主机已经配置为使用静态路由。


注 –

也可以使用以下过程在多宿主主机上配置静态路由。


有关 /etc/defaultrouter 文件的信息,请参见/etc/defaultrouter 文件。有关静态路由和路由表的信息,请参阅路由表和路由类型

  1. 在单接口主机上,承担主管理员角色或成为超级用户。

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

  2. 验证主机上是否存在 /etc/defaultrouter 文件。


    # cd /etc
    # ls | grep defaultrouter
    
  3. 打开文本编辑器以创建或修改 /etc/defaultrouter 文件。

  4. 添加缺省路由器的项。


    # vi  /etc/defaultrouter
    router-IP
           
    

    其中 router-IP 指示供主机使用的缺省路由器的 IP 地址。

  5. 验证路由和包转发没有在主机上运行。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   disabled            disabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  6. 在本地 /etc/inet/hosts 文件中添加缺省路由器的项。

    有关配置 /etc/inet/hosts 的信息,请参阅如何更改 IPv4 地址和其他网络配置参数


示例 5–7 为单接口主机配置缺省路由器和静态路由

以下示例说明如何为Figure&;5–3 所示的网络 172.20.1.0 中的单接口主机 图 5–3 配置静态路由。hostb 需要将路由器 2 用作其缺省路由器。

首先,请以超级用户身份登录到 hostb 或承担等效角色。然后,确定主机上是否存在 /etc/defaultrouter 文件:


# cd /etc
# ls | grep defaultrouter

如果没有来自 grep 的响应,则表示您需要创建 /etc/defaultrouter 文件。


# vi /etc/defaultrouter
172.20.1.10

/etc/defaultrouter 文件中的项是连接到 172.20.1.0 网络的路由器 2 上接口的 IP 地址。接下来,验证主机当前启用包转发还是启用路由。


# routeadm
   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

已对此特定主机启用包转发。可按如下所示将其禁用:


# svcadm disable ipv4-forwarding

最后,确保主机的 /etc/inet/hosts 文件包含新缺省路由器的项。


# vi /etc/inet/hosts
127.0.0.1           localhost
172.20.1.18         host2    #primary network interface for host2
172.20.1.10         router2  #default router for host2

Procedure如何在单接口主机上启用动态路由

动态路由是管理主机上路由的最简单的方法。使用动态路由的主机运行由 IPv4 的 in.routed 守护进程或 IPv6 的 in.ripngd 守护进程提供的路由协议。使用接下来的过程在单接口主机上启用 IPv4 动态路由。有关动态路由的更多信息,请参阅IPv4 网络上的包转发和路由

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

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

  2. 验证是否存在 /etc/defaultrouter 文件。


    # cd /etc
    # ls | grep defaultrouter
    
  3. 如果存在 /etc/defaultrouter,则删除在该文件中找到的所有项。

    /etc/defaultrouter 文件为空会强制主机使用动态路由。

  4. 验证是否在主机上启用了包转发和路由。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              enabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  5. 如果启用了包转发,请将其关闭

    使用以下命令之一:

    • 对于 routeadm 命令,请键入以下内容:


      # routeadm -d ipv4-forwarding -u
      
    • 要使用 SMF,请键入以下内容:


      # svcadm disable ipv4-forwarding
      
  6. 在主机上启用路由协议。

    使用以下命令之一:

    • 对于 routeadm 命令,请键入以下内容:


      # routeadm -e ipv4-routing -u
      
    • 要使用 SMF,请键入以下内容:


      # svcadm enable route:default
      

    现在已启用 IPv4 动态路由。主机的路由表是由 in.routed 守护进程动态维护的。


示例 5–8 在单接口主机上运行动态路由

以下示例说明如何为图 5–3 所示的网络 192.168.5.0 中的单接口主机 hosta 配置动态路由。hosta 当前将路由器 1 用作其缺省路由器。但是,hosta 现在需要运行动态路由。

首先,请以超级用户身份登录到 hosta 或承担等效角色。然后,确定主机上是否存在 /etc/defaultrouter 文件:


# cd /etc
# ls | grep defaultrouter
defaultrouter

grep 的响应指示 hosta 存在相应的 /etc/defaultrouter 文件。


# vi /etc/defaultrouter
192.168.5.10

该文件具有项 192.168.5.10(这是路由器 1 的 IP 地址)。请删除此项以启用静态路由。接下来,需要验证是否已对该主机启用了包转发和路由。


# routeadm   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   disabled             disabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

对于 hosta,路由和包转发均处于关闭状态。启用路由以完成 hosta 的动态路由配置,如下所示:


# svcadm enable route:default

监视和修改传输层服务

传输层协议 TCP、SCTP 和 UDP 是标准 Oracle Solaris : 软件包的一部分。这些协议通常无需进行干预即可正常运行。但是,站点上的具体情况可能要求您记录或修改通过传输层协议运行的服务。因而,您必须使用服务管理工具 (Service Management Facility, SMF) 修改这些服务的配置文件,《系统管理指南:基本管理》中的第 18  章 “管理服务(概述)”对此工具进行了介绍。

inetd 守护进程负责在系统引导时启动标准 Internet 服务。这些服务包括将 TCP、SCTP 或 UDP 用作其传输层协议的应用程序。可以使用 SMF 命令修改现有的 Internet 服务或添加新服务。有关 inetd 的更多信息,请参阅inetd Internet 服务守护进程

涉及传输层协议的操作包括:

有关 inetd 守护进程的详细信息,请参阅 inetd(1M) 手册页。

Procedure如何记录所有传入 TCP 连接的 IP 地址

  1. 在本地系统上,承担网络管理角色或成为超级用户。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 对于 inetd 管理的所有服务,将 TCP 跟踪设置为“启用”。


    # inetadm -M tcp_trace=TRUE
    

Procedure如何添加使用 SCTP 协议的服务

SCTP 传输协议以与 TCP 类似的方式为应用层协议提供服务。但是,SCTP 允许单方或双方为多宿主系统的两个系统进行通信。SCTP 连接称为关联。在关联中,应用程序将要传输的数据分为一个或多个消息流,即多流化。SCTP 连接可以转到有多个 IP 地址的端点,这对电话应用程序尤其重要。如果站点使用 IP 过滤器或 IPsec,则 SCTP 的多宿主功能是出于安全考虑。sctp(7P) 手册页介绍了其中一些安全方面的考虑。

缺省情况下,SCTP 包括在 Oracle Solaris : 中,且不需要其他配置。但是,可能需要显式配置某些应用层服务才能使用 SCTP。echodiscard 就是这样的应用程序。下一过程说明如何添加使用 SCTP 一对一样式套接字的回显服务。


注 –

也可以使用以下过程为 TCP 和 UDP 传输层协议添加服务。


以下任务说明如何将 inetd 守护进程管理的 SCTP inet 服务添加到 SMF 系统信息库。然后,该任务说明如何使用服务管理工具 (Service Management Facility, SMF) 命令添加该服务。

开始之前

执行以下过程之前,请为服务创建清单文件。该过程以 echo 服务的清单 echo.sctp.xml 为例。

  1. 使用拥有系统文件的写入权限的用户帐户,登录到本地系统。

  2. 编辑 /etc/services 文件并添加新服务的定义。

    对于服务定义,使用以下语法。


    service-name |port/protocol | aliases
    
  3. 添加新服务。

    转到存储服务清单的目录,然后键入以下内容:


    # cd dir-name
    # svccfg import service-manifest-name
    

    有关 svccfg 的完整语法,请参阅 svccfg(1M) 手册页。

    假定您希望使用当前位于 service.dir 目录中的清单 echo.sctp.xml 添加新的 SCTP echo 服务,应键入以下内容:


    # cd service.dir
    # svccfg import echo.sctp.xml
    
  4. 验证是否已添加服务清单:


    # svcs FMRI
    

    对于 FMRI 参数,使用服务清单的故障管理资源标识符 (Fault Managed Resource Identifier, FMRI)。例如,对于 SCTP echo 服务,应使用以下命令:


    # svcs svc:/network/echo:sctp_stream
    

    输出应该与如下所示类似:


    	STATE          STIME    FMRI
    disabled       16:17:00 svc:/network/echo:sctp_stream

    有关 svcs 命令的详细信息,请参阅 svcs(1) 手册页。

    该输出指明,新的服务清单当前处于禁用状态。

  5. 列出服务的属性以确定是否必须进行修改。


    # inetadm -l FMRI
    

    有关 inetadm 命令的详细信息,请参阅 inetadm(1M) 手册页。

    例如,对于 SCTP echo 服务,应键入以下内容:


    # inetadm -l svc:/network/echo:sctp_stream
    SCOPE    NAME=VALUE
    	         name="echo"
    	         endpoint_type="stream"
    	         proto="sctp"
    	         isrpc=FALSE
    	         wait=FALSE
    	         exec="/usr/lib/inet/in.echod -s"
             .
             .
             default  tcp_trace=FALSE
           	default  tcp_wrappers=FALSE
  6. 启用新服务:


    # inetadm -e FMRI
    
  7. 验证服务是否已启用:

    例如,对于新的 echo 服务,应键入以下内容:


    # inetadm | grep sctp_stream
    .
    .
    	enabled   online         svc:/network/echo:sctp_stream

示例 5–9 添加使用 SCTP 传输协议的服务

以下示例给出要使用的命令以及使回显服务使用 SCTP 传输层协议所需的文件项。


$ cat /etc/services
.
.
echo            7/tcp
echo            7/udp
echo            7/sctp

# cd service.dir

	# svccfg import echo.sctp.xml

# svcs network/echo*
	STATE          STIME    FMRI
	disabled       15:46:44 svc:/network/echo:dgram
	disabled       15:46:44 svc:/network/echo:stream
	disabled       16:17:00 svc:/network/echo:sctp_stream

# inetadm -l svc:/network/echo:sctp_stream
	SCOPE    NAME=VALUE
	         name="echo"
	         endpoint_type="stream"
	         proto="sctp"
	         isrpc=FALSE
	         wait=FALSE
	         exec="/usr/lib/inet/in.echod -s"
	         user="root"
	default  bind_addr=""
	default  bind_fail_max=-1
	default  bind_fail_interval=-1
	default  max_con_rate=-1
	default  max_copies=-1
	default  con_rate_offline=-1
	default  failrate_cnt=40
	default  failrate_interval=60
	default  inherit_env=TRUE
	default  tcp_trace=FALSE
	default  tcp_wrappers=FALSE

# inetadm -e svc:/network/echo:sctp_stream

# inetadm | grep echo
	disabled  disabled       svc:/network/echo:stream
	disabled  disabled       svc:/network/echo:dgram
	enabled   online         svc:/network/echo:sctp_stream

Procedure如何使用 TCP 包装控制对 TCP 服务的访问

tcpd 程序可实现 TCP 包装。TCP 包装介于守护进程和传入的服务请求之间,为诸如 ftpd 之类的服务守护进程提供了安全措施。TCP 包装记录成功的和不成功的连接尝试。此外,TCP 包装可以提供访问控制,根据发出请求的位置允许或拒绝连接。可以使用 TCP 包装保护诸如 SSH、Telnet 和 FTP 之类的守护进程。sendmail 应用程序也可以使用 TCP 包装,如《系统管理指南:网络服务》中的“sendmail 版本 8.12 支持 TCP 包装”所述。

  1. 在本地系统上,承担主管理员角色或成为超级用户。

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

  2. 将 TCP 包装设置为“启用”。


    # inetadm -M tcp_wrappers=TRUE
    
  3. 配置 TCP 包装访问控制策略,如 hosts_access(3) 手册页中所述。

    此手册页可以在 SFW CD-ROM(它与 Oracle Solaris : CD-ROM 一起打包)上的 /usr/sfw/man 目录中找到。

在 Solaris 10 3/05 中管理接口

本节介绍用于管理物理接口的以下任务:

本节新增内容

本节包含有关配置接口的信息,仅适用于 Solaris 10 3/05 OS 用户。如果使用的是对 Oracle Solaris 10 的更新,请参阅Chapter 6, 管理网络接口(任务)。有关 Oracle Solaris : 新增功能的完整列表以及 Oracle Solaris : 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》

在 Solaris 10 3/05 中配置物理接口

基于 Oracle Solaris : 的系统通常有以下两种类型的接口:物理接口和逻辑接口。物理接口由驱动程序和其中插入网络介质(如以太网电缆)的连接器组成。逻辑接口是在现有物理接口上逻辑配置的接口,如为隧道配置的接口或使用 IPv6 地址配置的接口。本节介绍如何在安装后配置物理接口。对于需要逻辑接口的功能,相关任务附带有配置逻辑接口的说明,例如如何手动配置 IPv6 over IPv4 隧道

物理接口的类型包括内置到系统中的接口和另行购买的接口。每个接口都驻留在网络接口卡 (network interface card, NIC) 上。

内置 NIC 在购买系统时已经存在于系统上。内置 NIC 上的接口的一个示例是主网络接口,如 eri0hme0。必须在安装时配置系统的主网络接口。

诸如 erihme 之类的 NIC 只有一个接口。但是,许多品牌的 NIC 有多个接口。多接口 NIC(如 qfe 卡)有四个接口 (qfe0qfe3)。Oracle Solaris : 安装程序在安装时会检测存在的所有接口,并询问您是否要配置这些接口。可以在引导时或之后配置这些接口。


注 –

NIC 也称为网络适配器


除了内置 NIC 外,还可以向系统中添加另行购买的 NIC。按照制造商的说明物理安装另行购买的 NIC。然后,需要配置 NIC 上的接口,以便可以使用这些接口传递数据流。

以下是安装后在系统上配置其他接口的原因:

Procedure如何在安装后添加物理接口(仅适用于 Solaris 10 3/05)

开始之前

确定要用于附加接口的 IPv4 地址。

要配置的物理接口必须存在于系统上。有关安装另行购买的 NIC 硬件的信息,请参阅 NIC 附带的制造商说明。

下一过程假定在物理安装新接口后执行了重新配置引导。


注 –

下一过程仅适用于 Solaris 10 3/05 OS 用户。如果使用的是对 Oracle Solaris 10 的更新,请参阅如何在安装系统后配置物理接口


  1. 在要配置接口的系统上,承担主管理员角色或成为超级用户。

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

  2. 配置并检测每个接口。


    # ifconfig interface plumb up
    

    例如,对于 qfe0,请键入:


    # ifconfig qfe0 plumb up
    

    注 –

    使用 ifconfig 命令显式配置的接口在重新引导后不会继续存在。


  3. 将 IPv4 地址和网络掩码指定给接口。


    # ifconfig interface IPv4-address netmask+netmask
    

    例如,对于 qfe0,请键入:


    # ifconfig qfe0 10.0.0.32 netmask + 255.255.255.0
    
  4. 验证新配置的接口是否已检测并配置,或者是否带有 "UP" 标志。


    # ifconfig -a
    

    检查所显示的每个接口的状态行。确保状态行上的输出包含 UP 标志,例如:


    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
  5. (可选)要使接口配置在重新引导后继续存在,请执行以下步骤:

    1. 为要配置的每个接口创建 /etc/hostname.interface 文件。

      例如,要添加 qfe0 接口,请创建以下文件:


      # vi /etc/hostname.qfe0
      
    2. 编辑 /etc/hostname.interface 文件。

      至少将接口的 IPv4 地址添加到该文件。还可以将网络掩码和其他配置信息添加到该文件。


      注 –

      有关如何将 IPv6 地址添加到接口,请参阅修改主机和服务器的 IPv6 接口配置


    3. 将新接口的项添加到 /etc/inet/hosts 文件中。

    4. 执行重新配置引导。


      # reboot -- -r
      
    5. 验证是否已配置在 /etc/hostname. interface 文件中创建的接口。


      # ifconfig -a
      

示例 5–10 在安装系统后配置接口

以下示例说明如何添加两个接口 qfe0qfe1。这些接口已连接到主网络接口 hme0 所在的同一网络。请注意,在重新引导系统之前,此接口配置一直存在。有关说明如何使接口配置在重新引导后继续存在的示例,请参见示例 6–2。但是,从 Solaris 10 1/06 OS 开始,在该示例中使用的 dladm 命令才可用。


# ifconfig qfe0 plumb up
# ifconfig qfe1 plumb up
# ifconfig qfe0 10.0.0.32 netmask 255.0.0.0
# ifconfig qfe1 10.0.0.33 netmask 255.0.0.0

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 10.0.0.32 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1d 
qfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 10.0.0.33 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1e 

另请参见

Procedure如何删除物理接口(仅适用于 Solaris 10 3/05)


注 –

下一过程仅适用于 Solaris 10 3/05 OS 用户。如果使用的是对 Oracle Solaris 10 的更新,请参阅如何删除物理接口


  1. 在要删除接口的系统上,承担主管理员角色或成为超级用户。

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

  2. 删除物理接口。

    使用 ifconfig 命令的以下格式:


    # ifconfig interfacedown unplumb
    

    例如,以下命令将删除接口 eri1


    # ifconfig eri1 down unplumb
    

配置 VLAN(仅适用于 Solaris 10 3/05)


注 –

本节包含有关配置 VLAN 的信息,仅适用于 Solaris 10 3/05 OS 用户。如果使用的是对 Oracle Solaris 10 的更新,请参阅管理虚拟局域网


虚拟局域网 (Virtual local area network, VLAN) 通常用于将网络用户组划分到可管理的广播域中、创建工作组的逻辑段以及在每个逻辑段之间实施安全策略。通过适配器上的多个 VLAN,有单个适配器的服务器可以在逻辑上存在于多个 IP 子网中。缺省情况下,可以为服务器上每个可识别 VLAN 的适配器定义 512 个 VLAN。

如果网络不需要多个 VLAN,则可以使用缺省配置,在这种情况下不需要进行进一步的配置。

有关 VLAN 的概述,请参阅VLAN 拓扑概述

VLAN 可以按照各种条件进行创建,但是必须为每个 VLAN 指定 VLAN 标记或 VLAN ID (VID)。VID 是标识唯一 VLAN 的 12 位标识符,介于 1 和 4094 之间。对于每个网络接口(例如 ce0ce1ce2 等),可以创建 512 个可能的 VLAN。由于通常使用 IP 子网,因此在设置 VLAN 网络接口时应使用 IP 子网。这意味着为物理网络接口的 VLAN 接口指定的每个 VID 都属于不同的子网。

标记以太网帧要求将标记头添加到帧。该头紧邻目标 MAC 地址和源 MAC 地址之后插入。标记头由两字节的以太网标记协议标识符 (Ethernet Tag Protocol Identifier, TPID, 0x8100) 和两字节的标记控制信息 (Tag Control Information, TCI) 组成。下图显示以太网标记头的格式。

图 5–4 以太网标记头的格式

该图显示以太网标记头的布局,如上文所述。

Procedure如何配置静态 VLAN(仅适用于 Solaris 10 3/05)


注 –

此过程包含有关配置 VLAN 的信息,仅适用于 Solaris 10 3/05 OS 用户。如果使用的是对 Oracle Solaris 10 的更新,请参阅如何配置 VLAN


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

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

  2. 确定正在系统上使用的接口的类型。

    系统上的网络适配器可能不是用字母 ce 来表示(这是 VLAN 所要求的)。


    # ifconfig -a
    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>
    mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
    mtu 1500 index 2
            inet 129.156.200.77 netmask ffffff00 broadcast
    129.156.200.255
  3. 对于将为服务器上的每个适配器配置的每个 VLAN,创建一个 hostname.cenum 文件(对于 IPv6,为 hostname6.cenum 文件)。

    使用以下同时包括 VID 和物理连接点 (physical point of attachment, PPA) 的命名格式:

    VLAN 逻辑 PPA = 1000 * VID + Device PPA ce123000 = 1000*123 + 0

    例如: hostname.ce123000

    VLAN 逻辑 PPA = 1000 * VID + Device PPA ce11000 = 1000*11 + 0

    例如: hostname.ce11000

    此格式将可以在 /etc/path_to_inst 文件中配置的 PPA(实例)最大数限制为 1000。

    例如,在装有 Sun 千兆位以太网/P 3.0 适配器(它有实例 0,该实例属于 VID 分别为 123 和 224 的两个 VLAN)的服务器上,可以将 ce123000ce224000 分别用作两个 VLAN PPA。

  4. 配置 VLAN 虚拟设备:

    例如,可以使用 ifconfig 的以下示例:


    # ifconfig ce123000 plumb up
    # ifconfig ce224000 plumb up
    

    在有 VLAN 设备 ce123000ce224000 的系统上,ifconfig -a 的输出应该与如下所示类似:


    # ifconfig -a
    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 129.144.131.91 netmask ffffff00 broadcast 129.144.131.255
            ether 8:0:20:a4:4f:b8 
    ce123000: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
            inet 199.199.123.3 netmask ffffff00 broadcast 199.199.123.255
            ether 8:0:20:a4:4f:b8 
    ce224000: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
            inet 199.199.224.3 netmask ffffff00 broadcast 199.199.224.255
            ether 8:0:20:a4:4f:b8 
  5. 在交换机上,将 VLAN 标记和 VLAN 端口设置为与在服务器上设置的 VLAN 一致。

    使用步骤 4 中的示例,可以设置交换机上的 VLAN 端口 123 和 224 或者 VLAN 端口 10 和 11。

    有关设置 VLAN 标记和端口的特定说明,请参阅交换机附带的文档。