如果IGP协议满足内部通信的需求,为什么要在自治系统中使用iBGP


22

谁能解释为什么当我们拥有用于AS内部的内部通信的IGP协议(OSPF,RIP)时,为什么需要使用iBGP进行路由?

我已经阅读了很多文章和书籍,但是找不到答案。

Answers:


26

当我们拥有用于内部通信的IGP协议(OSPF,RIP)时,谁能解释我对路由的IBGP通信的需求?

  • 可伸缩性1:假设您在多个位置2接收到500,000条EBGP路由,并且您需要影响AS中每个路由的出口点。与IGP协议相比,BGP处理更多的路由。因此,除非您愿意重新分配通过eBGP学到的所有路由,否则需要iBGP。
  • 加强信任/控制的边界:与IGP(用于控制您通告和接收的内容)相比,BGP有更多的方法来过滤对等体。

  • 灵活的数据结构(与上一个项目符号有关):BGP社区BGP扩展社区local-pref等,这些使BGP成为在您的自治系统中(通过使用iBGP)实现自定义路由策略的一种有吸引力的方法。

与所有事物一样,也需要权衡取舍。从iBGP获得的可伸缩性,控制性和灵活性意味着,它的融合协议比IGP慢(通常)。


尾注:

1 可扩展性

  • 您使用BGP是因为您不想将整个Internet路由表都包含在IGP中(例如,对于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引起严重中断。

2个 iBGP路由示例

要了解为什么需要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(请注意bestRIB条目下的)。在这种情况下,BGP选择此选项是因为此路由的AS路径列表最短。但是,并非所有路由都首选通过AS3356(连接到R1)。R3(通过AS7660)可能更受欢迎。iBGP使您能够(在R2处)知道采用哪种方法走最短的BGP路径。

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
                                         |

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

R2>sh ip route 4.69.184.193
Routing entry for 4.69.184.192/30
  Known via "ospf 100", distance 110, metric 65536, type intra area
  Last update from 192.0.2.109 on GigabitEthernet3/1, 1w0d ago
  Routing Descriptor Blocks:
  * 192.0.2.109, from 192.0.2.3, 1w0d ago, via Serial2/1
      Route metric is 65536, traffic share count is 1

R2>

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


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

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

10

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

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

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

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

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



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

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

2
哪一页声称BGP不是距离矢量?
ytti 2013年

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

7

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


3

iBGP并没有真正用于内部路由,所有eBGP路由器都使用iBGP共享其路由。

例如:如果您正在与其他3个网络建立对等关系,则希望所有eBGP路由器都知道其他路由器所接收的路由,以便它们可以在必要/需要时将该信息传播给对等方(因此,您的对等方通过您)

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.