我在BGP AS 65000中有两个站点A和B,在AS 65001中有第三个站点C。这三个站点都通过运营商MPLS具有连通性,并且站点A和B之间存在内部连通性。我试图影响BGP因此从站点A到站点C的流量将通过站点A的MPLS链路进行路由,而从站点B到站点C的流量将通过站点B的MPLS链路进行路由。拓扑类似于此示例中描述的拓扑。



站点A和B的边缘路由器都将自己的MPLS链路视为最佳路径,因为EBGP路由优先于IBGP路由。但是,位于AS 65000内部的路由器都将更喜欢一个链接或另一个链接。我的目标是强制任一站点上的所有路由器都选择最接近的链接。 (不幸的是,目前我无法将两个站点拆分为单独的AS。) B链接?

编辑:我应该注意到这里没有使用IGP。实际上,每个站点的网络都存在于VRF中,是一个更大得多的网络的一部分。因此,任何解决方案都必须完全依赖BGP。

评论

嘿,杰里米-下面对此有两个不错的解决方案,但是我不能做出安全的假设,即您对IGP具有管理控制权。你能澄清一下吗?

在这种情况下没有IGP。实际上,这仅代表更大网络中的一个VRF。为了清楚起见,我省略了这些细节。

那就是我所担心的。 :-)感谢您的澄清。

我认为这里缺少一些东西。因此,我们两个假设AS 65000中的A和B之间存在链接(可能由于多个内部路由器而导致链接很多)?另外,您看到的是次优的吗?一个(或多个)距离A更近的路由器(从拓扑上来说)是否通过B发送流量以到达C?

@javano问题是,A和B(边缘路由器)都是同一ASN中的iBGP对等体,因此从C获悉的任何前缀都将在两个框中的RIB中具有2条路径,而eBGP路径将总是获胜,因此从AS6500到AS65001的出站流量会停留在一个链接上。

#1 楼

如果站点A和站点B之间有明确的定义?
一旦将此社区放在前缀上(例如,站点A的地址为100:1,站点B的地址为100:2),则可以向站点A的每个路由器添加策略,以增加与社区相关的任何路由的LP 100:1,对于具有社区100:2的站点B同样如此。自己到运营商的上行链路。

评论


这可能是最好的方法,但是如果杰里米(Jeremy)从C发布单个摘要,则他必须将其拆分为大块,以使其有效工作。

–约翰·詹森(John Jensen)
13年5月22日在19:53

我认为这是我要走的路。明天将需要进行实验,看看我是否在任何地方都被卡住了。

–Jeremy Stretch
13年5月22日在20:10

@JohnJensen不需要任何此操作,因为站点A和B都将从运营商处接收相同的前缀,因此可以在不中断LP的情况下对自己的“站点”前缀进行修改。

–大卫·罗瑟拉(David Rothera)
13年5月22日在22:08

进一步思考时,最好使用局部重要属性(例如权重),而不是可传递属性(例如LP)。

–大卫·罗瑟拉(David Rothera)
13年5月22日在22:10

@DavidRothera如果从C声明了多个前缀,那将是正确的-可能只有一个前缀来自C,在这种情况下,我不能完全确定通过社区设置localpref会有所不同在解决杰里米(Jeremy)的问题时,因为只有一个前缀,并且可以选择两个社区和两个不同的LP值,所以较高的LP将是首选,并且流量仍将固定在一个链接上。同时也同意使用局部重要属性可能会更好。

–约翰·詹森(John Jensen)
13年5月22日在22:27



#2 楼

当我做类似的事情时,我没有在路由器之间使用eBGP。我让使用BGP的路由器仅通过OSPF将默认路由发送到站点A和站点B路由器,然后将OSPF路由重新分发到BGP中。在两个站点之间的链接上,我应用了OSPF开销。

,这允许站点A具有到其网络,站点B网络的路由,以及从站点A退出的默认路由(OSPF开销如果您丢失了站点A链接,则保留来自站点B的默认路由作为辅助选项)。除非站点之间存在链路故障,否则站点A将直接使用站点MPLS,而不会使用MPLS。

在重新分配期间,OSPF成本也会转化为BGP MED,这会导致运营商MPLS网络宁愿直接将站点A的流量发送到站点A,也可以根据需要使用站点B到达站点A。

#3 楼

我感觉缺少一些信息。为什么边缘路由器已经不喜欢最佳路径了?

您在65000中拥有全网状iBGP吗?还是在使用路由反射?

如果您具有全网状iBGP,则每个边缘路由器都会从两个[AB]处学习路由,并将诉诸于将IGP成本与下一跳进行比较,后者应转换为最接近的边缘盒。 >
如果存在路由反射,它将仅从其自身的POV反映最佳路由,这可能会删除最佳路径转发。也可以通过添加另一个RR来解决此问题,该RR将选择其他路线作为最佳路线,然后边框再次可以选择最佳路线。
如果不可能像这样固定RR。您可以在两个边界路由回送中添加相同的IPV4地址,并且当边界路由器向RR通告前缀时,它们会将下一跳设置为该任意播地址。然后,即使经过反射,您也将遵循IGP到最近的边界。

#4 楼

如果您可以控制IGP:

我们要做的就是在iBGP网格中只有eBGP路由器。我们其余的内部路由器是OSPF路由器。我们在每个AS内从BGP重新分配到OSPF。我们的设置与您的设置略有不同,但是这应该允许OSPF的成本指标通过将其定向到最近的eBGP路由器来影响路径流量。 br />
也许您可以对内部路由器应用导入策略,以使它们静态地偏向于所需出口eBGP路由器的路由公告。因此,例如,如果iBGP包含给定前缀的两个公告(来自站点A路由器的一个公告和来自站点B路由器的一个公告,但是在RIB中仅安装了一个公告),则可以在发布时本地预想所需的公告进入。我必须进行实验,但是我不明白为什么它不起作用。

评论


是的,假设您具有使用IGP的能力,那将是我想象的最好方法。不幸的是,这不是我的情况。 :(我已经更新了问题,以包括这个被忽略的细节。

–Jeremy Stretch
13年5月22日在17:49

我喜欢David Rothera的答案,因为它和我的一样,但是他增加了使用社区的细节:)

– netdad
13年5月22日在18:50