Java Solaris 加入 SDN 参与讨论 我的社区 注册说明

BigAdmin 系统管理门户网站
Feature Article
BigAdmin 专题文章:Solaris 平台上的网络配置

Solaris 平台上的网络配置

作者:Eric Rinker

本文档的目的

通过阅读本文档,您应该会对如何使用命令行界面设置网络接口深有体会。此外,本文还包含一些基本的故障排除提示。本文档不涉及硬件。

要求

要充分利用本文,您需要对 Solaris 操作系统非常熟悉。您至少还应该对 TCP/IP 网络和子网掩码有一个基本的了解。为了更好地理解本文档,您需要创建和编辑系统文件,并了解引导过程(关于引导脚本)。此外,您还必须具有超级用户权限。

背景知识

最基本的网络由两台彼此相连的计算机组成,用于协作完成特定的任务。这些协作任务包括简单的文件传输,直至分布式计算或群集这样的复杂任务。

网络包含两个基本部分:物理介质和网络协议。网络中使用的物理介质是不同的,具体取决于计算机的连接方式以及您的预算。用于计算机连接的一些常见方法包括:

  • 令牌环 -- 由 IBM 开发,在此网络类型中,每台计算机大致被排列成圆环的一部分。
  • 10Base2(同轴)-- 每台计算机通过细同轴电缆与连接到链的每个末端的端接器串联在一起。
  • 10(0)BaseT -- 这是标准的办公/家庭联网技术,它使用双绞线电缆。使用集线器/交换机可连接多台计算机。最初其速度为 10 Mb/s(兆位/秒),现在可达 100 Mb/s。
  • 光纤(千兆位)-- 此技术使用光纤电缆(而非双绞线电缆)传输数据。其速度可以达到 1000 Mb/s (1 Gb/s),但是其成本高昂,并且在布线时需要特别小心。
  • 无线 802.11a -- 工业级无线方案。其运行速度为 54 Mb/s,但是范围非常有限。
  • 无线 802.11b -- 家庭和办公无线方案的当前标准。其运行速度约为 10Mb/s。
  • 无线 802.11g -- 结合了 802.11 的速度与 802.11b 的范围。向后与 802.11a 和 802.11b 兼容。

即使两个网络使用相同的介质,它们也可以使用两种完全不同的通信协议或方法。当今网络中使用的一些协议包括:

  • TCP/IP -- Internet 标准。每个 NIC 分配有一个 IP 地址和子网掩码。它们用于确定哪些计算机位于本地网络中,以及哪些计算机要求通过路由器发送流量。
  • IPX/SPX -- 由 Novell 开发的广播协议。每个 NIC 分配有唯一的 IPX 网络地址。
  • AppleTalk -- Apple 专用协议。每个 NIC 分配有一个网络号、节点号和套接字号。其配置和路由能力类似于 TCP/IP。

验证硬件安装

我们的方案是假定要将另一个 NIC 安装到以前配置的网络系统中。在安装新硬件之前,通过运行 prtconf -vD 保存当前的系统配置。对于较大型的系统,此命令输出的信息可能非常多,因此最好将 prtconf 的输出保存到某个文件中。

物理上安装新硬件后,在 OK 提示符下使用 -r 选项引导系统。这将使系统扫描新硬件,并相应地生成设备驱动程序目录。完成该过程后,再次运行 prtconf -vD,然后将其内容与先前执行的结果进行比较。如果未显示新设备,请查阅该设备的说明书,因为可能需要安装新的驱动程序或执行某些特定于该硬件的其他特殊操作。根据所用的系统和其他要安装的卡,您应该能够找到与以下类似的内容:

        SUNW,hme, instance #0 (driver name: hme)
Register Specifications:
Bus Type=0xe, Address=0x8c00000, Size=0x108
Bus Type=0xe, Address=0x8c02000, Size=0x2000
Bus Type=0xe, Address=0x8c04000, Size=0x2000
Bus Type=0xe, Address=0x8c06000, Size=0x2000
Bus Type=0xe, Address=0x8c07000, Size=0x20
SUNW,hme, instance #1 (driver name: hme)
Register Specifications:
Bus Type=0x0, Address=0x8c00000, Size=0x108
Bus Type=0x0, Address=0x8c02000, Size=0x2000
Bus Type=0x0, Address=0x8c04000, Size=0x2000
Bus Type=0x0, Address=0x8c06000, Size=0x2000
Bus Type=0x0, Address=0x8c07000, Size=0x20

以上示例来自在 SBus 卡上安装第二个 100-Mb NIC 后的 Ultra 1 工作站。NIC 的名称是驱动程序缩写加上实例编号(从 0 开始的连续编号,对使用该驱动程序的每个设备进行计数)。在上述 prtconf 输出中,我们的设备被系统识别为 hme0 和 hme1。如果无法断定哪个驱动程序运行您的硬件,请查阅 NIC 卡的手册。

ifconfig -a 的结果显示了网络设备的当前状态:

lo0: flags=1000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.1.100 netmask ffffff00 broadcast 192.168.1.255
ether

以前已配置了内置 NIC(实例 #0),lo0 是本地回送地址的实例。由于未显示 hme1,因此这意味着仍须对其进行初始化和配置。

持久性 IPv4 配置

要让系统在引导时配置我们的 NIC,第一步是获取 IP 地址和子网掩码。在本案例中,我们会将此第二个 NIC 置于与原始 NIC 不同的 IP 范围中。第一个 NIC 位于 192.168.1.x 网络中,因此我们将新 NIC 置于 192.168.2.x 网络中。这两个网络的子网掩码都是 255.255.255.0。注意:请始终确保分配的 IP 未被其他计算机占用;为此,请在该网络中已配置的计算机上使用 ping

接下来,向新卡的 /etc/hosts 文件添加以下行:

192.168.2.100		host2.mydomain.com		host2

现在,我们在 /etc 中创建一个名为 hostname 的文件。例如,第一个 NIC 的文件是 /etc/hostname.hme0。新设备 hme1 将需要文件 /etc/hostname.hme1。在此文件中,我们将放置与 IP 关联的名称(如在 /etc/hosts 文件中找到的一样)。它应该是 /etc/hosts 文件中的第一个名称。在我们的方案中,/etc/hostname.hme1 应该包含:

host2.mydomain.com

然后,编辑新网络的 /etc/netmasks 文件:

192.168.2.0	255.255.255.0

重新引导系统,这样就已经使用正确的子网掩码为新网络配置了您的网卡。您可以通过再次运行 ifconfig -a 进行检查:

lo0: flags=1000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.1.100 netmask ffffff00 broadcast 192.168.1.255
ether
hme1: flags=1000843 mtu 1500 index 3
inet 192.168.2.100 netmask ffffff00 broadcast 192.168.2.255
ether

非持久性 IPv4 配置

要配置 NIC 而无须重新引导(以前已安装硬件),首先需要初始化或检测网卡:

	ifconfig hme1 plumb

然后配置设备:

	ifconfig hme1 192.168.2.100 netmask 255.255.255.0

现在,将 NIC 联机。

	ifconfig hme1 up

您的网卡现在就已启动并开始工作。您仍需进行上述文件修改,否则在重新引导时将不配置您的网卡。

IPv6 配置

涉及 IPv6 的几乎所有操作都设计为自动进行。只需告知系统将使用 IPv6,它就会处理其余的操作。要在引导时进行配置(持久性),请执行以下命令:

	touch /etc/hostname6 

要在命令行上启用 IPv6(在系统重新引导后会失效),请运行以下命令:

	ifconfig  inet6 plumb
ifconfig inet6 up

故障排除

以下是用于解决网络问题的工具集合:

/sbin/ifconfig:系统管理员是处理您的 NIC 时的最佳助手。/sbin/ifconfig 用于配置网卡,您可以使用它了解系统当前所识别的网卡及其状态。排除故障时,应该始终首先使用此工具。ifconfig -a 将为您提供有关所有 NIC 的信息,包括 IP 地址 (inet) 和子网掩码 (netmask),如果以超级用户身份运行,还可提供 MAC 地址 (ether)。

/usr/sbin/arp:地址解析协议 (address resolution protocol, ARP) 使用一个表来跟踪 Internet 到以太网的转换信息(IP 地址到 MAC 地址)。通过 arp 可以查看该表,以了解计算机已缓存哪种信息以及输入或删除条目(在出现问题时)。遇到 DNS 问题时,可以在 arp 命令中使用 -an 选项列出整个表,而不必将 IP 地址解析为主机名。arp 是获取应答主机的 NIC 的 MAC 地址的一种方法。这是通过对目标的主机名或 IP 地址运行 arp 完成的:arp host.domain.com。但是,仅当被轮询的计算机与执行轮询的计算机位于同一网络中时,这才起作用。

 /bin/netstat:这是一种非常有用的工具,可以显示与网络相关的各种表的内容。尽管通读手册页是熟悉此工具的最佳方法,但是阅读以下内容可快速了解其基本用法:

  • 可以使用 netstat -a 获取端口/套接字信息。如果您具有锁定的网络守护进程,或者想知道哪些计算机正在浏览您的 Web 服务器,则这是一种断定哪些远程系统连接到哪些端口的好方法。
  • 大多数管理员都使用 netstat -rn 检查当前的系统路由表。在解决网络问题时几乎始终应使用 n 选项,因为用于 IP 到主机名查找的 DNS 查找不是本地服务。要仔细检查的条目是“缺省”目的地,因为这是系统的缺省路由器或网关。
  • 每个 NIC 上的统计信息是通过 netstat -I(通常用于自制的监视脚本)显示的。

/usr/sbin/snoop:一种包监视工具,可以显示本地网络中的当前状况。有助于查找使网络阻塞的故障 NIC,或确保 DHCP 正常工作。在配置 NIC 之前,可以运行 snoop 以验证您是否看到包流过 NIC(即电缆/NIC/交换机端口在起作用),以及这些包的 IP 地址是否与 NIC 的新网络所需的地址一致。应谨慎使用此工具,因为如果某些公司策略并不是针对运行 snoop 的计算机,则这些策略会禁止使用捕获包的网络监视工具。此外,在远程登录的时候,不建议您使用详细的屏幕信息输出模式来运行 snoop 命令。

接下来做什么

网络可能既简单又复杂。在使用任何 UNIX 应用程序前,应首先阅读手册页。接下来,建议您联机访问 Sun 产品文档站点 (docs.sun.com) 上的 Solaris 手册。最后,建议您查看 Sun Managers(Sun 管理员)邮件列表。


除非另行颁发许可,否则此处所有技术手册中的代码(包括文章、常见问题解答和样例)只能在本许可下使用。