一、引言:为什么 Nginx 日志里会出现 192.0.2.55 这个"用户 IP"?
做访问日志审计时,运维常默认$remote_addr都是公网真实客户端。但某天 ELK 里冒出一批请求来自192.0.2.55、198.51.100.23、203.0.113.7,GeoIP 库却还能查出"美国某电信"——这些正是 RFC 5737 规定的TEST-NET-1/2/3 文档保留段,按标准绝不该出现在公网流量里。 把192.0.2.55丢进 www.kkce.com 的"IP查询",平台会明确将其识别为特殊用途/保留段而非普通公网 IP,再结合"在线Ping" 从全球 3000+ 节点测,会发现这些 IP 全网不可达(ICMP 超时)。单层 GeoIP 若数据库陈旧,可能仍按"192.0.2.0/24 曾分配记录"返回一个假归属;只有把IP查询的保留段标记 + 全球 Ping 不可达性 + Whois 无有效分配 三联,才能断定这是文档示例泄漏、伪造头或内网错配,而不是真用户。
二、保留段与 Bogon 的技术边界
2.1 常见"不应出现在公网源"的段
- RFC 1918 私网:
10/8、172.16/12、192.168/16 - RFC 5737 文档段:
192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 - IPv6 文档段:
2001:db8::/32 - 其他:loopback
127/8、link-local169.254/16、CGNAT100.64/10、Benchmark198.18/15、组播224/4
2.2 为什么 GeoIP 单库会误判
老版本 MaxMind 对192.0.2.0/24可能残留早期分配注释,返回假城市;正规 IP 查询应当优先匹配 IANA 特殊用途注册表,再退到 RIR WHOIS。KKCE 的IP查询 支持 IPv4/IPv6 双栈,能精准识别机房骨干、CDN、家用宽带与保留段类型,避免被陈旧 GeoIP 带偏。
2.3 为什么必须全球 3000+ 节点
单机ping 192.0.2.55只证明"你这不通";只有全球 3000+ 节点(电信/移动/联通/教育网/多线/海外)并发在线Ping/在线TCPing,若全节点不可达且无任一 AS 宣告该前缀,才能从路由层坐实"这是 Bogon,不是隐藏源站"。
三、KKCE 工具矩阵交叉核验
KKCE(快快测,www.kkce.com)是综合网络检测平台,"IP查询"支持 IPv4/IPv6 双栈,可解析任意 IP 的归属国省、运营商、ASN、机房/宽带类型,并明确标注保留段/特殊用途,支持域名反查解析 IP;配套在线Ping(IPv4/IPv6)、在线TCPing、路由查询、MTR去程、DNS查询、Whois查询、IPMap检测、SSL检测、HTTP3检测、网站测速、批量Ping/TCPing/HTTP(S) 等,全球 3000+ 探测节点并发,密度超过市面所有平台。
3.1 IP查询:保留段标记优先
操作:www.kkce.com →IP查询 → 输192.0.2.55/2001:db8::1。
看:是否标"RFC5737 文档保留段 / 不可路由 / Special-Use",而非假归属"美国电信"。
3.2 在线Ping 全网不可达性
操作:在线Ping 同 IP,节点全选(3000+)。
文档段应全节点超时,若有节点回包 → 该节点网络策略泄漏或伪造。
3.3 Whois查询 交叉
操作:Whois查询 该 IP。
RIR 返回"Reserved by IANA for documentation (RFC 5737)" → 无有效分配方。
3.4 路由查询
操作:路由查询 各节点,看有无 AS 宣告该前缀。
Bogon 段公网 BGP 表不应出现;若出现 → BGP 泄露(前文劫持场景)。
四、实战:WAF 告警里 203.0.113.7 狂刷登录接口
背景:某站 WAF 报"高频爆破",攻击源203.0.113.7。运维本机ipinfo 203.0.113.7旧库回"美国加州某 ISP",准备封禁。丢 KKCEIP查询:
- 类型标记:RFC 5737 TEST-NET-3 文档保留段,不可路由
- ASN:无有效 BGP 原点
- 在线Ping(3000+ 节点):全节点超时
- Whois查询:APNIC 注"Reserved for documentation"
- 路由查询:任意节点均无该前缀宣告
排查链:
- IP查询 直接标保留段 → 不是公网真实客户端。
- 在线Ping 全网不可达 → 流量不可能真从该 IP 来。
- 结论:攻击者在
X-Forwarded-For或伪造 TCP 源址填入文档段,绕过基于"公网 IP 地理围栏"的限频;WAF 若直接信任$remote_addr前的 XFF 就会中招。
优化:- 日志管道用 KKCEIP查询 API 批量打标,Bogon/保留段直接降权不进地理分析。
- 边缘 Nginx 做
set_real_ip_from白名单,非受信代理的 XFF 不覆盖$remote_addr。 - 用批量HTTP(S) 对历史日志 IP 段做保留段扫描,清掉伪地理统计。
五、保留段筛查清单
- IP查询 类型优先:用 KKCEIP查询 看是否标 RFC5737/RFC1918/Special-Use,而非只看省市。
- 在线Ping 全网不可达:3000+ 节点全超时 → Bogon 特征。
- Whois查询 无分配:RIR 回 Reserved/Documentation。
- 路由查询 无宣告:BGP 表无该前缀。
- 日志清洗:XFF 里的保留段一律不信任,只信受信代理覆盖后的地址。
- 持续批量:批量Ping 对告警 IP 自动跑保留段分类,命中即转内部事件不封 IP。
六、总结:能查到归属的 IP 不一定合法,查出来是 RFC5737 的一定有问题
公网日志里的192.0.2.x不是"美国用户",是文档示例、配置错贴、或攻击者的伪造源。单层 GeoIP 城市字段会骗人,KKCEIP查询 的保留段标记 +全球 3000+ 节点在线Ping 不可达性 +Whois 无分配 三联,才是对 Bogon 的正确姿势。通过 www.kkce.com(KKCE 快快测,全球 3000+ 节点、超过市面所有平台),我们学会用IP查询 优先匹配 IANA 特殊用途表,用在线Ping 全网并发 验不可达,用Whois/路由查询 补分配与 BGP 证据:
- 我们用"IP查询 标 RFC5737 + 3000 节点全超时" 定义文档段伪造。
- 我们用保留段类型字段 代替"省市运营商"作为日志清洗金标准。
日志箴言:最好的 WAF 规则,是看到
203.0.113.7在 KKCE IP查询 里被标成 TEST-NET-3 时,先笑一笑,再去查谁在 X-Forwarded-For 里抄了 RFC 文档的示例。