如何防止多个eBGP路由器的不对称路由?

我有2个路由器通告一个/ 22子网给不同的提供者(一个提供者连接到两个路由器中的每一个)。 我已经在2/23中分出/ 22,在每个路由器上加上/ 22(提供者将采取更具体的路由)。 这允许我故障转移,并保持/ 23内进出相同的提供商的stream量。

还有什么其他方法可以在两台路由器上公布/ 22,并且在路由器后面的networking上有来自服务器的数据包,可以从它们进来的同一个路由器上退出?

编辑:

我遇到的主要问题,最终用户和客户抱怨最多的是,最短的跳跃路线有时不是“最佳”路线。 就我而言,我知道提供者B可能对X国有更好的延迟。 但是当数据包从提供者B进入时,他们可能会走出提供者A或提供者B.反过来也是如此。 如果我向X国外运营商A发送一个数据包,即使它可能有更多的跳回,数据包可能会从提供商B(可能有较高的延迟,数据包丢失等等)进入该国家)

严格来说,当您向多个提供商宣布您的前缀时,您将无法完全控制入站路由path,因为为了向您返回stream量而存在独立的下游路由决策。 而且,您的公告甚至可以在发送后由下游提供商修改。

这是可能发生的一个例子。 假设你有AS 777,它拥有2.2.0.0/22。 你有一个路由器A的公司需要访问的服务…让我们也假设AS 100没有一个很好的链接给你(也许它是间歇性地破坏stream量,由于物理层的问题,你一直无法修复)。 所以你自己想: “我只是把我所有的通告都放在AS100上,而且有大量的ASNs,所以没有人会更喜欢AS100的链接,直到我能解决这个问题”

bgp不对称

问题是您只能完全控制您的出站路由决策 。 你不能完全控制入站…所以我们假设路由器A的pipe理员不知道你与AS100的链路是坏的。 他们双归属到AS200和AS100,但是AS100提供了更便宜的传输,每Mbps; 因此路由器A的工程师从AS100获取完整的路由,只使用AS200作为备份(仅从它们进行默认)。

作为AS 777的pipe理员,可以强制stream量通过AS 200到达Router A,但从Router A到2.2.0.0/22的stream量仍然会占用AS 100(因为最好的路由是通过AS 100在Router A)。

可能的解决scheme

通常,非对称path很重要,因为负载均衡器或防火墙正在接收stream量。 可能的解决scheme

  • 对于在其他ASN中提供的服务,您可以将所有出站stream量的NAT源发送到一个到达特定AS的链路的本地地址(尽pipe这对服务提供商来说并不适用)
  • 对于ASN中提供的服务,您可以将所有入站stream量的NAT源发送到您的BGP对等路由器上的子网所在的本地地址(尽pipe这对服务提供商来说效果不佳)
  • 您可以设置一个DMZ,从所有不同的ASN接收stream量,并为来自上游的stream量提供一个入口/出口点。 在某些情况下,您甚至可以同步DMZ设备上的状态表。 (虽然这对服务提供商来说效果不佳)
  • 如果您愿意使用BGP Conditional Advertisement等function ,则有时可以绕过这些types的问题,但不要将其他运营商用于2.2.0.0/22的入站stream量。

如果您提供有关服务和问题性质的更多细节,我们可能会提供更具体的build议。

还有什么其他方法可以在两台路由器上公布/ 22,并且在路由器后面的networking上有来自服务器的数据包,可以从它们进来的同一台路由器上退出?

你为什么要这个? 或者更准确地说,你为什么要强制这种行为(因为通常这会发生什么感谢路由的魔力)?


BGP和构成现代互联网的分布式路由层次结构的整个意义在于你的数据包将采用最好的可用path到达目的地。 如果一个数据包通过Route A进入,但是由于某种原因, Route B是回复更好的select,那么您为什么不想通过最佳路由发送回复呢?

我能看到的唯一原因就是想把你的stream量从一个更昂贵的运营商(在这种情况下有更好的方法)偏见。

这里实现对称性的方式其实不是BGP的function,而是NAT。 假设您继续使用两台路由器之间的广告scheme,以及每台路由器的1/23。 设置出站NAT,使得离开给定边界路由器的stream量在该路由器的/ 23中被赋予一个源地址。 为了实现入站stream量的对称性,您还需要源NAT来将连接从全局源转换为分配给每个边界路由器的池。

您将在服务器级别将连接实际来自哪里的可见性丢失,但可以通过Netflow或类似机制从路由器中检索这些信息。

这里介绍的潜在复杂程度有相当大的程度,这也将把服务器的默认网关置于何处以及如何安装。 这可能需要一个中间层的BGP讲话路由器/适当的策略来保持本地始发的stream量正确的方向。 但是,总的来说,当你在多个路由器中使用相同的度量标准发布相同的路由时,确保对称路由并不是一个很好的方法 – 而且,诚实地说,对于状态感知设备(如某些防火墙或负载平衡器)对大多数networking而言,这不是典型的devise目标。