TCP/IP 路由问题

如果您无法到达目标主机,请考虑针对以下情况的解决方案。

  • 如果接收到一个 Network Unreachable 错误消息,确认到网关主机的路由已经定义且是正确的。 通过用 netstat -r 命令列表内核路由表来检查它。
  • 如果接收到一个 No route to host 错误消息,通过发布 ifconfig 接口_名命令验证本地网络接口启动。 输出表明接口是否启动。 使用 ping 命令来尝试并到达网络上的另一个主机。
  • 如果接收到一个 Connection timed out 的错误消息:
    • ping 命令通过网关的名称或因特网地址验证本地网关启动。
    • 确认到一个网关主机的路由已经定义且是正确的。 通过用 netstat -r 命令列表内核路由表来检查它。
    • 确认您想通信的主机有一个路由表条目返回到您的机器。
  • 如果使用静态路由,确认到目标主机与网关的一个路由已经定义。 通过用 netstat -r 命令列表内核路由表来检查它。
    注: 确保要与之通信的主机具有到机器的路由表条目。
  • 如果使用动态路由,通过发布 netstat -r 命令来验证网关在内核路由表中列出且是正确的。
  • 如果网关主机正在将 路由信息协议 (RIP) 与 routed 守护程序配合使用,请确保在 /etc/gateways 文件中设置到目标主机的静态路由。
    注: 仅当路由守护程序无法通过查询到其他网关来识别到远程主机的路由时,才需要执行此操作。
  • 如果网关主机将 RIPgated 守护程序配合使用,请确保在 gated.conf 文件中设置到目标主机的静态路由。
  • 如果正在随 routed 守护程序一起使用动态路由:
    • 如果 routed 通过查询不能识别路由(例如,如果目标主机没有运行 RIP,检查 /etc/gateways 文件来检查到目标主机的一个路由是否定义。
    • 确认负责转发数据包到主机的网关启动并运行 RIP。 否则,需要定义一个静态路由。
    • 用调试选项运行 routed 守护程序来 记录类似接收到的坏数据包这样的信息。 使用以下命令从命令行调用守护程序:
      startsrc -s routed -a "-d"
    • 使用 -t 标志运行 routed 守护程序,这将导致发送或接收的所有包写入标准输出。 当 routed 在此方式下运行时,它仍然在 启动它的终端的控制之下。 因此,来自控制终端的一个中断会杀死守护程序。
  • 如果要将动态路由与 gated 守护程序配合使用:
    • 验证 /etc/gated.conf 文件是否正确配置以及正在运行正确的协议。
    • 确认在源网络上的网关正在使用与在目的地网络上网关使用相同的协议。
    • 确认您正在尝试联系的主机有一个返回到您主机的路由。
    • 验证与在 /etc/networks 文件中列出的网关名相关的 gated.conf 文件中的网关名。
  • 如果正在使用 RIPHELLO 协议,且到目的地的路由通过路由查询不能识别,检查 gated.conf 文件来验证到目标主机的一个路由是否定义。 在以下情况中设置静态路由:
    • 目的地主机没有运行与源主机相同的协议,所以不能交换路由信息。
    • 主机必须能够被一个远程网关到达(一个在不同的独立系统上而不是源主机上的网关)。 RIP 仅能在相同独立系统上主机之间使用。

如果是所有其他的故障,您可能想为路由守护程序打开跟踪(routedgated)。 从命令行使用 SRC traceson 命令,或发送一个信号到守护程序来指定跟踪的不同级别。 请参阅 gated 守护程序或 routed 守护程序获取关于发送信号到这些守护程序的详细说明。