BGP理解之防止环路

BGP这个协议完全是一种策略性的路由协议,它的
复杂并不是由于路由算法有多难学,最主要的是利用BGP来控制路由流向的手段多样化复杂化。任何路由协议都要首先解决环路的问题,OSPFISIS利用了SPF算法来解决,EIGRP的算法比较新奇,是一种扩散算法,
那么BGP在设计中使用了很多小手段,把精力精中在设计多样化控制属性。(IGRPRIP见鬼去吧,在中国你想找到他们都难)1.BGP天生属性重要属性,ASPATH,BGP路由更新中,在
经过的自冶域(AS)号添加到更新中,这样,当BGP发现自己所在的AS也在其中,就可以
认为发生了环路。2.EBGP可以这样考虑没有问题,在某些场景中,会有问题。498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="501" height="303" src="http://images.51cto.com/files/uploadimg/20111122/1022510.jpg" />如上图,AS100的10.233.40.0/19更新传到AS200,在AS200中,不管是人工还是BGP的自动汇总属性,汇总成10.233.40.0/17传到AS300,再传回AS100中,在AS100看来,这条路由的ASPATH是(300,200)自己并未在其中!!这就会致环路的形成。解决方法是增加ASSET值,使得在路由汇总后(聚合)也保留其原来的aspath的属性值,这样就可以防止路由环路了。利用这种打标志的方法可以在AS间传递时不会发生环路,那么问题来了,如果在一个AS内怎么办?因为在IBGP中,至始至终都是在一个AS里打转,ASPATH也没有打的必要,
所以,在BGP中,IBGP是不会添加ASPATH属性的。那么怎么解决这样问题呢?3.开发者想到一个绝妙的思路,如果IBGP只是在邻接相互传递,即是说一对一。打个比方,我认识A,A认识B,
但是我与B是互不认识的,因为A是不会把我介绍给对方的。在BGP如果这样规定的话,IBGP邻接学习来的路由不发布到其他IBGP邻接,不就可以防止环路了,因为这根本就不可能有环生成,都是一条线。这方法很绝,但是这样一来就会要求全网二二之间建立邻接关系。4.这个时候就可以按照OSPF啊那样的思路来考虑这个问题,找个人大代表不就解决了,就是DR+BDR.为了表示高新科技就起个拉风的名字:路由反射器,就是RR了。这样就可以从逻辑上变成简单的hub-spoke的结构了。其实这个想法就是部分放开了上面第3说的潜规则。即是产生了中间人,使其可以把它认识的客户介绍给其他客户。为了防止环路,就要对中间人实行一定的公平法则,最重要一点,中间人不能改变客户的发出的信息,这样就算是环路信息传递回来也可以从更新中发现自己的RID(这也就是为什么配置LOOPBACK的原因了,那是多么重要的东西啊,在MPLS中
还会要求必定要/32位的)不就可以发现环路了。聪明!5.但是RR一带多的情况在大量路由器的时候也是体力而有所不支,一夫多妻,搞不了多少的,要不就会精竭人亡了。所以,还要想办法分担一下,怎么分担呢?能不能像OSPF那样,分成几个区,各管各的
然后区区之间保持必要联系呢?
肯定可以了,我的程序我作主,
于是BGP开发人员就想到了,通过把一个AS分成几个小AS,小AS间用EBGP邻接,在小AS内部用RR,哇多好的设计。拉风的名字是少不了的--->"联盟"confederation,(我在想为什么不叫部落呢?)AS内的多个联盟,在别的AS看来是不可见的。那么这样把结构又搞复杂了一点(怎么越简化越复杂了呢?)。在发明联盟后,怎么解决联盟间的环路问题呢?其实这个问题很好解决了,聪明的你肯定想到了,做个山寨的ASPATH不就可以了,对,正是这样,修正BGP的ASPATH的属性,让它在联盟中的场景中生效不就可以了。环路的形成目前总结到这里,还有一个未写到,就是BGP同步规则,这个也是为了防止环路以及路由黑洞,打断这个规则的方法就是让全网建立全邻接结构。这个算不谈了,我直接写到可以更好理解。

时间: 2024-10-28 04:31:22

BGP理解之防止环路的相关文章

BGP揭秘:动态和静态BGP线路的本质区别

BGP协议的最主要功能在于控制路由的传播和选择最佳路由的路径.中国电信.中国联通.中国移动,以及一些大型第三方IDC服务提供商都具有中国互联网信息中心颁发的AS号.全国各大网络运营商的部分高质量自有网络,多数都是使用BGP协议,相互广播IP来实现各个自治域之间的多线互联. 时下,运营商和第三方IDC服务提供商广泛采用BGP协议来实现AS(自治域)之间的互联,这已经成为解决当前国内南北互联互通问题的首要方法. 然而近年来,在用户在选择服务器托管或者租用服务器时,经常会见到所谓BGP双线接入这样的宣

《OSPF和IS-IS详解》一2.4 理解内部BGP

2.4 理解内部BGP BGP设计与实现 BGP被设计用来在Internet上的一系列自治系统之间提供无环路的路径.确保无环拓扑的机制就是AS_PATH属性.考虑图2-2,其中3个自治系统相互连接.如果AS 65000中的路由器R1通告一条前缀给AS 65001中的R3,那么在它发送前缀给R3时,它会把65000添加到这条前缀的AS_PATH列表前面.如果同样的前缀再次被AS 65000收到,那么边界BGP宣告者就会拒绝它,这是因为它在AS_PATH属性中检测到了环路. 继续考虑图2-2,假设R

《BGP设计与实现》一2.4 理解内部BGP

2.4 理解内部BGP BGP设计与实现BGP被设计用来在Internet上的一系列自治系统之间提供无环路的路径.确保无环拓扑的机制就是AS_PATH属性.考虑图2-2,其中3个自治系统相互连接.如果AS 65000中的路由器R1通告一条前缀给AS 65001中的R3,那么在它发送前缀给R3时,它会把65000添加到这条前缀的AS_PATH列表前面.如果同样的前缀再次被AS 65000收到,那么边界BGP宣告者就会拒绝它,这是因为它在AS_PATH属性中检测到了环路. 继续考虑图2-2,假设R3

《BGP设计与实现》一第1章 高级BGP介绍1.1 理解BGP的特性

第1章 高级BGP介绍 BGP设计与实现本章涵盖以下主题: 理解BGP的特性: 比较BGP和IGP. 边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议.由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统(Autonomous System,AS).现在的Internet是一个由多个自治系统相互

《OSPF和IS-IS详解》一1.1 理解BGP的特性

1.1 理解BGP的特性 BGP设计与实现在过去的几十年里,Internet经历了令人瞩目的增长.目前,Internet的BGP路由选择表已经拥有超过10万条的路由表项.许多企业也部署了BGP来互连他们自己的网络.如此广泛的部署证明了BGP对大型和复杂网络的支持能力. BGP在今天的Internet中,之所以具有这样重要的地位,是因为它具有以下这些特性: 可靠性: 稳定性: 可扩展性: 灵活性. 以下将详细地描述每一种特性. 1.1.1 可靠性 可以从几个角度来考察BGP的可靠性: 连接的建立:

《BGP设计与实现》一第2章 理解BGP的构件块2.1 比较控制层面和转发层面

第2章 理解BGP的构件块 BGP设计与实现本章涵盖以下主题: 比较控制层面和转发层面: BGP进程和内存使用: BGP路径属性: 理解内部BGP: 路径决策过程: BGP的能力: BGP-IGP的路由交换: 路由选择信息库: 交换路线. 本章的内容将为本书后面的内容打下基础.本章并不试图涵盖BGP所有的基础内容,而着重地强调一些基本的BGP构件和概念,以便给你一些适当的观点.在适当的地方,也会提供一些更新的信息.特别地,这一章将尽力达到以下一些目标: 概览了BGP的Cisco实现,例如IOS中

《OSPF和IS-IS详解》一第2章 理解BGP的构件块

第2章 理解BGP的构件块 BGP设计与实现本章涵盖以下主题: 比较控制层面和转发层面: BGP进程和内存使用: BGP路径属性: 理解内部BGP: 路径决策过程: BGP的能力: BGP-IGP的路由交换: 路由选择信息库: 交换路线. 本章的内容将为本书后面的内容打下基础.本章并不试图涵盖BGP所有的基础内容,而着重地强调一些基本的BGP构件和概念,以便给你一些适当的观点.在适当的地方,也会提供一些更新的信息.特别地,这一章将尽力达到以下一些目标: 概览了BGP的Cisco实现,例如IOS中

如何理解BGP AS-PATH正则表达式

^  标志一个表达式的开始,如果不用这个字符,那么默认就没有开始的限制了.如:当使用permit  ^254,那么表示的意思就是和本地相连的AS是254传过来的路由全部都允许了.如果使用简单的permit 254,那么就是只要是经过了AS  254的路由,全部都被允许了,其实和permit _254_表达的意思相同. $ 标志一个表达式的结束,如果不用这个字符,那么默认就没有结束的限制了.如:当使用了permit 254$,那么表示的意思就是起源于AS 254的路由全部被接受,如果permit

BGP属性详解:AS-path--属性

在IGP时代我们都知道,比如说ospf,链路状态协议,在进行路由选择的时候,比的是链路的耗费,哪条链路耗费小则会更优先,如果两个链路耗费是一样的,那么就做负载均衡. 实际上就2个原则成就了ospf---最短路径优先的工作原理. 那如果在BGP中,有多条路由可以到达目的的时候,应当如何进行选择呢?哪一条路径是比较优先的呢? 来看看这11个属性的优先级,加深记忆,最好能熟练的背下来: 1 HIGHEST WEIGHT--cisco私有属性 2 HIGHEST LOCAL PRERENCE -----