如果公共 IP 固定到单个 AS,BGP 任播如何工作?

如果公共 IP 固定到单个 AS,BGP 任播如何工作?

据我了解,公共 IP 块分配自互联网号码分配机构,将子块分配给区域注册机构,将子块分配给 ISP,将子块分配给各个屁股正如这个问题所概述的:IP 地址实际上是如何分配的?

这(以及类似的资源这一页) 似乎意味着 1 个公网 IP 映射到 1 个 AS。

但是,任播似乎可以通过从多个位置通告相同的公共 IP 地址来工作,从而提供到该 IP 的不同路径。例如:

如果公共 IP 应该解析为单个 AS,那么任播如何工作?

  • 这是假装在做 BGP 的黑客行为吗?多宿主/多路径并在流量通过 AS 时抓取它(这里似乎暗示了这一点:https://serverfault.com/a/728609/148476)?
  • 这是否只是每个 AS 1 IP 这一“规则”的一个例外?
  • 或者也许我只是错过了一些东西......

答案1

前缀的 IP 地址或 Internet 路由不要求来自单个 AS。ASN 分配给组织,地址也分配给组织。像 ARIN 这样的注册商不会将我的地址分配与我的 ASN 分配联系起来。即使在像资源公钥基础设施它仍然允许多个 AS 发起到网络的路由。 威尔士队页面在常见问题解答中这样说:

在某些情况下,多个不同的网络或自治系统会宣布一个网络前缀。最可能的原因是所谓的“多宿主”。这是完全正常的。根据您对互联网拓扑和发起网络策略的看法,其中一个发起网络将成为与相关网络块发送和接收流量的首选路径。

这是(长)网络列表当前由多个 AS 进行通告。

至于它如何到达目的地:路线是通过BGP 路径选择算法根据流量经过的每个路由器所知道的信息选择路径。互联网上的每个路由器都有自己的路由表视图,因此互联网某个部分的流量可能最终到达与互联网另一部分的流量不同的位置和 AS。甚至不需要让流中的每个数据包都到达同一个地方,这显然在任播或多宿主的情况下会使事情变得有趣。

答案2

AS 不一定需要限制在单个物理位置。

当进行任播时,您可以在许多物理位置运行路由器,每个路由器都与不同的 ISP 对等作为相同的 AS,并向任播 IP 地址通告路由。

从 BGP 的角度来看,它与你在一个站点中使用来自 AS 的多个 ISP 实现冗余的做法并没有什么不同;在“一个站点,多个 ISP”的情况下,一个路由器发送“我是 AS X,我有 IP 范围 Y!”给多个 ISP;在任播中,你只是指示地理位置分散的路由器全部向它们自己的 ISP 通告它们自己几乎相同的“我是 AS X,我有 IP 范围 Y!”消息,声明你的 AS 和任播范围,并让 BGP 选择最佳 ISP 来发送流量。

ISP 并不知道其中的区别;互联网无法意识到各种可用路径不仅仅是通向同一个高度冗余的站点。

答案3

这(以及像此页面这样的资源)似乎意味着将 1 个公共 IP 映射到 1 个 AS。

是的。确实如此。

然而,任播似乎可以通过从多个位置广播相同的公共 IP 地址来工作,

只需“照做”即可。AS 是定义其自身国际路由的实体。它可以将同一 IP 地址连接到多个位置 - 只要路由在连接过程中不会发生变化,就可以了。

只是暂时无知(因为在这里无知是有效的)。

如果您在美国请求 IP x,则根据 AS BGP 规则,您将转到美国的数据中心。如果您在澳大利亚请求 IP x,则最终将转到澳大利亚的数据中心。完成。没有任何规定说只要路由稳定,IP 就不能重复使用。

这不是一个 BGP 黑客攻击,而是一个 BGP 的正常使用。

相关内容