我们正在使用私有 172.30.xx 子网的内部服务器上设置内部程序...当我们 ping 地址 172.30.138.2 时,它会通过互联网进行路由:
C:\>tracert 172.30.138.2
Tracing route to 172.30.138.2 over a maximum of 30 hops
1 6 ms 1 ms 1 ms xxxx.xxxxxxxxxxxxxxx.org [192.168.28.1]
2 * * * Request timed out.
3 12 ms 13 ms 9 ms xxxxxxxxxxx.xxxxxx.xx.xxx.xxxxxxx.net [68.85.xx.xx]
4 15 ms 11 ms 55 ms te-7-3-ar01.salisbury.md.bad.comcast.net [68.87.xx.xx]
5 13 ms 14 ms 18 ms xe-11-0-3-0-ar04.capitolhghts.md.bad.comcast.net [68.85.xx.xx]
6 19 ms 18 ms 14 ms te-1-0-0-4-cr01.denver.co.ibone.comcast.net [68.86.xx.xx]
7 28 ms 30 ms 30 ms pos-4-12-0-0-cr01.atlanta.ga.ibone.comcast.net [68.86.xx.xx]
8 30 ms 43 ms 30 ms 68.86.xx.xx
9 30 ms 29 ms 31 ms 172.30.138.2
Trace complete.
这让我们很多人感到困惑。如果我们设置了 VPN,它不会显示为通过互联网路由。如果它到达互联网服务器,私有 IP(例如 192.168)不应该被路由。
什么会让私有 IP 地址在服务器之间路由?全都是康卡斯特,这是否意味着他们的路由器设置错误?
答案1
什么可以让私有 IP 地址在服务器之间路由?
如果您与目的地之间的路由器没有阻止私有地址空间的入口/出口过滤器,那么它可能会按照默认路由进行路由。您应该强烈考虑在外部路由器上设置规则,禁止任何发往私有地址的内容离开您的网络。
许多路由器只是转发所有流量,根本不进行任何过滤。私有地址看起来就像任何其他地址一样。如果路由器没有明确定义的路由,它会将其发送到其默认网关。
显然,您已经设法通过配置不当的路由器联系到了其他人。
还存在可以泄露私有 IP 的情况,并且这些私有 IP 仍然不能公开访问。假设您有一个像这样的简单网络。我们还假设除路由器 2 和路由器 3 之间的子网外,所有 IP 地址都是可公开路由的。当您从客户端 1 运行到客户端 2 的跟踪路由时,您可能会或可能不会看到来自路由器 3 的响应。如果您有良好的过滤器,您将看不到回复,如果没有,并且其他系统都没有过滤器,您将看到回复。从跟踪路由返回的数据包通常将包含接收跟踪的接口的 IP,但它将发往运行跟踪路由的计算机的 IP。由于目标地址有效,因此即使数据包具有私有 IP 作为源地址,它也将被传送。
- 客户端 1 连接到路由器 1
- 路由器 1 连接到路由器 2
- 路由器 2 连接到路由器 3
- 路由器 3 连接到客户端 2
从很多方面来看,这又回到了这个问题中关于IP伪造。当没有过滤器时,您也不关心回复,源地址可以是任何您想要的地址。由于 traceroute 实现使用 ICMP,而 ICMP 是无状态的,您可能会看到无法直接访问的 IP 地址,甚至可能是无效的。
答案2
看起来您的原始网络是 192.168.28.0。您的机器或路由器是否知道 172.30.138.x 网络?如果不知道,它会像它不认识的任何其他网络一样向其发送默认路由。
您需要在原始机器上的 172.30.138.x 网络中添加一个接口,或者在路由器上的该网络中添加一个接口,以便它可以正确引导流量。
答案3
全都是康卡斯特,这是否意味着他们的路由器设置错误?
设置错误吗? 是的,私有地址绝对应该在网络内部进行过滤。但如果他们有点马虎,那么如果路径全部康卡斯特——在运营商网络中,尤其像康卡斯特这样粗心大意的公司,在边缘网络会认真过滤私有地址,但在核心或接入部分则过滤得远不如康卡斯特。在你的情况下,整个路由似乎都是康卡斯特独有的,因此“合理”的是,这实际上可能会被转发到康卡斯特内部的一个目的地,而这个目的地实际上会对此负责。当然,这不是一个干净的网络实现,你确实从巴尔的摩地区去了丹佛,最后到了佐治亚州,但它是可能的在一个允许这样做的完整的“自治系统”内。
答案4
私有地址就像任何其他 IP 地址一样。如果将其公布到互联网,它将是可路由的。据推测,ISP 有入站/出站过滤器,以防止将这些地址泄露给“最终用户认为是互联网的地方”。
但就您而言,流量从未离开过 Comcast AS7922。Comcast 使用的是 RFC1918 私有地址,就像其他人一样(ISP 通常将它们用于 STB、调制解调器、DHCP、DNS 等)。如果他们不过滤它,那么您就可以访问它...