首页/网络/IP 与子网速查/Bogon/martian:非法源地址过滤
私网与特殊地址45 条

Bogon/martian:非法源地址过滤

Bogon 指不应出现在公网路由中的地址(私网、保留、未分配段);Linux 内核把非法来源报文标记为 martian source 并丢弃,边缘设备用 bogon 前缀列表过滤。

IP 与子网速查网络更新于 2026-10-13

非法来源地址是什么

有一批地址不应该出现在公网路由中:私有段、回环段、链路本地段、保留段以及尚未分配的段。行业里把这类地址统称为空路由地址,意思是它们不该被转发。内核把它们视作不可能的来源,收到这类源地址的报文会直接丢弃并在日志里留下记录。

两端各有一道门

防护分两层:主机侧做来源合理性校验,内核会检查报文的来源地址是否有对应的反向路径,不符合就丢弃;网络边界侧做前缀过滤,把明显不该出现的来源地址挡在外面。两层配合才能在不大幅增加成本的前提下显著提高抗伪造能力。

基本信息

常见空路由前缀全零段、回环段、链路本地段、组播段、保留段、私有段
主机侧机制来源合理性校验,内核日志会记录异常来源
网络侧机制边界前缀过滤列表
作用防止源地址伪造与扫描探测

典型使用场景

  • 抗伪造加固:在对外接口的入方向过滤空路由来源,抑制伪造源地址的流量
  • 排查丢包:局域网内在地址转换之前看到私有源被丢弃属于预期,不要把上游过滤当故障
  • 日志分析:主机日志里出现异常来源记录时,先判断是链路配置问题还是真的伪造流量
  • 隧道环境调优:隧道与多出口场景下严格校验会误丢合法回包,需要按接口调整策略
  • 多宿主设计:多出口主机在严格校验下容易出现回包路径不一致,规划阶段就要考虑
  • 合规检查:边界设备的过滤列表是否覆盖常见空路由前缀,是安全基线的一部分

观察异常来源与校验开关

观察异常来源与校验开关
dmesg | grep -i 'martian source' | tail -5
# 内核记录的不可能来源,通常伴随丢弃
sysctl net.ipv4.conf.all.rp_filter
# 1 为严格校验,2 为松散校验,0 为关闭
sysctl net.ipv4.conf.eth0.rp_filter
# 按接口分别设置,隧道接口往往需要单独调整

常见空路由前缀

前缀原因是否可出现在公网
0.0.0.0/8本网络专用否
127.0.0.0/8回环专用否
169.254.0.0/16链路本地否
224.0.0.0/4组播使用否(作为源更是不可能)
240.0.0.0/4保留未分配否
私有三段内网专用否
地址转换前侧看到私有来源被丢弃属于预期行为:上游已经做了空路由过滤。判断时先看过滤器位置,再决定是否需要调整策略,不要一上来就改主机参数。
隧道与多宿主场景下贸然开启严格校验,会出现合法回包被丢弃、表现为间歇性丢包;调整前先按接口确认,并评估放宽校验带来的安全影响。

易错点

  • 在地址转换前侧看到私有来源被丢弃就当成故障,实际是上游按标准做过滤,属于预期行为
  • 隧道或多出口环境贸然开启严格来源校验,合法回包被丢弃,表现为难以复现的间歇丢包
  • 边界过滤列表长期不更新,新出现的保留段未被覆盖,抗伪造能力实际已失效

数据来源与参考

  • RFC 6890(特殊用途地址)
  • Linux 内核文档(rp_filter)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌