学习宝典笔记完整.pptx
《学习宝典笔记完整.pptx》由会员分享,可在线阅读,更多相关《学习宝典笔记完整.pptx(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录 ContentsBGP概述BGP工作原理BGP报文详解BGP选路第1页/共71页BGP概述BGP工作原理BGP报文详解BGP选路第2页/共71页BGP协议的产生网络收敛状态,实现全网信息可达路由条目数量惊人(一台路由拥有10万乃至100万路由条目)如果网络发生中断,或者不断的变化,对整个互联网造成的巨大动荡,最终造成路由信息不同步;互联网中,一个网络的中断与恢复,没有必要通告给网络中数以万计的路由器此外网络中的路由需要实施路由策略网络中需要部署MPLS VPN第3页/共71页自治系统什么是自治系统(AS)自治系统指由同一个技术管理机构管理、使用内部路由策略的一些路由器的集合。每个自治系
2、统都有唯一的自治系统编号。自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是私有编号。为什么引入自治系统这一概念?引入自治系统的基本思想就是通过不同的编号来区分不同的自治系统。AS将一台路由器的路由更新限制在一定的范围内,最终达到收敛的状态自治系统内部的路由协议 IGP 如OSPF、IS-IS、RIP、EIGRP(cisco专有)自治系统之间的路由协议 BGP 如:EGP、BGP第4页/共71页不采用RIPRIP、OSPFOSPF的原因:nRIP记录的只有下一跳,没有真正定义到目的地的完整路径,RIP跳数上限只有16,不适合较大规模网络nOSPF
3、的LSDB随网络规模的增加成几何数增长。nBGP的提出是面向AS之间的路由选择。BGP是基于路径向量路由的思想,但从设计上避免了环路的产生。BGP要给出到目的地的完整路径。不关心跳数、量度,而是关心所要经过的自治系统。BGP 协议基本思想第5页/共71页BGP协议基本思想BGP是作为EGP路由协议,主要用来在AS之间传递路由信息在AS之间是一种距离矢量的路由协议,应用特定的属性避免环路的发生路由信息携带丰富的属性传送协议:TCP,端口号179支持CIDR(无类别域间选路)路由更新:只发送增量路由信息丰富的路由过滤和路由策略第6页/共71页BGP概述BGP工作原理BGP报文详解BGP选路第7页/
4、共71页BGP 工作机制AS1AS2AS3AS5AS6AS4AS7传输传输AS多出口多出口ASSTUB AS第8页/共71页BGP 问题?1、既然BGP用于AS之间的通信,为什么BGP对等体还有内外之分呢?IBGP用于承载外部EBGP更新,使它可以在AS内部通过BGP传输。BGP数据结构:nBGP邻居表:记录BGP对等体信息nBGP表:记录到达目标网络所有的路径信息,以及每条BGP更新的属性n路由表:到达目标网络的最佳路由2、为什么在有IBGP的情况下,还需要IGP呢?需要IGP解析BGP对等体的可达性,保证TCP连接可以建立,IBGP关系也可以建立第9页/共71页BGP使用原则n多条路径时,
5、BGP Speaker 选择最优的路径给自己使用。nBGP Speaker 只把自己使用的路由通告给相邻体。nBGP Speaker把从EBGP获得的路由向所有相邻体通告(包括EBGP和IBGP)。nBGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告。nBGP Speaker从IBGP获得的路由是否向它的EBGP相邻体通告要看IGB与BGP的同步情况而定。n连接一建立,BGP Speaker把自己所有的BGP路由通告给新的相邻体。第10页/共71页协议报文报文名称报文名称作用是什么作用是什么什么时候发包什么时候发包OPEN协商BGP邻居的各项参数,建立邻居关系通过TCP建立B
6、GP连接,发送open报文UPDATE进行路由信息的交换连接建立后,有路由需要发送或路由变化时,发送UPDATE通告对端路由信息NOTIFICATION报告错误,中止邻居关系当BGP在运行中发现错误时,要发送NOTIFICATION报文通告BGP对端KEEPALIVE维持邻居关系定时发送KEEPALIVE报文以保持BGP邻居关系的有效性Route-refresh为保证网络稳定,触发更新路由的机制当路由策略发生变化时,触发请求邻居重新通告路由第11页/共71页邻居状态机PeerPeer状态名称状态名称发什么包发什么包在做什么在做什么Idle尝试建立TCP连接开始准备TCP的连接并监视远程peer
7、启动TCP连接,启用BGP时,要准备足够的资源Connect发TCP包正在进行TCP连接,等待完成中,认证都是在TCP建立期间完成的。如果TCP连接不上则进入Active状态,反复尝试连接。Active发TCP包反复尝试TCP连接,OpenSent发Open包TCP连接建立已经成功,开始发送Open包,Open包携带参数协商对等体的建立。OpenConfirm发Keepalive包参数、能力特性协商成功,自己开始发送Keepalive包,等待对方的Keepalive包。Established发Update包已经收到对方的Keepalive包,双方能力特性一致,开始使用Update通告路由信息。
8、第12页/共71页BGP协议状态机-建立邻居过程ActiveOpen-sentOpen-confirmEstablishedIdleConnectTCP connection failsConnect-Retrytimer expiryStartOthersTCP connection failsErrorErrorErrorKeepAlivetimer expiryKeepAlive packet received1.KeepAlive timer expiry2.Update received3.KeepAlive receivedTCP connection setupTCP conne
9、ction setupOthers第13页/共71页BGP概述BGP工作原理BGP报文详解BGP选路第14页/共71页BGP报文详解Marker:16字节,用于标明 BGP报文边界,所有比特均为“1”Length:2字节,BGP消息总长度(包括报文头在内),以字节为单位,从Marker算起。Type:1字节,BGP消息的类型。其取值从 1到 5,分别表示 Open、Update、Notification、Keepalive 和 Route-refresh 消息。第15页/共71页BGP报文详解nOpen消息消息nUpdate消息消息nKeepalive消息消息nNotification消息消息
10、nRouter-refresh消息消息 n其他其他BGP特性特性第16页/共71页Open消息Version:BGP的版本号。对于BGP-4来说,其值为4。My autonomous system:本地AS号。AS号可以确定是EBGP连接还是IBGP连接。Hold time:保持时间。在建立对等体关系时两端要协商 Hold time,并保持一致。如果在这个时间内未收到对端发来的Keepalive消息或Update消息,则认为BGP连接中断。RFC规定两种实现,一种采用本地配置和收到的OPEN较小值进行协商,不过这个值为3。另一种是如果hold time不一致则断开连接。BGP identifi
11、er:BGP标必须为0或者最小识符。以IP地址的形式表示,用来识别BGP路由器。Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。Optional parameters:可选参数。用于多协议扩展(Multiprotocol Extensions)等功能。第17页/共71页Open消息-Optional parameters该字段为TLV格式,总长度在Opt Parm Len中。RFC1711中只定义了一种认证格式parameters,type为1Authentication Data Auth.CodeAuth.Code:
12、是指认证系统Authentication Data:该部分包括认证数据,长度由code决定。第18页/共71页Open消息-Capabilities Advertisement【CA】Capabilities advertisement:Optional Parameter type为2,结构为Code、length、Value,也是个TLV结构。该部分的作用是向BGP对等体通告所支持的Capabilities,以便进行协商。如果对端不支持CA协商,则在收到包含CA属性OPEN报文后,回应一个带有error的NOTIFICATION message,其中subcode字段置为Unsupport
13、ed。之后会重新进行BGP连接的发起,这次发送的OPEN报文中不携带CA属性。如果对端支持部分CA,也会在受到CA属性后,回应带有error的NOTIFICATION message,其中subcode字段置为Unsupported。并且消息中包括其所不支持的CA类型。此时并不需要重新进行BGP的连接。Capability Code value:0为保留,RFC2434中规定163为IETF规定,64127用作IANA,采用FCFS的策略定义。128255为私有。第19页/共71页Multiprotocol Extensions BGPAFI:协议族标记,0和65535保留,1为IPv4,2为
14、IPv6,4为HDLC,10为X.25,11为IPXReserved:保留位,全0。SAFI:全称为Subsequent Address Family Identifier(并发地址族标识):本字段携带包含在属性中的网络层可达信息(NLRI)类型的补充信息。主要取值如下1:网络层可达信息NLRI为单播unicast2:网络层可达信息NLRI为组播multicast3:网络层可达信息NLRI为both(单播和组播)第20页/共71页BGP扩展MP-BGP传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv4 组播,IPv6单播、组播)的应用,在跨自治系统传播时就受到一定
15、限制。为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP。所有的用户私有网络在被BGP 传递时,都加入了RD(路由区分符),BGP 要支持这些RD 的传递,也需要多协议的BGP(MP-BGP)BGP-4使用的报文中,与IPv4地址格式相关的三条信息都由Update报文携带,这三条信息分别是:NLRI、路径属性中的 NEXT_HOP、路径属性中的 AGGREGATOR(该属性中包含形成聚合路由的 BGP发言者的IP地址)。为实现对多种网络层协议的支持,BGP-4需要将网络层协议的信息反映到NLRI及NEXT_HOP。MP-BGP中引入了两个新的路径属性MP_REAC
16、H_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。这两种属性都是可选非过渡(Optional non-transitive)的,因此,不提供多协议能力的 BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。MP-BGP采用地址族(Address Family)来区分不同的网络层协议。目前,系统实现了多种MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等。第21页/共71页
17、BGP扩展 MP-BGP携带MP_REACH_NLRI属性的UPDATE消息必须同样携带ORIGIN和AS_PATH属性(存在于EBGP和IBGP交换中)。在IBGP交换这样一个消息时,还必须携带LOCAL_PREF属性。如果这个消息时来自于外部“对端”,本地系统应该检查在AS_PAHT属性最左边标记的AS是否与发送这个消息的“对端”的AS号码相等。否则本地系统应该发送携带错误码为UPDATE消息出错的NOTIFICATION消息,错误子码应该设置为错误AS_PATH(Malformed AS_PATH)。MP-BGP使用了扩展属性MP_REACH_NLRI。一个扩展之后的NLRI,增加了地址
18、族的描述,以及私网lable和RD。第22页/共71页 Open 消息 第23页/共71页BGP报文详解nOpen消息nUpdate消息nKeepalive消息nNotification消息nRouter-refresh消息 n其他BGP特性第24页/共71页Update消息Update消息用于在对等体之间交换路由信息,它既可以发布可达路由,也可以撤销不可达路由,一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI字段。Unfeasible routes length:不可达路由字段的长度,以字节为单位。如果为0则说明没有Withdrawn Routes字段。Wit
19、hdrawn routes:不可达路由的列表。BGP identifier:BGP标识符。以IP地址的形式表示,用来识别BGP路由器。Total path attribute length:路径属性字段的长度,以字节为单位。如果为 0则说明没有 NLRI字段。Path atributes:与NLRI相关的所有路径属性列表,每个路径属性由一个TLV构成。BGP正是根据这些属性值来避免环路,进行选路,协议扩展等。NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长度二元组。第25页/共71页 Update 消息 第26页/共71页Upda
20、te消息-withdrawn routesWithdrawn routes部分携带需要撤销的路由信息,格式是二元组。Length:表示所要取消的路由掩码长度,如果为0则表示默认路由。Length其实是我们常用的位数,后面prefix的长度为length/8取整。Prefix:长度可变,只要能表达清楚足够的前缀信息即可,后续的尾部可有可无。长度可变,但最小单位必须为字节。Attribute Flag第27页/共71页Update消息消息-NLRINLRI:Network Layer Reachability Information该这是一个或者多个(长度、前缀)用来公布IP地址前缀和前缀长度的字
21、节组。Length:路由前缀长度,其实是我们常用的前缀位数,0表示默认路由。Prefix:长度可变,只要能表达清楚足够的前缀信息即可。该字段长度不定,但最小单位必须为字节。如果公布了地址206.193.160.0/19,长度部分就是/19,前缀部分是206.193.160.注意:虽然在NLRI字段中可能会包含多个前缀,但是每个更新消息也只描述了一条BGP路由(因为路径属性只描述一条路径,但是该路径可能会到达多个目的地)Attribute Flag第28页/共71页Update消息-Path AttributesPath Attributes 属性为可变长度,每一个update消息中都存在。格式
22、为attrib的形式。Flag字段在attrib type之前。Attribute type 共2bytes,前8位为flag,后8位为type codeBits:含义 0 1为option表示可选,0为well-know公认。该位代表路由器必须识别该路由属性。1 1为transitive,0为nontransitive,表示可传递性,如果前一flag为well-know则 此处必须为1。该位表示路由器是否将该路由属性传递下去发给其他BGP对等体。2 1为partial,0为complete。表示transitive属性是否为部分支持。well-known attributes或者option
23、al non-transitive attributes,则此位必须为0。3 Extended Length 1表示后续Attri length字段长度为2 字节,0表示长度为1字节。47 保留,目前必须为全0 01234567flag第29页/共71页Update消息消息-路由属性路由属性公认必遵(Well-known mandatory):所有 BGP路由器都必须能够识别这种属性,且必须存在于 Update消息中。如果缺少这种属性,路由信息就会出错。公认可选(Well-known discretionary):所有 BGP路由器都可以识别,但不要求必须存在于 Update消息中,可以根据具
24、体情况来选择。可选过渡(Optional transitive):在 AS之间具有可传递性的属性。BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。可选非过渡(Optional non-transitive):如果 BGP路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。第30页/共71页Update消息-Attribute type code属性名称属性名称type codetype code类别ORIGIN01公认必须遵循 AS_PATH02公认必须遵循NEXT_HOP03公认必须遵循MULTI_EXIT_DISC(MED)04可选非过渡LOCAL_
25、PREF05公认可选ATOMIC_AGGREGATE06公认可选AGGREGATOR07可选过渡COMMUNITY08可选过渡ORIGINATOR_ID 09可选非过渡CLUSTER_LIST10可选非过渡MP_REACH_NLRI14可选非过渡MP_UNREACH_NLRI15可选非过渡EXTENDED_COMMUNITY16可选过渡AS4_PATH17可选过渡AS4_AGGREGATOR18可选过渡第31页/共71页Attributes ORIGINORIGIN(type code 1):公认必须遵循 0:IGP协议从AS内部学到的路由 【network手工注入】1:EGP协议从外部学来的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 宝典 笔记 完整
限制150内