任何人都可以解释为什么当我们拥有用于AS内部的内部通信的IGP协议(OSPF,RIP)时,为什么需要使用iBGP的路由吗?找到答案。

#1 楼


当我们拥有用于内部通信的IGP协议(OSPF,RIP)时,谁能解释我对路由的IBGP通信有什么需求?可伸缩性1:假设您在一个以上的位置中接收到500,000条EBGP路由2,并且您需要影响AS中每个路由的出口点。与IGP协议相比,BGP处理更多的路由。因此,除非您愿意重新分配通过eBGP学到的所有路由,否则就需要iBGP。
加强信任/控制的边界:与IGP相比,BGP有更多的方法来过滤对等体(用于控制广告和接收的内容) 。
灵活的数据结构(与上一个项目符号有关):BGP社区,BGP扩展社区,本地首选项等...这些使BGP成为在您的自治系统中实施自定义路由策略的有吸引力的方式使用iBGP)。

与其他所有方法一样,也需要权衡取舍;从iBGP获得的可扩展性,控制性和灵活性意味着,它的融合协议比IGP慢(通常)。


结尾注释:

1可伸缩性:


您使用BGP是因为您不想携带全部内容IGP中的Internet路由表(在我的情况下为OSPF)...
OSPF并非旨在处理Internet BGP表中的数千条路由...如果您尝试为此目的使用OSPF,破坏您的网络。以OSPF为例,来自500,000条路由的LSA处理/泛洪要求占用了路由器太多的资源。命名任何其他IGP(EIGRP,RIPv1 / 2,IS-IS,IGRP),都是如此。
在一些臭名昭著的实例中,一级ISP意外地将其BGP表重新分配到其IGP中(即使Internet表只是其当前大小的一小部分),也造成了严重的中断。现在已经在IGP协议(如IOS中的OSPF协议)中实施了对策,以防止从BGP重新分配到OSPF引起严重中断。要了解为什么要使用iBGP,请考虑到4.2.2.2的路由条目...

R2>sh ip bgp 4.2.2.2
BGP routing table entry for 4.0.0.0/9, version 3146
Paths: (32 available, best #7, table Default-IP-Routing-Table)
... <!-- extra BGP RIB entries deleted -->
  7660 2516 3356, (aggregated by 3356 4.69.130.4)
    203.181.248.168 from 203.181.248.168 (203.181.248.168)
      Origin IGP, localpref 100, valid, internal, atomic-aggregate
      Community: 2516:1030
  3356, (aggregated by 3356 4.69.130.6)
    4.69.184.193 from 4.69.184.193 (4.69.184.193)
      Origin IGP, metric 0, localpref 100, valid, internal, atomic-aggregate, best
      Community: 3356:0 3356:3 3356:100 3356:123 3356:575 3356:2012
... <!-- extra BGP RIB entries deleted -->


有32条路径可供考虑...在这种情况下,BGP选择通过4.69.184.193转到4.0.0.0/9(请注意RIB条目下的best)。在这种情况下,BGP选择此选项是因为该路由的AS路径列表最短。但是,并非所有路由都会通过AS3356(附加到R1)获得优先选择。 R3(通过AS7660)可能更受欢迎。 iBGP使您能够(在R2处)知道采用哪种方法走最短的BGP路径。

R1,R2和R3是完全iBGP的网格。当iBGP发布路由时,下一跳保持不变。这意味着我需要在OSPF中携带4.69.184.193的子网...

BGP route to 4.0.0.0/9 via                                              
NH: 4.69.184.193 [Path: 3356]                                  
  -------->                                                     

 eBGP w/ AS3356 }{              iBGP inside AS64000          }{   eBGP w/ AS7660

                 S1/0       S1/2   S2/1     S2/3   S3/2    S3/0
Peered w/ AS3356    +------+         +------+        +------+       Peered w/ AS7660
4.69.184.193 <------|  R1  |---------|  R2  |--------|  R3  |-----> 203.181.248.168
                    +------+         +------+        +------+
                                         | S2/0
                                         |

                                         ^
                                         ^
                                         | Ingress packet to 4.2.2.2
                                         |

因此,当4.2.2.2的数据包到达R2时,R2将其发送出去Serial2 / 1,因为那是iBGP告诉我们下一跳的地方。

评论


不知道我是否理解这部分内容:“除非您愿意重新分配通过eBGP学到的所有路由,否则需要iBGP”。如果我们有两个边界eBGP路由器,则路由器A将不知道路由器B获知的路由,反之亦然。他们需要以某种方式交换信息,这通常使用iBGP完成。您将如何使用eBGP?我不确定eBGP如何使A和B都知道另一台路由器学到的路由。

–user4205580
16 Jun 30'12:42



您所引用的语句假设您有一些非eBGP发言者。假设您不能只使用到eBGP上游的默认路由,则可以执行以下操作:A)将eBGP前缀重新分配到IGP(通常是个坏主意),或B)使用iBGP。我的答案大部分时间都花在解释为什么iBGP有用。

–迈克·彭宁顿
16年6月30日在22:59

#2 楼

IGP通常是基于链路状态的OSPF或ISIS,它为我们提供了网络的所有信息,从每个人的角度来看每个人都知道网络,这提供了非常有趣的融合选项和流量工程选项。

BGP本质上是距离矢量,它整体上对网络的了解非常有限。 BGP处理过滤和修改路由信息的能力非常好。

与距离矢量相比,链接状态协议非常昂贵,将其缩放到INET DFZ大小将存在很大问题。

之所以拥有两者,是因为在一个特定的网络内,我们具有足够低的复杂性以使用链路状态协议来处理它,这使我们可以获得高知识的所有优势。
,但是由于它无法扩展到Internet规模,因此我们需要一些其他网络来连接这些许多链接状态岛。

您可以在自己的网络内部携带所有前缀(包括客户)添加到IGP中,但这会对IGP性能产生负面影响,而仅通过携带核心路由器的环回地址即可获得所有的融合和TE优势。向IGP添加客户前缀只会使IGP变得不必要地复杂,从而只会损害您的网络性能。

评论


BGP是一种路径矢量协议,与距离矢量协议不同

–迈克·彭宁顿
13年10月10日13:03



路径向量本质上是距离向量的特定情况。重要的是要认识到它们的复杂性和成本非常相似,而链接状态却完全不同。摘自Sam Halabi和Danny McPhersons的BGP书,第98页'如果不提到BGP属于距离矢量门槛,本节将是不完整的'

–ytti
13年10月10日在13:11

路径向量相似,但算法不同。您可以在2004年出版的Danny McPherson和Russ White的书《实践BGP》中了解有关此内容的更多信息。mobile link

–迈克·彭宁顿
13年10月10日13:34



哪一页声称BGP不是距离矢量?

–ytti
13年10月10日在13:41

AS路径是距离向量。是的,您还可以选择与其他参数一起操作路径选择。因此,Sam和Danny认为它除了是距离矢量外,还是路径矢量,我完全同意他们对此事的看法。消耗品脱争论此事可能是一种有趣的方式,但几乎没有建设性。

–ytti
13年10月10日在15:25

#3 楼

我经常看到的一个原因是清晰度:所有路由都在一个路由协议(BGP)中承载,IS-IS,OSPF或RIP仅用于邻接。因此,无需将路由从一种路由协议重新分发到另一种。

#4 楼

iBGP并不是真正用于内部路由,所有eBGP路由器都使用iBGP来共享其路由。其他路由收到的路由,以便他们可以在必要/需要时将该信息传播给对等方(因此,您的对等方可能会使用通过您的传输)