4. 网络层排查(IP层):IP地址配置错误、子网掩码、网关、路由问题导致的超时

网络层,说白了就是IP层。这一层要是出问题,你的数据包根本找不到路。我遇到过不少运维新手,应用层、传输层查了个遍,最后发现是IP地址配错了——这种冤枉路我走过不止一次。

咱们直接切入正题。网络层导致连接超时的原因,归纳起来就四类:IP地址配置错误、子网掩码不匹配、网关设置不对、路由表有问题。下面我一个一个拆开讲。

核心排查思路:从本机出发,逐跳验证。先看自己,再看邻居,最后看远端。

4.1 IP地址配置错误

这是最基础,也最容易犯的错。我见过有人把IP配成了广播地址,结果网络时通时不通,折腾了一下午。

常见的IP配置错误有这几种:

  • IP地址冲突——同一网段两台设备用了相同IP
  • IP地址与子网不匹配——比如配成了广播地址或网络地址
  • 静态IP配错——手抖多按了个数字,或者DNS和网关填反了
  • DHCP获取失败——自动获取到了169.254.x.x的APIPA地址

怎么查?先看本机IP配置。Windows用ipconfig,Linux用ip addr或ifconfig。

# Windows
ipconfig /all

# Linux
ip addr show
# 或者
ifconfig

看到169.254.x.x的地址,基本可以断定DHCP没拿到有效IP。这时候检查DHCP服务器是否正常,或者手动配一个静态IP试试。

我的习惯:排查IP冲突时,先ping一下这个IP。如果能ping通,但设备又不是自己,那肯定冲突了。再用arp -a看看MAC地址,找到是谁占用了IP。

4.2 子网掩码问题

子网掩码决定了你的设备认为“哪些IP是邻居,哪些是远方”。掩码配错了,设备会把本应在同一网段的机器当成远端,数据包就会往网关送,网关一看目标IP在本地,又给扔回来——来回折腾,不超时才怪。

举个例子:

配置项 正确值 错误值 后果
IP地址 192.168.1.10 192.168.1.10 —
子网掩码 255.255.255.0 255.255.0.0 误判网段范围
目标IP 192.168.2.20 192.168.2.20 —
通信结果 正常走网关 认为在同一网段,直接ARP ARP失败,连接超时

你看,掩码从24位变成16位,设备就以为192.168.2.20是邻居,直接发ARP请求。但实际网络拓扑中,这两个IP不在同一个广播域,ARP没人响应,连接就卡住了。

我曾经踩过的坑:有一次割接,把新设备的掩码配成了255.255.255.0,但旧设备用的是255.255.254.0。结果新设备能ping通网关,但ping不通同网段另一台服务器。查了半天,就是掩码不一致导致的。

4.3 网关配置错误

网关是设备通往外部网络的“大门”。门都找错了,数据包当然出不去。

常见的网关问题:

  • 网关IP配错——比如网关应该是192.168.1.1,配成了192.168.1.254
  • 网关不可达——网关设备宕机或端口down了
  • 没有配置默认网关——设备只知道本地网段,不知道去外网该找谁
  • 配置了多个网关导致路由混乱——Windows上配了多个默认网关,系统会随机选一个

排查方法很简单:

# 查看默认网关
# Windows
route print -4 | findstr "0.0.0.0"

# Linux
ip route show default
# 或者
route -n | grep "^0.0.0.0"

然后ping一下网关IP。如果ping不通,先检查物理链路和网关设备。如果能ping通但外网还是超时,看看网关设备上有没有做ACL限制。

我建议:配完网关后,先ping网关,再ping一个外网IP(比如8.8.8.8),最后ping域名。这样能快速定位是网关问题还是DNS问题。

4.4 路由问题

路由问题比前几个复杂一些。它涉及数据包从源到目的地的整个路径。路径上任何一个路由器配置错了,都可能导致超时。

常见的路由问题:

  • 缺少路由条目——路由器不知道目标网络该往哪转发
  • 路由环路——数据包在两个路由器之间来回跳,直到TTL耗尽
  • 路由优先级错误——静态路由和动态路由冲突,走了错误路径
  • 路由过滤/ACL——路由器上有策略阻止了数据包通过

排查路由问题,traceroute(Windows上是tracert)是神器。

# Windows
tracert 8.8.8.8

# Linux
traceroute -n 8.8.8.8

看输出结果,重点关注:

  • 哪一跳开始出现* * *(超时)
  • 跳数是否异常多(可能路由环路)
  • 返回的IP地址是否合理

如果traceroute到某一跳就停了,那问题大概率出在这一跳或它的下一跳。

核心原则:路由是双向的。去程有路由不代表回程也有。排查时一定要检查往返两个方向的路由表。

4.5 网络层排查流程图

下面这张图总结了网络层排查的核心逻辑。我建议你把它记在脑子里,遇到超时问题就按这个流程走一遍。

网络层排查流程图 连接超时 → 网络层排查 步骤1:检查本机IP配置 IP地址是否有效且无冲突? 否 修复IP配置/解决冲突 是 步骤2:检查子网掩码 掩码与对端是否一致? 否 统一子网掩码配置 是 步骤3:检查网关 网关是否可达? 否 检查网关设备/链路 是 步骤4:检查路由表 排查工具 ping / traceroute / route arp / netstat -r

4.6 实战排查步骤

好了,理论讲完了。咱们来一套标准操作流程。遇到网络层超时,按这个顺序来:

  1. 第一步:看自己
    • 执行ipconfig或ip addr,确认IP、掩码、网关
    • 确认没有IP冲突(ping自己IP,看是不是只有自己回应)
  2. 第二步:看邻居
    • ping同网段一台已知正常的设备
    • 如果ping不通,检查交换机端口、VLAN配置、物理链路
  3. 第三步:看网关
    • ping网关IP
    • 如果ping不通,检查网关设备状态和端口
  4. 第四步:看路径
    • 执行tracert或traceroute到目标IP
    • 分析每一跳的延迟和丢包情况
  5. 第五步:看路由表
    • 检查本机和沿途路由器的路由表
    • 确认去程和回程都有正确的路由条目

特别注意:很多超时问题其实是回程路由缺失。数据包能发出去,但回不来。你traceroute看到请求到了目标,但收不到回复,十有八九是回程路由没配。

嗯,网络层排查就这些。说白了就是四个点:IP对不对、掩码准不准、网关通不通、路由全不全。把这四个点挨个过一遍,80%的网络层超时问题都能解决。剩下的20%,可能是防火墙拦截、MTU问题或者更底层的物理层故障——那些咱们后面章节再聊。