看错 IP 身份,排查方向就全错

凌晨告警,日志里刷着一串陌生来源 IP:它来自用户内网?运营商机房?还是链路故障的自分配地址?判断错一步,后面的功夫全部白费——对着 CGNAT 地址做"公网封禁",或在 169.254 上苦查防火墙规则,都是常见的弯路。

IP 的身份决定你往哪个方向查:内网段查拓扑和交换机,CGNAT 找运营商,公网段才轮到归属地与风控。所以排查第一步不是开防火墙面板,而是判定那个 IP 是谁。

IPv4 保留段速查表

需要记的段不多,每个段配一句"看到了该做什么":

段名称看到了该做什么
127.0.0.0/8回环本机自己,出现在远程日志里基本是配置错误
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16私网(RFC 1918)往内网查:交换机、内网防火墙、主机本身
100.64.0.0/10CGNAT(RFC 6598)用户在运营商 NAT 后面,不可公网直连,也定位不到具体用户
169.254.0.0/16链路本地机器没从 DHCP 拿到地址、自动自配的,先查 DHCP
224.0.0.0/4组播正常业务流量不应出现,出现就查配置
240.0.0.0/4保留同上,多为异常

最容易栽的坑是 172 段:172.16.0.0/12 只覆盖 172.16.0.0 – 172.31.255.255,所以 172.20.5.9 是私网,172.32.1.1 已经是公网地址——“172 开头"不等于内网。

判定实操:输入即出结论

背区间不如用工具。把日志里的 IP 贴进私有 IP 检测器,它会直接判定该地址属于私网、公网、CGNAT、链路本地还是保留段,并附对应的 NAT 场景说明——上面表格的规则全部内置,包括 172 段这类边界判断。批量排查时把可疑来源逐个贴一遍,比心算快,也不会背错区间。

IPv6 的对应段

IPv6 里最常遇到的是两个:

  • fc00::/7(唯一本地地址,实际使用的是 fd00::/8):IPv6 版的"私网”,内网规划常用
  • fe80::/10:链路本地,只在本链路有效,常见于自动配置和路由协议

另外,双栈环境的日志里会出现 ::ffff:192.168.1.1 这种 IPv4 映射地址——剥掉 ::ffff: 前缀,剩下的就是熟悉的 IPv4,按 IPv4 的规则继续判断即可。

常见排查剧本

**剧本一:服务"连不上"。**客户端日志里目标地址是 192.168.10.20,先别怀疑服务本身,先确认你和它是否同网段。拿不准网段范围,把 CIDR 贴进 IP 子网计算器,网络地址、可用主机范围、子网划分一次算清,顺带核对有没有网段冲突。

**剧本二:机器拿到 169.254 开头的地址。**DHCP 没成功,先查 DHCP 服务和 VLAN 配置,而不是去翻路由表。

剧本三:用户反馈异常,日志来源全是 100.64.x.x。用户在运营商 CGNAT 后面:你既不能从外部主动连回去,也没法只凭这个 IP 定位用户。让用户配合提供出口公网 IP,再用 IP 信息查询查它的地理位置、运营商与 ASN——ASN 一出,是哪家运营商的移动网络一目了然。

**剧本四:预期只有内网访问的服务,收到大量公网来源。**暴露面配置多半出了问题:端口误开放、防火墙规则失效。这类优先级最高,立刻处理。

常见问题

100.64 开头的 IP 是公网地址吗?

不是。它是 RFC 6598 定义的运营商级 NAT 段,不可在公网路由。出现在访问日志里说明用户在运营商 NAT 之后,处理思路接近私网,但不要把它写进公网的封禁或放行规则里。

私网 IP 有可能出现在公网服务的日志里吗?

正常路由下不会——私网段在公网不可路由,你看到的"192.168 来源"一定产生于内网侧。如果出现在对外服务日志里,多半是内网机器直接访问了服务,或来源字段被伪造。

记不住这些段怎么办?

不用记。把私有 IP 检测器加进书签,遇到 IP 先判身份再排查;网段规划和冲突检查交给 IP 子网计算器。规则交给工具,你只需要记住"身份决定排查方向"这一件事。

小结

IP 排查的第一步不是查防火墙,而是判定 IP 身份:私网往内网查,CGNAT 别当公网,169.254 先想 DHCP,公网才查归属。本文用到的工具——私有 IP 检测器、IP 子网计算器、IP 信息查询——都收录在网络排查工具包专题里。

想系统补齐 CIDR 与子网划分的前置知识,推荐先读《CIDR 与子网速成:写给开发者的网络课》,再回来对照排查,效率更高。