本章包含网络上可能出现的常见问题的解决方案。本章包含以下主题:
在 Solaris 10 7/07 中,/etc/inet/ipnodes 文件已过时。只能对早期 Oracle Solaris 10 发行版使用 /etc/inet/ipnodes,如以下各个过程中所述。
网络出现问题的首要症状之一就是一个或多个主机失去通信。如果在首次将某个主机添加到网络中时,该主机根本就未出现,则问题可能出在某个配置文件上,或者网络接口卡出现故障。如果单个主机突然遇到问题,则问题可能出在网络接口上。如果网络上的主机能够互相通信,但是不能与其他网络通信,则问题可能出在路由器上,也可能是另一个网络出现问题。
可以使用 ifconfig 命令获取有关网络接口的信息。可以使用 netstat 命令显示路由表和协议统计信息。第三方网络诊断程序提供了许多疑难解答工具。有关信息,请参阅第三方文档。
导致网络性能下降的原因可能不是很显而易见。例如,可以使用诸如 ping 之类的工具来量化主机上包丢失等问题。
如果网络存在问题,可以运行一系列软件检查来诊断和修复与软件相关的基本问题。
在本地系统上,承担网络管理角色或成为超级用户。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
有关 netstat 命令的语法和信息,请参阅使用 netstat 命令监视网络状态和 netstat(1M) 手册页。
检查 hosts 数据库(在 Solaris 10 11/06 及早期发行版中,如果您使用的是 IPv6,则需要检查 ipnodes 数据库)确保各项正确且为最新。
有关 /etc/inet/hosts 数据库的信息,请参阅hosts 数据库和 hosts(4) 手册页。有关 /etc/inet/ipnodes 数据库的信息,请参阅ipnodes 数据库和 ipnodes(4) 手册页。
如果正在运行反向地址解析协议 (Reverse Address Resolution Protocol, RARP),请检查 ethers 数据库中的以太网地址,确保各项正确且为最新。
尝试使用 telnet 命令连接到本地主机。
有关 telnet 的语法和信息,请参阅 telnet(1) 手册页。
# ps -ef | grep inetd
下面的输出可证实 inetd 守护进程正在运行:
root 57 1 0 Apr 04 ? 3:19 /usr/sbin/inetd -s |
如果在网络上启用了 IPv6,请验证 IPv6 守护进程 in.ndpd 是否正在运行:
# ps -ef | grep in.ndpd |
下面的输出可证实 in.ndpd 守护进程正在运行:
root 123 1 0 Oct 27 ? 0:03 /usr/lib/inet/in.ndpd |
本节介绍在站点上规划和部署 IPv6 时可能遇到的疑问和问题。有关实际的规划任务,请参阅第 4 章。
如果现有设备无法升级,则可能必须购买支持 IPv6 的设备。有关为支持 IPv6 而必须执行的特定于设备的任何过程,请查阅制造商的文档。
某些 IPv4 路由器无法进行升级以支持 IPv6。如果您的拓扑属于这种情况,请紧邻该 IPv4 路由器物理连接一个 IPv6 路由器。然后,可以从 IPv6 路由器建立经由 IPv4 路由器的隧道。有关配置隧道的任务,请参阅针对 IPv6 支持配置隧道所需的任务(任务列表)。
在准备服务使其支持 IPv6 时,可能会遇到下列情况:
某些应用程序,即使在移植到 IPv6 之后,缺省情况下也不会启用 IPv6 支持。可能必须配置这些应用程序以启用 IPv6。
运行多个服务(其中的一些服务仅使用 IPv4,而其他服务既使用 IPv4 又使用 IPv6)的服务器可能会遇到问题。某些客户机可能需要同时使用这两种类型的服务,这会在服务器端导致混乱。
如果想要部署 IPv6,但是当前的 ISP 不支持 IPv6 寻址,则可考虑通过以下备选方法改用其他 ISP:
租用一个 ISP,为您站点的 IPv6 通信提供第二条线路。此解决方案成本较高。
获取一个虚拟 ISP。虚拟 ISP 可为您的站点提供 IPv6 连通性,但不提供链路。您需要从您的站点建立一个经由 IPv4 ISP 到达虚拟 ISP 的隧道。
使用经由 ISP 到达其他 IPv6 站点的 6to4 隧道。对于地址,请使用 6to4 路由器的已注册 IPv4 地址作为 IPv6 地址的公共拓扑部分。
本质上,6to4 路由器与 6to4 中继路由器之间的隧道是不安全的。此类隧道存在以下固有安全问题:
尽管 6to4 中继路由器确实会对包进行封装和取消封装,但是这些路由器并不检查这些包中所包含的数据。
地址欺骗是通往 6to4 中继路由器的隧道中的主要问题。对于传入通信,6to4 路由器无法将中继路由器的 IPv4 地址与源 IPv6 地址匹配。因此,IPv6 主机的地址很容易被欺骗,6to4 中继路由器的地址也可能会被欺骗。
缺省情况下,6to4 路由器与 6to4 中继路由器之间不存在信任机制。因此,6to4 路由器无法识别 6to4 中继路由器是否受信任,或者甚至无法识别它是否是合法的 6to4 中继路由器。6to4 站点与 IPv6 目标之间必须存在信任关系,否则这两个站点会很容易受到攻击。
Internet 草案《Security Considerations for 6to4》中对这些问题和 6to4 中继路由器固有的其他安全问题进行了说明。通常,仅出于以下几种原因才考虑启用 6to4 中继路由器支持:
6to4 站点尝试与受信任的专用 IPv6 网络通信。例如,可以在由隔离的 6to4 站点和本地 IPv6 站点组成的校园网络上启用 6to4 中继路由器支持。
出于迫切的商业需求,6to4 站点需要与某些本地 IPv6 主机通信。
已实现了 Internet 草案《Security Considerations for 6to4》中建议的检查和信任模型。
4709338-需要实现可识别静态路由的 RIPng
4152864-可以用相同的 tsrc/tdst 对来配置两个隧道
以下问题发生在 6to4 边界路由器内部具有路由器的 6to4 站点上。配置 6to4 伪接口时,静态路由 2002::/16 会自动添加到 6to4 路由器的路由表中。错误 4709338 描述了 Oracle Solaris : RIPng 路由协议的一个限制,该限制禁止将此静态路由通告到 6to4 站点。
对于错误 4709338,可使用下面任一解决方法:
将 2002::/16 静态路由添加到 6to4 站点内部所有站点内路由器的路由表中。
在 6to4 站点的内部路由器上使用 RIPng 以外的路由协议。
错误号 4152864 描述了两个隧道配置了同一个隧道源地址时出现的问题,这是 6to4 隧道的一个严重问题。
请不要为 6to4 隧道和自动隧道 (atun) 配置同一个隧道源地址。有关自动隧道和 atun 命令的信息,请参阅 tun(7M) 手册页。