开放互联网上的 RFC 1918 地址?

lon*_*eck 18 routing rfc

在尝试诊断 Cisco ASA 5520 防火墙的故障转移问题时,我运行了一条到 www.btfl.com 的跟踪路由,令我惊讶的是,一些跃点作为 RFC 1918 地址返回。

需要明确的是,该主机不在我的防火墙后面,并且不涉及 VPN。我必须通过开放的互联网连接才能到达那里。

这怎么/为什么可能?

asa# traceroute www.btfl.com

Tracing the route to 157.56.176.94

 1  <redacted>
 2  <redacted>
 3  <redacted>
 4  <redacted>
 5  nap-edge-04.inet.qwest.net (67.14.29.170) 0 msec 10 msec 10 msec
 6  65.122.166.30 0 msec 0 msec 10 msec
 7  207.46.34.23 10 msec 0 msec 10 msec
 8   *  *  *
 9  207.46.37.235 30 msec 30 msec 50 msec
 10 10.22.112.221 30 msec
    10.22.112.219 30 msec
    10.22.112.223 30 msec
 11 10.175.9.193 30 msec 30 msec
    10.175.9.67 30 msec
 12 100.94.68.79 40 msec
    100.94.70.79 30 msec
    100.94.71.73 30 msec
 13 100.94.80.39 30 msec
    100.94.80.205 40 msec
    100.94.80.137 40 msec
 14 10.215.80.2 30 msec
    10.215.68.16 30 msec
    10.175.244.2 30 msec
 15  *  *  *
 16  *  *  *
 17  *  *  *
Run Code Online (Sandbox Code Playgroud)

它从我家里的 FiOS 连接中做同样的事情:

C:\>tracert www.btfl.com

Tracing route to www.btfl.com [157.56.176.94]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  myrouter.home [192.168.1.1]
  2     8 ms     7 ms     8 ms  <redacted>
  3    10 ms    13 ms    11 ms  <redacted>
  4    12 ms    10 ms    10 ms  ae2-0.TPA01-BB-RTR2.verizon-gni.net [130.81.199.82]
  5    16 ms    16 ms    15 ms  0.ae4.XL2.MIA19.ALTER.NET [152.63.8.117]
  6    14 ms    16 ms    16 ms  0.xe-11-0-0.GW1.MIA19.ALTER.NET [152.63.85.94]
  7    19 ms    16 ms    16 ms  microsoft-gw.customer.alter.net [63.65.188.170]
  8    27 ms    33 ms     *     ge-5-3-0-0.ash-64cb-1a.ntwk.msn.net [207.46.46.177]
  9     *        *        *     Request timed out.
 10    44 ms    43 ms    43 ms  207.46.37.235
 11    42 ms    41 ms    40 ms  10.22.112.225
 12    42 ms    43 ms    43 ms  10.175.9.1
 13    42 ms    41 ms    42 ms  100.94.68.79
 14    40 ms    40 ms    41 ms  100.94.80.193
 15     *        *        *     Request timed out.
Run Code Online (Sandbox Code Playgroud)

And*_*w B 16

不只是 RFC 1918 ...还有RFC 6598,即100.64.0.0/10CGN 空间。这两个都是专用网络,但后者最近标准化并且鲜为人知。

从 traceroute 的角度来看,这并不罕见。您实际上并没有直接与那些 10space 和 100space 主机交谈,而是将 TTL 逐渐增大的数据包发送到您的下一跳路由器。为了防止答案过长,这个维基百科链接总结了这个过程。

什么不寻常的是,这个数据包穿过公共IP地址空间,然后通过专用的IP地址空间隧道到达再次达成“公共”网。157.56.176.94归微软所有,数据包在到达私有网络之前遍历 MS 拥有的网络......所以这只是微软选择在私有空间两端处理他们的网络空间。他们通告路由;其他路由器只是按照他们的吩咐去做。

作为一般规则,不,网络运营商通常不会沿从其网络外部到公共 IP 空间的路由暴露其私有网络。这就是为什么这如此不寻常。

(这可能是他们边界某处丢失的路线,导致数据包穿过最终到达目的地的非最佳路径,但我不是网络专家,有人可能会采取更好的措施)


Fal*_*mot 11

允许路由器使用 RFC1918 或其他私有地址相互连接,实际上这对于点对点链接以及发生在 AS 内的任何路由等事物来说非常常见。

只有网络上的边界网关实际上需要可公开路由的 IP 地址才能进行路由工作。如果路由器的接口没有连接到任何其他 AS(或任何其他服务提供商,更简单地说),则不需要在 Internet 上通告路由,只有属于同一实体的设备才需要直接连接到界面。

数据包在 traceroute 中以这种方式返回给您是对 RFC1918 的轻微违反,但实际上没有必要为这些设备使用 NAT,因为它们本身并不连接到 Internet 上的任意事物;他们只是通过交通。

流量采用(可能是迂回的)路由通过它所做的几个组织仅仅是外部网关路由协议运行的结果。微软有一定的骨气,有些人已经看过了,这似乎是完全合理的。您不必成为批发 ISP 即可路由流量。

流量已经通过多个具有私有 IP 的路由器系列,通过其间具有公共 IP 的路由器传输,这并不特别奇怪 - 它只是表明(在这种情况下)路径上的两个不同网络已经通过它们自己的路由器路由了流量他们选择以这种方式编号。