#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告诉我们下一跳的地方。
#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
评论
不知道我是否理解这部分内容:“除非您愿意重新分配通过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