BGP协议原理及配置(中文版3.0)_第1页
BGP协议原理及配置(中文版3.0)_第2页
BGP协议原理及配置(中文版3.0)_第3页
BGP协议原理及配置(中文版3.0)_第4页
BGP协议原理及配置(中文版3.0)_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

D041BGP协议原理及配置,学习目标,叙述BGP路由协议的原理配置BGP路由协议调试和维护BGP协议处理大规模网络中BGP的应用,学习完本课程,您应该能够:,课程内容,BGP路由协议的原理BGP路由属性配置BGP路由协议处理大规模网络中BGP的应用,BGP简介,BGP(BorderGatewayProtocol)是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统(AS)序列属性的路径可达信息,来构造自治系统的拓扑图,从而消除路由环路并实施用户配置的策略。BGP协议经常用于ISP之间BGP协议从1989年就开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP-4)。它适用于分布式结构并支持无类域间路由CIDR(ClasslessInterDomainRouting),BGP协议概述,BGP是外部路由协议,用来在AS之间传递路由信息是一种距离矢量的路由协议,从设计上避免了环路的发生为路由附带属性信息传送协议:TCP,端口号179支持CIDR(无类别域间选路)路由更新:只发送增量路由丰富的路由过滤和路由策略,特性描述,BGP是一种外部路由协议,与OSPF、RIP等的内部路由协议不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路通过携带AS路径信息,可以彻底解决路由环路问题。使用TCP作为其传输层协议,提高了协议的可靠性。BGP-4支持无类域间路由CIDR(ClasslessInterDomainRouting)。这是较BGP-3的一个重要改进。CIDR以一种全新的方法看待IP地址,不再区分A类网、B类网及C类网。例如一个非法的C类网络地址192.213.0.0(255.255.0.0)采用CIDR表示法192.213.0.0/16就成为一个合法的超级网络,其中/16表示子网掩码由从地址左端开始的16比特构成。路由更新时,BGP只发送增量路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息,BGP协议基本概念,什么是自治系统(AS)为什么引入自治系统这一概念自治系统内部的路由协议自治系统之间的路由协议BGP,自治系统,自治系统AS(AutonomousSystem):由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合,每个自治系统都有唯一的自治系统编号,这个编号由因特网授权的管理机构分配的。自治系统的编号范围是1到65535,其中1到65411只注册的因特网编号,65412到65535是专用网络编号。,BGP工作机制,发送BGP消息的路由器称为BGP发言人(Speaker),它不断的接收或产生新路由信息,并将它广告(Advertise)给其它的BGP发言人。当BGP发言人收到来自其它自治系统的新路由广告时,如果该路由比当前已知路由好、或者当前还没有可接受路由,它就把这个路由广告给自治系统内所有其它的BGP发言人。一个BGP发言人也将同它交换消息的其它的BGP发言人称为对等体(peer),若干相关的对等体可以构成对等体组(group),BGP两种邻居IBGP和EBGP,BGP在路由器上以下列两种方式运行:IBGP(InternalBGP)EBGP(ExternalBGP)当BGP运行于同一自治系统(AS)内部时,称为IBGP;当BGP运行于不同自治系统之间时,称为EBGP提示:一般要求EBGP对等体之间是有物理上的直接连接而IBGP对等体之间不一定有物理上的直接连接,但必须保证逻辑上全连接(TCP连接能够建立即可),BGP两种邻居IBGP和EBGP,EBGP,EBGP,RTB,RTC,IBGP,RTA,RTD,RTE,BGP路由通告原则,多条路径时,BGPSpeaker只选最优的给自己使用BGPSpeaker只把自己使用的路由通告给相邻体BGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告BGPSpeaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定连接一建立,BGPSpeaker将把自己所有BGP路由通告给新相邻体,BGP与IGP同步,BGP协议规定:一个BGP路由器不将从内部BGP对等体得知的目的地通告给外部对等体,除非该目的地也能通过IGP得知的。若一个路由器能通过IGP得知该目的地,则可认为路由能在AS中传播,内部通达已有了保证。,BGP同步,BGP的主要任务之一就是向其它自治系统发布该自治系统的网络可达信息。因此,BGP必须与IGP(如RIP、OSPF等)同步来通告路由。同步是指BGP必须等待直到IGP在其所在自治系统中成功传播该选路信息,才向其它自治系统通告过渡信息。也就是说,当一个路由器从IBGP对等体收到一个关于目的地的更新信息,在把它通告给其它EBGP对等体之前,要试图验证该目的地通过自治系统内部能否到达(即验证该目的地是否存在于IGP,非BGP路由器是否可传递业务量到该目的地。若IGP认识这个目的地,才通告其它的EBGP对等体,否则将把这个路由当作与IGP不同步来,不进行通告,BGP同步,EBGP,EBGP,RTB,RTC,IBGP,RTA,RTD,RTE,RTF,S0:1.1.1.2/24,E0:10.1.1.1/24,S0:1.1.1.1/24,S1:2.1.1.2/24,S0:2.1.1.1/24,AS100,AS200,AS300,使BGP与IGP同步的简单方法是将BGP发现的网络路由全部引入到IGP路由表中,再由BGP发布出去,成为BGP路由的途径之一:纯动态注入,18.0.0.1/8,OSPF,RTB,AS200,OSPF发现路由18.0.0.1/8把IGP(OSPF)发现的路由纯动态地注入到RTB的BGP路由表中,纯动态注入:路由器将通过IGP路由协议动态获得的路由信息直接注入到BGP中去,成为BGP路由的途径之一:半动态注入,18.0.0.1/8,RTB,AS200,OSPF,OSPF发现路由18.0.0.1/8把IGP(OSPF)发现的路由半动态地注入到RTB的BGP路由表中,半纯动态注入:路由器有选择的将IGP路由协议动态获得的路由信息注入到BGP中去,成为BGP路由的途径之三:静态注入,18.0.0.1/8,AS200,人为配置静态路由18.0.0.1/8把人为配置的静态路由注入到RTB的BGP路由表中,RTB,静态注入:路由器将静态配制的某条路由信息注入到BGP中去,BGP报文种类,BGP报文有四种类型:,Open:打招呼“你好,跟我交个朋友吧!”KeepAlive:我还活着呢,别不理我Update:有新闻.Notification:我不跟你玩了!,BGP系统作为高层协议运行在一个特定的路由器上。系统初启时通过发送整个BGP路由表交换路由信息,之后为了更新路由表只交换更新消息(UpdateMessage)。系统在运行过程中,是通过接收和发送KeepaliveMessage消息来检测相互之间的连接是否正常的。,BGP报文头,BGP报文的格式是一样的:都是“报文头+报文体”的格式,下面给出的是BGP报文头:,Open报文,Open报文是由报文头加如下结构构成的。,KeepAlive报文,KeepAlive报文只有报文头。,Update报文,Update报文由报文头加如下结构构成。,Notification报文,Notification报文由报文头加如下结构构成。,BGP协议的状态机,Active,Open-sent,Open-confirm,Established,Idle,Connect,Connect-Retrytimerexpiry,TCPconnectionfails,Connect-Retrytimerexpiry,Start,Others,TCPconnectionfails,Error,Error,Error,KeepAlivetimerexpiry,KeepAlivepacketreceived,1.KeepAlivetimerexpiry2.Updatereceived3.KeepAlivereceived,CorrectOPENpacketreceived,TCPconnectionsetup,TCPconnectionsetup,Others,BGP协议中消息的应用,通过TCP建立BGP连接时,发送open消息连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息稳定后此时要定时发送KEEPALIVE消息以保持BGP连接的有效性当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对端,课程内容,BGP路由协议的原理BGP路由属性配置BGP路由协议处理大规模网络中BGP的应用,BGP的路由属性,表达了路由的特征过渡和非过渡的必遵和可选的便于扩展截至目前共16种属性,常见BGP路由属性,1、Origin2、AS-Path3、Nexthop4、MED5、Local-Preference6、Atomic-Aggregate7、Aggregator8、Community,9、Originator-ID10、Cluster-List11、DestinationPref(MCI)12、Advertiser(Baynet)13、Rcid-Path(Baynet)14、MP_Reach_NLRI15、MP_Unreach_NLRI16、Extended_Communities,起点(Origin)属性,一般的,具体的实现按如下方式决定一条路由的Origin属性某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP路由是通过EGP得到的,则origin属性为EGP其他情形下,Origin属性都为Incomplete优先值:IGP(0)EGP(1)Incomplete(2)BGP首先选择优先值最小的,AS路径(AS-Path)属性,D(18.0.0.0/8),AS200,AS300,AS400,AS100,AS500,RTA,RTB,30.0.0.1,30.0.0.2,D,dl400300200,D,d2500200,D,d1400300200D,d2500200,下一跳要点,(1)BGP在向IBGP通告从其它EBGP得到的路由时,不改变路由的下一跳属性,本地BGP将从EBGP得到的路由的下一跳属性直接传递给IBGP(2)BGP在向EBGP通告路由时,下一跳属性是本地BGP与对端连接的端口地址(3)对于可以多路访问的网络(例如:以太网或FR),下一跳是连接目的网络的路由器的多路访问的接口,下一跳(NextHop)属性,18.0.0.0/8,20.0.0.0/8,RTA,RTC,RTB,RTD,19.0.0.0/8,21.0.0.2,21.0.0.1,10.0.0.2,10.0.0.3,10.0.0.1,AS100,AS200,IBGP,IBGP,EBGP,RTB可经下一跳10.0.0.2到达18.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8,RTA可经下一跳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/8,RTC可经下一跳10.0.0.1到达19.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8,BGP典型案例直连EBGP邻居发布下一跳非直接可达路由时路由失效,在下面的BGP组网应用中,Router1和Router2之间建立IBGP邻居关系,Router1和Router3之间建立EBGP邻居关系。Router3发布路由6.6.0.0/16给Router1,Router1把从EBGP邻居学来的路由发布给IBGP邻居Router2,但在Router2上使用displaybgp发现学到的路由为无效路由,BGP典型案例,故障现象:在Router2上无法ping通Router3上的6.6.0.0/16网段Router2上的BGP路由表中6.6.0.0/16网段为无效路由,EBGPpeer,IBGPpeer,Physicalconnection(EGP),Physicalconnection(IGP),Loopback,解决问题,通过观察Route2的路由表,可以发现6.6.0.0/16的下一跳不能通过IGP到达,所以导致该路由为无效路由。在BGP中,对于从IBGP和EBGP学来的路由的下一跳的处理是不同的。从IBGP邻居学来的路由,在发送给其IBGP邻居的时候,next-hop均改为该路由器的出口IP地址,而对于从EBGP邻居学来的路由,在发送给其IBGP邻居(即在AS内传播)的时候,next-hop是不变的。AS内部的路由器不需要知道AS之间的路由情况,否则会增加AS内部路由器的负担,所以不推荐采用通过IGP学到AS之间的路由情况的方法解决问题。比较好的解决方案是配置next-hop-local。这时Router1的BGP配置为:bgp100undosynchronizationpeer150.1.1.2as-number100peer150.1.1.2next-hop-localpeer12.110.150.2as-number200,解决问题,bgp200undosynchronizationnetwork6.6.0.0mask255.255.0.0peer12.110.150.1as-number100,bgp100undosynchronizationpeer150.1.1.2as-number100peer12.110.150.2as-number200,bgp100undosynchronizationpeer150.1.1.1as-number100,Router2displaybgpNetworkNextHopMetricLocPrfPathi6.6.0.0/1612.110.150.2100200i,peer150.1.1.2next-hop-local,Router2displaybgpNetworkNextHopMetricLocPrfPathi6.6.0.0/16150.1.1.1100200i,本地优先属性,本地优先属性就是帮助AS区域内部路由器选择到AS区域外部使用较好的出口.即选择本地优先级较高的出口,本地优先属性,AS400,AS100,AS300,AS200,RTA,RTB,RTC,RTD,RTE,RTF,D(18.0.0.0/8),30.0.0.1,30.0.0.2,20.0.0.1,20.0.0.2,D,local-pref1100,D,local-pref2200,D,local-pref1100D,local-pref2200RTA就会优先选择本地优先级高的local-pref2,本地优先属性,当一个运行BGP的路由器通过不同邻居得到了目的地相同、下一跳不同的多条路由时,将选取本地优先级最高的一条路由作为到达目的地的路由。可用配置不同本地优先级的方法来影响BGP的路由选择。需要注意的是:配置本地优先级值仅仅会影响离开该AS的业务量,不影响进入该AS的业务量。,补充,MED(Multi-Exit-DISC)属性,MED(Multi-Exit-DISC)属性是用于向外部邻居路由器指示进入某个具有多个入口的AS的优先路径,选择一个较好的入口,即选择MED较小的入口,MED(Multi-Exit-DISC)属性,D(18.0.0.0/8),RTA,RTB,RTC,30.0.0.1,30.0.0.2,20.0.0.1,20.0.0.2,AS100,AS200,D,metric110D,metric220,D,metric110,D,metric220,RTA会选择metric值较小的metric1,IBGP,MED(Multi-Exit-DISC)属性,多出口区分MED(Multi-ExitDiscriminators)属性是一个可选非过渡属性(类型码4),它是在自治系统之间交换路由外部度量。自治系统使用本地优先级属性(LocalPreference)来进行出自治系统路由的选择;而MED属性用于判断进入该自治系统的最佳路由,当一个运行BGP的自治系统得到目的地址相同、下一跳不同的多条路由时,在其它条件相同的情况下,MED值较小的路由将被优先选作进入该自治系统的外部路由。,补充,团体(Community)属性,团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界。公认的团体:,no-export不通告给联盟/AS外的BGP相邻体no-advertise不通告给任何BGP相邻体local-AS不通告给EBGP相邻体Internet通告给所有其他路由器,BGP路由选择过程,综合起来,本地BGP路由选择的过程为:(1)如果此路由的下一跳不可达,忽略此路由(2)选择本地优先级较大的路由(3)选择本地路由器始发的路由(本地优先级相同)(4)选择AS路径较短的路由(5)依次选择起点类型为IGP,EGP,Incomplete类型的路由(6)选择MED较小的路由(7)选择RouterID较小的路由,课程内容,BGP路由协议的原理BGP路由属性配置BGP路由协议处理大规模网络中BGP的应用,BGP基本配置,启动BGPQuidwaybgpas-number配置BGP邻居Quidway-bgppeerpeer-addressas-numberas-numberBGP路由注入networkip-addressmaskmaskimport-routeprotocolmedmed,启动BGP,配置/删除指定对等体的AS号,指定BGP发送网络,BGP基本配置举例,EBGP,EBGP,RTB,RTC,IBGP,RTA,RTD,RTE,RTF,S0:1.1.1.2/24,E0:10.1.1.1/24,S0:1.1.1.1/24,S1:2.1.1.2/24,S0:2.1.1.1/24,AS100,AS200,AS300,配置BGP参数,配置同伴的BGP版本号Quidway-bgppeerpeer-addressversionversion-number配置BGP定时器Quidway-bgptimerskeepalive-intervalholdtime-interval配置同伴发送update报文的时间间隔Quidway-bgppeerpeer-addressroute-update-intervalseconds,配置/删除对等体的BGP版本号,设置/取消指定对等体的keepalive时间间隔与保持定时器,设置对等体发送路由更新报文的时间间隔,配置BGP路由策略,配置对等体的前缀过滤器Quidway-bgppeergroup-name|peer-addressfilter-policyacl-numberimport|export配置对等体的AS-Path过滤器Quidway-bgppeerpeer-addressaclaspath-list-numberimport|export配置对等体的路由映射peerpeer-addressroute-policypolicy-nameimport|export,路由过滤基于ACL,RTA:Quidwayacl1Quidway-acl-1ruledeny18.0.0.00.255.255.255Quidway-acl-1rulepermit0.0.0.0255.255.255.255RTA-bgppeer10.0.0.1filter-policy1export,30.0.0.1,30.0.0.2,10.0.0.2,10.0.0.1,20.0.0.1,20.0.0.2,18.0.0.0/8,AS200,RTA,AS100,RTD,RTB,RTC,18.0.0.0/8,18.0.0.0/8,19.0.0.0/8,AS300,要求RTA不转发来自AS200的路由(18.0.0.0/8)给AS100,路由过滤基于AS-Path,RTA:RTAipas-pathacl1permit$RTA-bgppeer10.0.0.1acl1exportRTD:RTDipas-pathacl1permitb100$RTD-bgppeer20.0.0.2acl1import,30.0.0.1,30.0.0.2,10.0.0.2,10.0.0.1,20.0.0.1,20.0.0.2,AS200,RTA,AS100,RTD,RTB,RTC,仅发送本AS的路由,仅接受从AS100始发的路由,AS300,要求RTA不转发来自AS200的路由给AS100而只发送AS300内部产生的路由.要求RTD仅接受从AS100始发的路由,拒绝从AS300始发的路由,补充:正则表达式的特殊字符表,路由过滤基于RoutePolicy,1.1.1.1,1.1.1.2,RTA,RTC,AS200,AS100,18.0.0.0/8,19.0.0.0/8,OSPF,RTB,不允许RTB向AS外通告路由18.0.0.0/8;且所有通告出去的路由的metric值必须为888,RTB-bgppeer1.1.1.2route-policydeny18exportRTBroute-policydeny18permit10RTB-route-policyif-matchipaddress1RTB-route-policyapplycost888RTBacl1RTB-acl-1ruledeny18.0.0.00.255.255.255RTB-acl-1rulepermitany,一个BGP路由器对路由的处理过程,从对等体接受路由,输入策略机,发送路由给对等体,决策过程,加入路由表,输出策略机,根据属性过滤和设置属性,路由聚合,合并具体路由,路由表,输入策略机,IGP路由,BGP路由,安装路由,选择最佳路由,查看BGP信息,显示BGP路由信息Displaybgp,Quidway-bgpdisbgpBGPlocalrouterIDis1.1.1.1Statuscodes:ssuppressed,ddamped,hhistory,*valid,best,iinternalOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfPath*1.1.1.1/320.0.0.0?*2.2.2.2/3210.0.0.2100?*10.0.0.0/240.0.0.0?*10.0.0.2100?*10.0.0.1/3210.0.0.2100?*10.0.0.2/320.0.0.0?,查看BGP信息,显示BGP路由信息Quidwaydisplaybgpsummary,NeighborVASMsgRcvdMsgSentOutQUp/DownState160.1.48.24100411000:03:38Established150.1.8.1420000000:00:09Active,BGP调试命令,all表示所有的BGP调试开关event表示BGP事件调试信息开关keepalive表示Keepalive消息调试开关open表示Open消息调试开关packet表示所有BGP消息调试开关update表示Update消息调试开关,RTAundodebuggingbgpall|event|keepalive|open|packet|updatereceive|sendverbose,补充,补充,补充,课程内容,BGP路由协议的原理BGP路由属性配置BGP路由协议处理大规模网络中BGP的应用,BGP在大规模网络中遇到的问题,BGP路由表庞大BGP聚合IBGP相邻体过多,逻辑全连接不易现实BGP联盟BGP反射在复杂网络环境中路由的变化过于频繁BGP衰减,BGP聚合,BGP支持路由的手动聚合。手动聚合aggregate是对BGP本地路由进行的聚合。在配置手动路由聚合的同时,还可进行一系列参数的配置。,BGP聚合只通告聚合路由,AS100,AS200,172.16.0.0/24172.16.1.0/24172.16.2.0/24.172.16.15.0/24,RTB,EBGP,172.16.0.0/20,172.16.0.0/20,RTA,RTA-bgpaggregate172.16.0.0255.255.240.0detail-suppressed,BGP聚合通告聚合路由和具体路由,AS100,AS200,172.16.0.0/24172.16.1.0/24172.16.2.0/24.172.16.15.0/24,RTB,EBGP,172.16.0.0/20,172.16.0.0/20,RTA,RTA-bgpaggregate172.16.0.0255.255.240.0RTB-bgpaggregate172.16.0.0255.255.240.0,172.16.0.0/24172.16.1.0/24172.16.2.0/24.172.16.15.0/24,172.16.0.0/20,BGP反射,为了避免在AS内产生选路循环,BGP不通告内部BGP对等体通过其它IBGP对等体得知的路由。因此,在AS内保持一个完整的IBGP闭合网是很重要的,也就是说,AS中的每个BGP路由器必须与AS中所有其它路由器建立BGP对话。这样在某些网络中,由于内部BGP网络非常大(每个路由器有多于100个的内部对话),建立全闭合网开销也很大。这就要求使用新的对等技术。这种技术需要把一个内部BGPpeer配置成为路由反射器,其他内部peers就不必要全网状相连,只需要和路由反射器建立IBGP会话,仅通过路由反射器学习路由即可,BGP反射,路由反射器可如下图所示:RouterA从EBGP对等体收到一个更新并把它传递到RouterB。RouterB被配置成路由反射器,它有两个客户机:RouterA和RouterC。RouterB将把更新从客户机RouterA反射给客户机RouterC。在这种情况下,不需要建立RouterA和RouterC之间的会话,因为路由反

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论