BGP培训学习目标掌握BGP协议的基本原理掌握BGP协议的路由属性及其应用掌握BGP协议的应用掌握BGP协议的配置和排错的方法学习完本课程,您应该能够:课程内容第一章BGP路由协议的原理第二章BGP路由属性第三章BGP的应用第四章BGP基本配置和排错BGP协议概述BGP是“唯一”的EGP路由协议,主要用来在AS之间传递路由信息在AS之间是一种距离矢量的路由协议,应用特定的属性避免环路的发生路由信息携带丰富的属性传送协议:TCP,端口号179支持CIDR(无类别域间选路)路由更新:只发送增量路由丰富的路由过滤和路由策略BGP协议基本概念(一)什么是自治系统(AS)?自治系统指由同一个技术管理机构管理、使用内部路由策略的一些路由器的集合。每个自治系统都有唯一的自治系统编号。自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。BGP协议基本概念(二)为什么引入自治系统这一概念?引入自治系统的基本思想就是通过不同的编号来区分不同的自治系统。自治系统内部的路由协议——IGP如OSPF、IS-IS、RIP、EIGRP(cisco专有)自治系统之间的路由协议——BGP如:EGP、BGPBGP工作机制(一)AS1AS7AS6AS5AS4AS3AS2BGP工作机制(二)BGP邻居刚建立时,发送整个BGP路由表交换路由信息,之后为了更新路由表只交换更新消息(updatemessage)。系统在运行过程中,通过接收和发送keep-alive消息来检测相互之间的连接是否正常的。一般情况下一条路由由自治系统内部的某种内部路由协议发现和计算产生,由自治系统边界路由器(ASBR)通过EBGP连接传播到其它自治系统中。路由在传播过程中可能会经过若干个自治系统,这些自治系统称为过渡自治系统(如:AS5)。若这个自治系统有多个边界路由器,这些路由器之间运行IBGP来交换路由信息。另外一种自治系统称为StubAS(如:AS1),其内部只有一个ASBR通过EBGP连接外部,同外部其他AS的通信要靠过渡自治系统来转接。BGP两种邻居-IBGP和EBGPEBGPEBGPRTBRTCIBGPRTARTDRTEBGP路由通告原则存在多条路径时,BGPSpeaker只选取最优的使用(非负载分担)BGPSpeaker只把自己使用的路由通告给相邻体BGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告(如果存在RR呢)BGPSpeaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定连接一建立,BGPSpeaker按照以上原则,把自己所有BGP路由通告给新相邻体BGP路由表与系统路由表的关系存在多条路径时,BGPSpeaker只选取最优的使用(非负载分担时)BGPSpeaker只把自己使用的最优路由通告给相邻体BGPSpeaker只把自己使用的最优的路由加入到路由表中BGP同步EBGPEBGPRTBRTCIBGPRTARTDRTERTFS0:1.1.1.2/24E0:10.1.1.1/24S0:1.1.1.1/24S1:2.1.1.2/24S0:2.1.1.1/24AS100AS200AS300成为BGP路由的途径之一:纯动态注入18.0.0.1/8OSPFRTBAS200OSPF发现路由18.0.0.1/8把IGP(OSPF)发现的路由纯动态地注入到RTB的BGP路由表中成为BGP路由的途径之二:半动态注入18.0.0.1/8RTBAS200OSPFOSPF发现路由18.0.0.1/8把IGP(OSPF)发现的路由半动态地注入到RTB的BGP路由表中成为BGP路由的途径之三:静态注入18.0.0.1/8AS200人为配置静态路由18.0.0.1/8把人为配置的静态路由注入到RTB的BGP路由表中RTBBGP报文种类BGP报文有四种类型:Open:打招呼“你好,跟我交个朋友吧!”KeepAlive:我还活着呢,别不理我Update:有新闻......Notification:我不跟你玩了!BGP报文头BGP报文的格式是一样的,都是”报文头+报文体“的格式,下面给出的是BGP报文头:Marker(16byte)Length(2byte)Type(1byte)Open报文Open报文是由报文头加如下结构构成的。OptionalParamentersLengthHoldTimeVersionMyAutonomousSystemBGPIdentifierOptionalParamentersKeepAlive报文KeepAlive报文只有报文头。Marker(16byte)Length(2byte)Type(1byte)Update报文Update报文由报文头加如下结构构成。WithdrawnRoutesUnfeasibleRoutesLengthPathAttributeLengthNetworkLayerReachabilityInformationPathAttributeNotification报文Notification报文由报文头加如下结构构成。DataErrorCodeErrorSubcode错误代码123456错误类型消息头错OPEN消息错UPDATE消息错保持时间超时状态机错退出BGP协议的状态机ActiveOpen-sentOpen-confirmEstablishedIdleConnectConnect-RetrytimerexpiryTCPconnectionfailsConnect-RetrytimerexpiryStartOthersTCPconnectionfailsErrorErrorErrorKeepAlivetimerexpiryKeepAlivepacketreceived1.KeepAlivetimerexpiry2.Updatereceived3.KeepAlivereceivedCorrectOPENpacketreceivedTCPconnectionsetupTCPconnectionsetupOthersBGP协议中消息的应用通过TCP建立BGP连接时,发送open消息连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息稳定后此时要定时发送KEEPALIVE消息以保持BGP连接的有效性当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对端课程内容第一章BGP路由协议的原理第二章BGP路由属性第三章BGP的应用第四章BGP基本配置和排错BGP的路由属性表达了路由的特征便于扩展过渡和非过渡的,必遵和可选的公认必遵(well-knownmandatory)公认自决(well-knowndiscretionary)可选过渡(optionaltransitive)可选非过渡(optionalnon-transitive)常见BGP路由属性1、Origin2、AS-Path3、Nexthop4、MED5、Local-Preference6、Atomic-Aggregate7、Aggregator8、Community9、Originator-ID10、Cluster-List11、DestinationPref(MCI)12、Advertiser(Baynet)13、Rcid-Path(Baynet)14、MP_Reach_NLRI15、MP_Unreach_NLRI16、Extended_CommunitiesOrigin属性一般的,具体的实现按如下方式决定一条路由的Origin属性某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP路由是通过EGP得到的,则origin属性为EGP其他情形下,Origin属性都为IncompleteAS-Path属性D(18.0.0.0/8)AS200AS300AS400AS100AS500RTARTB30.0.0.130.0.0.2D,dl400300200D,d2500200D,d1400300200D,d2500200NextHop属性18.0.0.0/820.0.0.0/8RTARTCRTBRTD19.0.0.0/821.0.0.221.0.0.110.0.0.210.0.0.310.0.0.1AS100AS200IBGPIBGPEBGPRTB可经下一跳10.0.0.2到达18.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8RTA可经下一跳10.0.0.2到达18.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8可经下一跳21.0.0.1到达19.0.0.0/8RTC可经下一跳10.0.0.1到达19.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8Local-Preference属性AS400AS100AS300AS200RTARTBRTCRTDRTERTFD(18.0.0.0/8)30.0.0.130.0.0.220.0.0.120.0.0.2D,local-pref1100D,local-pref2200D,local-pref1100D,local-pref2200RTA就会优先选择本地优先级高的local-pref2MED(Multi-Exit-DISC)属性D(18.0.0.0/8)RTARTBRTC30.0.0.130.0.0.220.0.0.120.0.0.2AS100AS200D,metric110D,metric220D,metric110D,metric220RTA会选择metric值较小的metric1IBGP团体(Community)属性团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界。公认的团体:no-export带有该属性的路由信息不通告给AS外的BGP相邻体no-advertise带有该属性的路由信息不通告给任何BGP相邻体local-AS带有该属性的路由信息只通告给联盟EBGP相邻体Internet通告给所有其他路由器BGP路由选优过程综合起来,本地BGP路由选优的过程为:如果此路由的下一跳不可达,忽略此路由;选择本地优先级较大的路由(Local-Preference);选择本地路由器始发的路由(network/aggregate);选择AS路径较短的路由(AS-Path);依次选择起点类型为IGP,EGP,Incomplete类型的路由(Origin);选择MED较小的路由;优选从EBGP学来的路由;优选AS内部IGP的Metric最低的路由;选择RouterID较小的路由;课程内容第一章BGP路由协议的原理第二章BGP路由属性第三章BGP的应用第四章BGP基本配置和排错没有BGP的日子里OSPFRIPISISEIGRP有了BGP之后OSPFRIPISISEIGRPBGPBGPBGP链路层协议生成路由,IGP收集路由,BGP加工路由AS的分类单口AS(stubAS)多归路非过渡AS(multihomedAS)过渡AS(transitAS)BGP强大的过滤功能可按照路由的IP地址过滤可依照路由经过的AS-Path过滤可以依照路由的属性过滤可以依照路由到来的接口过滤可以按照过滤的结果设置路由的属性BGP在大规模网络中需要解决的问题路由表庞大——超过85000条BGP聚合IBGP相邻体过多,逻辑全连接不现实BGP联盟BGP反射复杂网络环境中路由的变化十分频繁BGP衰减路由聚合两种常用的路由聚合方法1.使用network命令发布一条聚合路由,前提是该聚合路由必须在路由表中存在2.使用aggregate命令进行聚合,前提是路由表