《BGP路由协议原理.ppt》由会员分享,可在线阅读,更多相关《BGP路由协议原理.ppt(54页珍藏版)》请在三一办公上搜索。
1、2023/7/5,BGP路由协议原理,华为技术,学习完此课程,您将会:理解BGP协议的基本概念和原理了解BGP协议的路由属性,目 标,第1章 BGP协议概述第2章 BGP工作原理第3章 BGP路由属性,内容介绍,1、BGP概述(BGP是什么),BGP是Border Gateway Protocol 边界网关路由协议,属于距离矢量路由协议。作用:在AS自治系统之间传递路由信息。4个版本:V1、V2、V4、V4(即MBGP)被TCP承载,端口号179,由TCP来解决可靠性。路由附带丰富的属性信息,可以通过控制属性来控制路由选择,2、为什么要使用BGPBGP价值传递,使用BGP的三大理由(1)大量路
2、由需要承载,IGP只能容纳千条,而BGP可以容纳上万。(2)支撑MPLS/VPN的应用,传递客户VPN路由。(3)策略能力强,可以很好的实现路由决策与数据控制。,2、为什么要使用BGPBGP VS OSPF,OSPF VS BGP 话说当年武林挑选盟主,主办方IP组织让OSPF和BGP说各自的修行心得:OSPF:身如路由器,心似转发表,报文何其多,日夜勤查找。BGP:路由本非器,转发何需表?报文虽然多,自有他人找。主办方IP组织宣布BGP获胜,OSPF不服:“老子日夜辛苦,修行的OSPF心法300多页,构思巧妙,算法复杂,堪称武林绝学。而师弟BGP,终日游山玩水,草草写了一本70多页的心法就交
3、差了。”主办方问:“那么你的心法能够管理多少设备多少路由呢?”。OSPF这时才自知不如,无话可说。主办方继续说:“OSPF只能管理设备百台,路由千条;而BGP能够管理整个internet百万台路由器,路由十万余条。原因是:BGP是无为而治,表面看是无所做为,其实他只是不想过份的拘泥于细节,OSPF虽然厉害,但是太拘泥于细节。最终BGP胜出,但是BGP也知道,他少不了OSPF的这个帮手,他得靠OSPF培养人才(路由)。最终BGP联手OSPF,一统江湖,无人能敌。,3、BGP协议基本概念,什么是自治系统(AS)?自治系统指由同一个技术管理机构管理、使用内部路由策略的一些路由器的集合。每个自治系统都
4、有唯一的自治系统编号。自治系统的编号范围是1到65535,其中1到64511是注册的因特网编号,64512到65535是专用网络编号。,没有BGP的日子里,有了BGP之后,链路层协议生成路由,IGP发现和计算路由,BGP控制路由传播和选择,BGP两种邻居IBGP和EBGP,第1章 BGP协议概述第2章 BGP工作原理第3章 BGP路由属性,内容介绍,1、BGP的协议包,2、BGP报文封装格式,单播形式发送,IP协议号为6,TCP端口号为179,Open报文类型,Open报文是由BGP报文头(报文头type=1)加如下结构构成,Hold Time,Version,My Autonomous Sy
5、stem,BGP Identifier,Optional Paramenters,Optional Paramenters Length,扩展参数,如MBGP、GR、route-refresh,接收不到邻居的 Update或Keepalive 所能等待的最长时间。此值默认为180s,Update报文类型,Update Message用于 BGP路由的更新 Update报文由BGP报文头(type=2)加如下结构构成,Keepalive报文类型,Keepalive Message用于保持BGP邻居之间的会话缺省60秒发一次给PeerKeepalive(type=4)报文只有BGP报文头,Noti
6、fication报文类型,Notification Message用于终止BGP邻居间的会话BGP进程遭遇错误或设备出现问题Open Message交互的过程中,如果设备发现Open Message中协商的某些参数不匹配,就会发送一个Notification Message并中断连接。Notification报文由BGP报文头(type=3)加如下结构构成,Data,Error Code,Error Subcode,3、BGP工作流程有限状态机FSM,Active,Open-sent,Open-confirm,Established,Idle,Connect,Connect-Retrytime
7、r expiry,TCP connection fails,Connect-Retrytimer expiry,Start,Others,TCP connection fails,Error,Error,Error,KeepAlivetimer expiry,KeepAlive packet received,1.KeepAlive timer expiry2.Update received3.KeepAlive received,Correct OPENpacket received,TCP connection setup,TCP connection setup,Others,3、BGP
8、工作流程邻居状态机一览表,4、BGP工作机制,在BGP对等体建立之前,对等体之间首先进行TCP连接。BGP邻居间会通过Open消息协商相关参数,建立起BGP对等体关系。BGP邻居刚建立时,发送整个BGP路由表交换路由信息,之后为了更新路由表只交换更新消息(update message)。系统在运行过程中,通过接收和发送keep-alive消息来检测相互之间的连接是否正常的。,成为BGP路由的途径之一:纯动态注入,OSPF发现路由把IGP(OSPF)发现的路由纯动态地注入到RTB的BGP路由表中,成为BGP路由的途径之二:半动态注入,OSPF发现路由把IGP(OSPF)发现的路由半动态地注入到R
9、TB的BGP路由表中,OSPF,RTB,AS200,成为BGP路由的途径之三:静态注入,人为配置静态路由把人为配置的静态路由注入到RTB的BGP路由表中,BGP路由通告原则,存在多条路径时,BGP Speaker只选取最优的使用(非负载分担)BGP Speaker只把自己使用的路由通告给相邻体BGP Speaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告(如果存在RR呢)BGP Speaker 从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定连接一建立,BGP
10、Speaker按照以上原则,把自己所有BGP路由通告给新相邻体,BGP路由通告原则,BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告。,BGP路由表与系统路由表的关系,存在多条路径时,BGP Speaker只选取最优的使用(非负载分担时)BGP Speaker只把自己使用的最优路由通告给相邻体BGP Speaker只把自己使用的最优的路由加入到路由表中,BGP同步,BGP Speaker 从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步情况决定(解决方法:RB上配置静态并发布让同步或者取消同步)取消同步的条件:全连接(但是全连接也会产生一个问题:IBG
11、P缺省不改变下一跳。)。,IBGP全互联,IBGP全互联AS内部的所有路由器都运行BGP,就可以关闭所有路由器的同步,而不影响路由的通告和连通性.随之产生的问题:当as内部路由器数量很多时,需要建立N*(N-1)/2个ibgp会话,带来过度的系统开销,扩展性不好。即15个路由器的AS,需要建立15(15-1)/2=105个ibgp会话,IBGP全互联的解决方案,路由反射器AS内部的所有路由器都运行bgp,在AS内部部署路由反射器,构建hub and spoke的ibgp(会话数为N-1),然后关闭所有bgp路由器的同步.问题:此方案可以使bgp路由器传递ibgp路由到ebgp,并保证bgp路由
12、的连通性,但是对物理拓扑有很大的限制。,BGP路由反射,路由反射器(Route Reflector),AS 101,AS 100,AS 102,IBGP,EBGP,RR,Client,Client,Client,client,client,nonclient,AS100,RR,AS200,路由反射器的规则,RR 从clients和nonclients收路由更新后路由反射的规则按照BGP的基本选路原则,选出最佳路由,只通告最佳路由从 client收到的更新,反射到 nonclients 和 clients从 nonclient收到的更新,反射到 clients从 EBGP邻居收到的更新,反射到
13、所有nonclients 和 clients,IBGP全互联的解决方案,2.bgp联盟 AS内部的所有路由器都运行bgp,把一个原始的AS基于网络拓扑划分为若干个sub-AS(又称联盟AS),联盟AS之间的bgp邻居叫做联盟ebgp,不需要full mesh bgp会话;在每个联盟AS内部运full mesh ibgp或者hub and spoke反射器,然后就可以关闭所有路由器的bgp同步功能.结论:bgp联盟结合路由反射器的方式,较好的解决了bgp的同步规则带来的需求,是最为有效的解决方案.,BGP联盟,联盟(Confederation),AS 100,IBGP,EBGP,AS 1001,
14、AS 1003,AS 1002,AS 101,EBGP_Confed,第1章 BGP协议概述第2章 BGP工作原理第3章 BGP路由属性,内容介绍,BGP属性作用,BGP属性的作用:描述路由的一组参数,BGP根据路由的属性选择最佳路由,一条路由可能有多个属性,可以人为置值,以便执行路由策略。表达了路由的特征,同时便于扩展。BGP为什么如此强大,如此受欢迎,就是因为拥有这么多丰富的独门功夫,操纵起路由的时候是易如反掌。,BGP属性分类,属性分类:公认属性(Well-known):公认必遵(Well-known mandatory)如:Origin AS-Path Next hopBGP 都认识,
15、且在路由属性中必须携带公认自决(Well-known discretionary)如:Local-PreferenceBGP都认识,但不一定必须携带可选属性(Optional)可选可传递(Optional transitive)如:Community可以不认识该属性,但该属性可以传递到其他BGP speaker可选不可传递(Optional non-transitive)如:MED可以不认识该属性,不可以传递给其他BGP speaker,BGP的路由属性,1、Origin2、AS-Path3、Next hop4、MED5、Local-Preference6、Atomic-Aggregate7、
16、Aggregator8、Community,9、Originator-ID10、Cluster-List11、Destination Pref(MCI)12、Advertiser(Baynet)13、Rcid-Path(Baynet)14、MP_Reach_NLRI15、MP_Unreach_NLRI16、Extended_Communities,1、Origin 属性,作用:标识路由的来源 起点属性是一个公认必遵属性,它指示路由更新的起源。BGP允许三种类型的起源。某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP路由是通过EGP得到的,则origin属性为EGP其他情
17、形下,Origin属性都为 Incomplete,2、AS-Path属性,公认必遵属性向EBGP peer通告路由时在AS属性的最左边添加自己的AS号(最左边的是刚经过的AS,最右边的是起源AS)。作用一:描述到达目标网络所要经过的AS号序列,EBGP使用AS-Path防止循环。作用二:AS 路径属性也在影响路由选择。在其它因素相同的情况下,选择AS路径较短的路由。,AS-Path 属性(防止环路、优选AS-Path短的路径),3、Next Hop 属性,公认必遵属性BGP的下一跳属性和IGP的有所不同,不一定就是邻居路由器的IP地址。通常情况下,Next_Hop属性遵循下面的规则:BGP S
18、peaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端连接的接口地址。BGP Speaker将本地始发路由发布给IBGP对等体时,会把下一跳属性设置为发起该路由的路由器的接口地址。BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。,Next Hop 属性,AS100,AS200,EBGP,EBGP,IBGP,AS300,IBGP,RTA,RTB,RTC,RTE,RTF,4、Local preference属性的使用,Local preference 本地优先级公认可选属性,缺省local-pref为100
19、一般只在AS内部IBGP peer之间传递,不会传递给ebgp peer可以修改设置local-pref的值,优选较高值的路由,Local-Preference 属性,D,local-pref1 100 D,local-pref2 200RTA就会优先选择本地优先级高的local-pref2,假如RTF上还有19的A类地址,如果想要RTA访问它的时候,数据通过路由器RTD走,可以如何实现?(这样就实现了数据的负载均衡,并有备份),5、MED属性的使用,Med multi-exit-disc 任选非传递属性优选较低MED值的;不跨AS传播相对于local-pref,可以把路由策略传递给ebgp
20、peer除非配置了“always-compare-med”,其它时候永远只比较来自同一AS的路径;,MED(Multi-Exit-DISC)属性,6、Community团体属性,作用:标识一些有相同性质的前缀,给路由打标记,以便统一处理,实现路由过滤和路由选择Community不限于一个网络或一个自治系统,没有物理边界一个路由可以有多个团体属性。公认的Community NO_ADVERTISE:不通告给任何的BGP对等体;NO_EXPORT:不通告给EBGP对等体;INTERNET:可以通告给所有的其他BGP对等体。LOCAL-AS:表示本路径不发布到本AS 外部,当配置联盟时,本路径不发布
21、给其它的自治系统或子自治系统。私有community,Community团体属性的使用,私有团体是对用户有意义的数字四个字节,为增加可读性,可配置为aa:nn,一般aa建议为AS号,nn代表业务。缺省在peer之间不传递community属性,必须针对特定peer使用命令修改,才能将community属性发送出去。,BGP路由选优过程,综合起来,本地BGP路由选优的过程为:首先丢弃下一跳(Next_Hop)不可达的路由;无条件优选带Label的IPv4路由;优选协议优先级最高,Preference值小的路由;优选本地优先级(Local_Pref)最高的路由;优选聚合路由(聚合路由优先级高于非聚
22、合路由);优选AS路径(AS_Path)最短的路由;比较Origin属性,IGPEGPIncomplete;优选MED值最低的路由;,BGP路由选优过程,EBGPIBGP;到达路由下一跳IGP的cost值,低者优先;优选Cluster_List最短的路由;优选Originator_ID最小的路由;优选Router ID最小的路由器发布的路由;比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由。,BGP循环避免机制回顾,BGP作为一种D-V距离矢量路由协议,防止循环的措施水平分割等都是有的,同时还采用ASPath属性来防止循环的发生(1)水平分割(2)ASpa
23、th。EBGP向对等体通告路由时附加上自己的AS号存放在ASpath属性字段中,收到EBGP对等体Update报文时检查ASpath,如果发现自己的AS号则丢弃该路由。也就是说EBGP是依靠路由经过的AS路径来发现循环的。(3)IBGP由于向对等体通告路由时不会加上自己的AS号(因为根据规则AS号相同就要丢弃该路由了),所以IBGP通过收到路由后不再向其他IBGP对等体通告来防止循环的发生,并且IBGP在路由通告时还不改变路由的下一跳进一步防止循环的发生。但IBGP中如果邻居太多,为了相互能通告学习路由,一种方法使用IBGP全连接,另一种方法是采用路由反射器来解决IBGP内部路由扩散的问题。,小结,在本课程中我们学习了BGP协议的基本原理和丰富的属性特征,和这些属性的应用。,小结,第1章 BGP协议概述第2章 BGP工作原理第2章 BGP路由属性,内容回顾,