更好的企业多宿主


33

我想就我可以改进BGP双提供商,双路由器设计的方法获得一些意见。每个提供商都提供一个/ 24公共子网。我将路由器,电路,子网,HSRP组和提供程序分别称为A和B。每个电路上的带宽足以承受整个负载。

当前设计

当前的设计试图实现每个提供商的对称性。在稳定状态下,预期的路由逻辑是去往/来自子网A的流量仅通过电路A,而去往/来自子网B的流量仅通过电路B。这些电路将在故障状态下互相备份。

提供者仅通告默认路由。出站路由需要混合使用PBR和HSRP。路由器之间没有路由:没有iBGP,没有OSPF,没有静态路由。而是有两个HSRP组跟踪默认路由。路由器A是HSRP组A的主要路由器,路由器B是HSRP组B的主要路由器。下游设备具有指向HSRP组A和PBR的默认路由,该默认路由将来自子网B的流量定向到HSRP组B。入站路由会受到前缀和社区。子网A前置在电路B上并进行通信,子网B前置在电路A上并进行通信。

我认为该设计还有很大的改进空间。缺乏Internet拓扑意识以及电路亲和性完全消除了最佳路径选择。对提供商的级别指定存在担忧,并且该设计已合理化为提供“可接受的性能”并且更易于排除故障。确实,设计不可能再简单了。我已经证明,转换额外的AS会给RTT增加6跳和63ms(+ 421%)。我宁愿不接受可接受的条件。

更好的设计

更好的设计为路由器提供了尽可能多的Internet拓扑意识。剩下的最佳路径算法是确定入站和出站路由逻辑。电路将在故障状态下互相备份。

提供者公布完整视图。路由器运行iBGP和OSPF。消除了HSRP。出站路由将纯粹是基于目标的最佳路径,而入站路由将留给最佳路径算法和中转服务提供商。

现在,我将其键入,看起来确实更简单。至少,用更少的词来解释。人们担心不对称性,但是我在当前设计中已经看到很多不对称性。我认为他们可能同样容易出现不对称现象,这真的让我不担心。结果我们从未见过问题。目前,它只属于ifs领域,“我们必须对某些'if'进行故障排除吗?”

我要离开这里吗?还是我碰到了头?别人如何解决这个问题?Google会做什么?


很大的细节和解释。欢迎!
Pandom

传统上,“我想对我的设计发表一些意见”问题并不是很好的SE问题……但这可以在meta上进行讨论
Aaron

Answers:


16

是的,您确实碰到了头。

在改进的设计中您将获得不对称性,但是不对称性在Internet上已成事实,并且确实没有充分的理由期望来回通信的对称路由。射击,数据包路由的整个概念是,单独的数据包彼此独立地路由,并且可能采用不同的路径,即使数据包沿同一方向传播。

我个人不喜欢PBR。它是其中的一项技术,当我决定为问题提供最佳解决方案时,我会停下来并退后一步,看看我是否真的了解问题的真正本质,甚至还可以找出要解决的业务问题。是。当我这样做时,我几乎总会发现有一种无需使用类似技术即可解决问题的方法。

在路由器中拥有完整的Internet路由将需要一些时间来适应,但是一旦习惯了,确实很容易理解和排除故障。当然,不必担心不同协议的“活动部分”。

您不想在OSPF数据库中拥有完整的Internet路由,因此您将希望通过OSPF将默认值发布到网络内部(或者可能是静态默认值……我个人更喜欢OSPF中的默认值)。这样会将流量移向使用BGP的Internet路由器,从而可以更充分地做出拥有完整Internet路由的决定。

这将使您接近“基于目的地的最佳路径”。在某些情况下,流量还会执行您并不期望的事情,因此您需要熟悉BGP路由选择过程。


谢谢,杰夫。我同意您对PBR的态度。我已经看到它以噩梦般的方式实施。我从网络中窃取了更多的PBR,这比我想记住的要多。我曾经管理过一个分层环境,在该环境中,将PBR部署为虚拟路由机制,并且每个SVI(100个)具有唯一的路由映射。PBR还包含允许/不设置条款,导致流程切换。在硬拷贝中,它就像60页的配置。不用说,我把破坏球带到了上面。将其替换为VRF。
丹尼斯·奥尔瓦尼

6

为已经给定的其他方案提供不同的方法,该方法可能会或可能不会优于现有的想法,但主要是通过一些额外的想法;

我想说,您可以采取以下两个简单的步骤来改善当前状况:

步骤1 ;

从两个提供商那里获取完整的BGP表-现在,您将拥有更好的出站路由,因为您将通过具有最小AS路径到目的地的中转提供商进行路由。如您所说,您可以删除HSRP并简单地在OSPF中发布默认路由,并在两个边缘路由器之间运行iBGP。

步骤2 ;

在两个边缘路由器上设置AS前缀和社区等,以根据需要精确地控制出站流量。因此,ISP B可能具有到某些子网的更好的路由,但是您可能会从ISP A购买更多的传输,而是通过它们来购买,等等。


假设您提到的两个/ 24具有独立于PI的地址空间,因此您要通过两个提供商来宣布它们,或者两个提供商都同意为您宣布相同的IP地址空间,那么现在您可以从两个路由器中向两个ISP宣布两个前缀没有前缀或社区,也可以获得更好的入站路由(当然,除非您有一些CDR,否则您需要先熟悉或类似,在这种情况下,您可以根据需要进行调整)。


谢谢,javano。我认为我们同意入站和出站路由策略是有害的。我完全想取消PBR,前置和社区!
丹尼斯·奥尔瓦尼

3

从简单开始,然后仅在需要时才添加复杂性。我会问是否甚至需要在您的Internet边缘路由器上运行OSPF。将PBR引导至路缘,仅在内部网络上使用。

  1. 如果您的路由器有内存,请选择完整的Internet路由,但要进行过滤!扔任何GT / 24。
  2. 采取从A和B出发的默认路线。
  3. 必须运行iBGP,以便您的路由器考虑从A和B收到的所有前缀来做出最佳路径决策。
  4. 如果您打算同时使用两个提供商的A和B的/ 24,则可以通过在B的网络上添加A的/ 24来更好地影响入站流量,反之亦然。两个/ 24都必须做广告!请与您的ISP联系以了解他们的社区,以便为您设置前置项。
  5. 对来自防火墙的出站流量使用两个不同的HSRP组;您可以将ECLB设置为共享负载到两个路由器。 等额成本负载平衡

如果您只使用向A和B宣传的单个/ 24,则可以简化所有这些操作。

稍后,请研究更多的复杂性以更好地进行流量工程和保护:

  1. 熟悉A和B的社区,因为您可能更喜欢使用对等路由映射来设置localpref以确定使用A vs. B的路由。
  2. 在两个路由器上都设置一条浮动静态默认路由,作为对其他所有路由的紧急备份,以防BGP崩溃。

    ip route 0.0.0.0 0.0.0.0 a.b.c.d 254
    
  3. 研究更复杂的广告方式来控制您的入站策略,例如,一半的IP空间通过A,另一半通过B。对于给定的/ 24,您可以将/ 24分别广告给A和B,但将其分成两个/ 25,并将较低的/ 25通告给A,将较高的/ 25通告给B。

  4. 使用软重新配置,以便您可以调整策略并在BGP会话上进行软重置,因此,如果完全重置(或清除)会话,则不会在另一端造成前缀衰减。政策变更需要重设。


1

因此,从本文中我了解到,您实际上并不需要根据AS路径来决定是否可以到达外部子网,并且双归到两个ISP的唯一目的是购买冗余以到达Internet。如果是这样,那么您实际上就不需要运行BGP。您可以只接受已经从两个服务提供商处接收到的相同默认路由。现在,对于网络的本地端,在与局域网相对的接口上连接到ISP的路由器上运行单个ospf区域(在此过程中不要包括ISP接口),具体取决于设计的简单程度。您可以在不同区域中添加路由器并在网络边界处汇总子网,但是对于两个子网,我认为OSPF数据库的大小或LSA泛洪的数量并不是一个大问题,

在连接到ISP的每个OSPF路由器上,使用“ default-information origin”语句将学习到的默认路由重新分配到OSPF中。

几个优点:

  1. 通过这种设计,当您扩展网络时,可以与服务提供商一起启用BGP,并且只接受默认路由而无需接触任何下游设备。在您确认从BGP收到默认路由之前,您还不错。

  2. 每当需要将流量从ISP路由出去进行维护时,只需从该路由器上OSPF进程下面删除“默认信息来源”,然后继续进行维护即可。不需要什么了。

我同意先前的回答,即对称路由被高估,我宁愿追求可伸缩性和易于维护。


如果我了解@ user161的计划,则目标是更智能的出站路径选择。如何在基于OSPF的解决方案中实现这一目标?
Paul Gear

谢谢,Vinny。外来流量的故障转移不是问题,但是我是否不需要BGP对入站进行故障转移?如果这仅仅是用户将PAT接入互联网,那可能是可行的,但这是一个虚拟主机环境。
丹尼斯·奥尔瓦尼

@ user161:绝对,如果我们需要对原始子网进行入站故障转移,那么您确实需要运行BGP。请与您的ISP一起检查它们是否支持BGP对等的ORF功能,以便您可以通过BGP在边界路由器上使用入站筛选器通过BGP通告本地起源的子网,以仅接受默认路由和/或从ISP路由器中选择的几个子网。如果ISP不支持ORF,那么真的没有比购买带更多果汁的路由器更好的选择了
。– Vinny

1

如果完整的BGP表对您来说太多了,我认为您可以考虑只接收一部分。提供商A和提供商B可能各自发布一条默认路由及其本地AS路由。您将需要在内部运行iBGP。这样,对于直接连接到提供程序的任何内容,您将拥有最短的路由,而对于下游AS路由,则将采用最短的路由。


谢谢,凯利。更好的设计将运行iBGP。硬件的更新促使体系结构审查,因此我不太担心路由器能够处理该体系结构。销售团队说,从IOS过渡到JUNOS是一个轻而易举的事。到目前为止,我不确定我是否同意。
丹尼斯·奥尔瓦尼

我不知道我会说这是步履蹒跚...学习艰巨,不仅是新语法,而且是语法新概念。我要说的是,我认为这是值得的。JunOS会让您有些挠头,但是在某些时候,它将单击并开始变得有意义。当然,您仍然必须查找内容(知道某种语言的语法与了解词汇是不一样的),但是总的来说,这是有道理的。
杰夫·麦卡丹斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.