今天无意中发现,我可以ping172.31.0.0/16
子网中的地址并得到ICMP回复。我尝试了一些随机的,它总是得到回复。在检查了路由表和试探traceroute
性之后,看起来相关的数据包正在离开我的本地网络,即离开我的 ISP。我的本地网络使用不同的 IP 范围,192.168.0.0/16
子网的一部分,并且有 Docker 相关的接口172.17.0.0/16
和172.19.0.0/16
,但没有172.31.0.0/16
。
我的理解是,它172.31.0.0/16
仍然应该是172.16.0.0/12
IANA 保留地址空间的一部分。
我尝试了网络搜索以查看该子网的范围是否可能由于全球 IP 地址短缺或任何其他原因而缩短,但找不到任何支持该假设的东西。
现在我想知道我是否只是缺乏睡眠并忽略了一些基本的东西,或者我的网络设置是否存在严重的问题。
您是正确的 172.31.0.0/16 是 RFC1918 IP 地址空间的一部分。您的路由器很可能配置为将流量转储到未连接的路由到它的默认网关,即您的 ISP。那是交通应该停止的地方。
但是,您的 ISP 似乎已使此地址范围可路由。我曾在其他 ISP 上看到过这种情况(例如,Tele2 在 IANA 分配之前使用 1.0.0.0/8 作为其主干网)。
无论哪种方式,您(和您的 ISP)都应该在您的网络边界上实施bogon 过滤和/或martian过滤。对于普通家庭消费者来说,这是情有可原的,但 ISP 应该更清楚。
为避免此问题,您可以在路由器的防火墙上设置一个基本的传出过滤器(例如
10.0.0.0/8, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, and 169.254.0.0/16
)。另一种选择是空路由或黑洞路由这些地址范围。然后,您的路由器将丢弃数据包。