网络软件与操作系统软件一起安装。此时,必须将某些 IP 配置参数存储在适当文件中,以便可以在引导时读取它们。
网络配置过程涉及到创建或编辑网络配置文件。如何使配置信息可用于系统内核是有条件的。是否可用取决于这些文件是在本地存储(本地文件模式)还是从网络配置服务器获取(网络客户机模式)。
每个系统上每个网络接口的 IP 地址。
网络中每个系统的主机名。可以在本地文件或名称服务数据库中键入主机名。
系统所驻留的 NIS、LDAP 或 DNS 域名(如果适用)。
缺省路由器地址。如果在一个简单的网络拓扑中,每个网络仅连接有一个路由器,则可以提供此信息。如果路由器不运行路由协议,如路由器搜索 (Router Discovery, RDISC) 服务器协议或路由器信息协议 (Router Information Protocol, RIP),则也可以提供此信息。有关缺省路由器的更多信息,请参阅IPv4 网络上的包转发和路由。有关 Oracle Solaris : 支持的路由协议的列表,请参见表 5–1。
子网掩码(只有包含子网的网络需要)。
如果 Oracle Solaris : 安装程序检测到系统上有多个接口,则可以选择在安装过程中配置其他接口。有关完整说明,请参见《Oracle Solaris 10 9/10 安装指南:基本安装》。
本章包含有关创建和编辑本地配置文件的信息。有关使用名称服务数据库的信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。
使用此过程可以在以本地文件模式运行的主机上配置 TCP/IP。
承担主管理员角色或者成为超级用户
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
转到 /etc 目录。
验证在 /etc/nodename 文件中设置的主机名是否正确。
在 Oracle Solaris : 安装过程中指定系统的主机名时,该主机名将输入到 /etc/nodename 文件中。确保节点名称项是系统的正确主机名。
检验系统上的每个网络接口是否存在对应的 /etc/hostname.interface 文件。
有关 /etc/hostname. interface 文件的文件语法和基本信息,请参阅管理物理接口的基础知识。
Oracle Solaris : 安装程序要求您在安装过程中至少配置一个接口。自动配置的第一个接口将成为主网络接口。安装程序为主网络接口和在安装时选择配置的任何其他接口创建 /etc/hostname.interface 文件。
如果在安装过程中配置了其他接口,请验证每个接口是否有对应的 /etc/hostname.interface 文件。在 Oracle Solaris : 安装过程中,无需配置多个接口。但是,如果稍后要将更多接口添加到系统中,则必须手动配置它们。
有关手动配置接口的步骤,请参阅在 Solaris 10 3/05 中管理接口或如何在安装系统后配置物理接口(适用于从 Solaris 10 1/06 开始的发行版)。
对于 Solaris 10 11/06 和更早的发行版,验证 /etc/inet/ipnodes 文件中的项是否最新。
Oracle Solaris 10 安装程序会创建 /etc/inet/ipnodes 文件。此文件包含在安装过程中配置的每个接口的节点名称和 IPv4 地址以及 IPv6 地址(如果适用)。
对 /etc/inet/ipnodes 文件中的项使用以下格式:
IP-address node-name nicknames... |
nicknames 是接口的其他名称。
Oracle Solaris : 安装程序为主网络接口、回送地址和在安装过程中配置的任何其他接口(如果适用)创建项。
在 /etc/defaultdomain 文件中键入主机的全限定域名。
例如,假定主机 tenere 是域 deserts.worldwide.com 的一部分。此时应在 /etc/defaultdomain 中键入 deserts.worldwide.com。有关更多信息,请参见/etc/defaultdomain 文件。
在 /etc/defaultrouter 文件中键入路由器的名称。
有关此文件的信息,请参见/etc/defaultrouter 文件。
在 /etc/inet/hosts 文件中键入缺省路由器的名称及其 IP 地址。
还可以使用其他路由选项,如如何以网络客户机模式配置主机中所述。可以将这些选项应用于本地文件模式配置。
如果主机从 DHCP 服务器获取其 IP 地址,则不必指定网络掩码。
如果已经在此客户机所在的网络上设置 NIS 服务器,则可以将 netmask 信息添加到该服务器上的相应数据库中。
对于所有其他情况,请执行以下操作:
在 /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 |
在 /etc/nsswitch.conf 中更改网络掩码的查找顺序,以便首先搜索本地文件:
netmasks: files nis |
有关如何设置安装服务器和引导服务器的信息,请参见《Oracle Solaris 10 9/10 安装指南:基本安装》。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
转到预期的网络配置服务器的根 (/) 目录。
通过创建目录 /tftpboot 打开 in.tftpd 守护进程:
# mkdir /tftpboot |
此命令将系统配置为 TFTP、bootparams 和 RARP 服务器。
创建指向目录的符号链接。
# ln -s /tftpboot/. /tftpboot/tftpboot |
在 /etc/inetd.conf 文件中启用 tftp 行。
检查该项是否如下所示:
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot |
此行可防止 in.tftpd 检索除位于 /tftpboot 中的文件之外的任何文件。
编辑 hosts 数据库。
添加网络中每个客户机的主机名和 IP 地址。
编辑 ethers 数据库。
为网络中以网络客户机模式运行的每台主机创建项。
编辑 bootparams 数据库。
请参见bootparams 数据库。使用通配符项,或者为以网络客户机模式运行的每台主机创建项。
将 /etc/inetd.conf 项转换为服务管理工具 (Service Management Facility, SMF) 服务清单,并启用生成的服务:
# /usr/sbin/inetconv |
验证 in.tftpd 是否正常工作。
# svcs network/tftp/udp6 |
应该看到与如下所示类似的输出:
STATE STIME FMRI online 18:22:21 svc:/network/tftp/udp6:default |
in.tftpd 守护进程由服务管理工具管理。可以使用 svcadm 命令对 in.tftpd 执行管理操作(如启用、禁用或重新启动)。启动和重新启动此服务的职责已委托给 inetd。使用 inetadm 命令可以进行配置更改以及查看 in.tftpd 的配置信息。使用 svcs 命令可以查询服务的状态。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 18 章 “管理服务(概述)”。
网络客户机从网络配置服务器接收其配置信息。因此,在将主机配置为网络客户机之前,必须确保至少为网络设置了一个网络配置服务器。
在要以网络客户机模式配置的每台主机上,执行以下过程。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
如果存在这样的文件,则删除它。
删除 /etc/nodename 会导致系统使用 hostconfig 程序从网络配置服务器获取主机名、域名和路由器地址。请参见配置本地网络中的系统。
如果 /etc/hostname.interface 文件不存在,则创建它。
确保该文件为空。/etc/hostname.interface 文件为空会导致系统从网络配置服务器获取 IPv4 地址。
确保 /etc/inet/hosts 文件仅包含回送网络接口的 localhost 名称和 IP 地址。
# cat /etc/inet/hosts # Internet host table # 127.0.0.1 localhost |
有关更多信息,请参见回送地址。该文件不应包含本地主机(主网络接口)的 IP 地址和主机名。
如果存在这样的文件,则删除它。
hostconfig 程序自动设置域名。要覆盖由 hostconfig 设置的域名,请在 /etc/defaultdomain 文件中键入替代域名。
此过程说明如何在以前安装的系统上修改 IPv4 地址、主机名和其他网络参数。使用此过程可以修改服务器或联网独立系统的 IP 地址。此过程不适用于网络客户机或设备。这些步骤创建一个在重新引导后继续存在的配置。
此操作说明仅适用于更改主网络接口的 IPv4 地址。要为系统添加其他接口,请参阅如何在安装系统后配置物理接口。
在几乎所有情况下,以下步骤都使用传统的 IPv4 点分十进制表示法指定 IPv4 地址和子网掩码。另外,在此过程中也可以使用 CIDR 表示法在所有适用文件中指定 IPv4 地址。有关 CIDR 表示法的简介,请参见CIDR 格式的 IPv4 地址。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
(仅适用于 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 地址和关联名称创建项。
如果必须更改系统的主机名,请在 /etc/nodename 文件中修改主机名项。
在 /etc/inet/hosts 文件或等效 hosts 数据库中修改 IP 地址和主机名(如果适用)。
在 /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 数据库中。
如果已更改子网掩码,请在以下文件中修改子网项:
/etc/netmasks
(可选)/etc/hostname.interface
如果已更改子网地址,请在 /etc/defaultrouter 中将缺省路由器的 IP 地址更改为新子网缺省路由器的 IP 地址。
重新引导系统。
# reboot -- -r |
此示例说明如何更改已移动到其他子网的系统的以下网络参数:
主网络接口 eri0 的 IP 地址从 10.0.0.14 更改为 192.168.55.14。
主机名从 myhost 更改为 mynewhostname。
网络掩码从 255.0.0.0 更改为 255.255.255.0。
缺省路由器地址更改为 192.168.55.200。
查看系统的当前状态:
# 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 |
此示例说明如何仅为当前会话更改主机名、主网络接口的 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 |
此示例说明如何使用 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 地址,请参阅《系统管理指南:基本管理》和如何在安装系统后配置物理接口。