系统管理指南:IP 服务

配置本地网络中的系统

网络软件与操作系统软件一起安装。此时,必须将某些 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 地址,请参阅《系统管理指南:基本管理》如何在安装系统后配置物理接口