欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    BGP.docx

    • 资源ID:10532248       资源大小:1.30MB        全文页数:87页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    BGP.docx

    1、BGPBGP路由协议详解(完整篇)2010-12-27 12:02:45标签:工程师职场时间休闲由于各位工程师在下载以前的BGP路由协议详解(完整篇)时,不能下载附件,所以今天我将这个博再重新发一次。上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但因最近的工作和授课很忙,所以没有时间进行完善。为了实现这个承诺,我在去外地出差期间对BGP协议详解博文进行一些修改,其中内容包括了一些实验,以及一些内容的补充和深入阐述,更宜于网友们学习BGP路由协议。因为这个文档出来的很晚,也希望网友们见谅! 此BGP协议的内容也不算太难,一些关于BGP的高级应用,会在以后MPLS 协议和MPLS流量

    2、工程中的内容中会更深入的讲解! 希望通过本文档能帮助那些爱好网络知识和那些参加CCIE考试的网友们提供一些帮助。一、BGP的概况BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS号使用指南。BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。1、BGP的特

    3、性? BGP将传输控制协议(TCP)用作其传输协议。是可靠传输,运行在TCP的179端口上(目的端口)? 由于传输是可靠的,所以BGP0使用增量更新,在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。? 类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。? BGP在接收更新分组的时候,TCP使用滑动窗口,接收方在发送方窗口达到一半的时候进行确定,不同于OSPF等路由协议使用1-to-1窗口。? 丰富的属性值? 可以组建可扩展的巨大的网络2、BGP的三张表? 邻居关系表n 所有BGP邻居? 转发数据库n 记录每个

    4、邻居的网络n 包含多条路径去往同一目的地,通过不同属性判断最好路径n 数据库包括BGP属性? 路由表n 最佳路径放入路由表中n EBGP路由(从外部AS获悉的BGP路由)的管理距离为20n IBGP路由(从AS系统获悉的路由)管理距离为200如下图所示。? 邻居表,包含与之建立BGP连接的邻居n 使用命令show ip bgp summary可以查看到Router#sh ip bgp summaryBGP router identifier 11.1.1.1, local AS number 100BGP table version is 8, main routing table versi

    5、on 85 network entries using 585 bytes of memory6 path entries using 312 bytes of memory4/3 BGP path/bestpath attribute entries using 496 bytes of memory1 BGP AS-PATH entries using 24 bytes of memory0 BGP route-map cache entries using 0 bytes of memory0 BGP filter-list cache entries using 0 bytes of

    6、memoryBGP using 1417 total bytes of memoryBGP activity 5/0 prefixes, 6/0 paths, scan interval 60 secsNeighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd10.1.1.1 4 100 14 18 8 0 0 00:09:32 211.1.1.2 4 200 12 16 8 0 0 00:07:03 1? 转发表,从邻居那里获悉的的所有路由都被加入到BGP转发表中。n 使用命令show ip bgp可以查看Router

    7、#sh ip bgpBGP table version is 8, local router ID is 11.1.1.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path*> 10.1.1.0/24 0.0.0.0 0 32768 i* i 10.1.1.1

    8、 0 100 0 i*> 11.1.1.0/24 0.0.0.0 0 32768 i*>i192.168.1.0 10.1.1.1 0 100 0 i*> 192.168.2.0 0.0.0.0 0 32768 i*> 192.168.3.0 11.1.1.2 0 0 200 i? 路由表,BGP路由选择进程从BGP转发表中选出前往每个网络的最佳路由,并加入到路由表中。n 使用命令show ip route bgp可以查看Router#sh ip route bgpB 192.168.1.0/24 200/0 via 10.1.1.1, 00:13:11B 192.16

    9、8.3.0/24 20/0 via 11.1.1.2, 00:11:193、BGP消息类型? open:用来建立最初的BGP连接。(包含hold-time,router-id)? Keepalive:对等体之间周期性的交换这些消息以保持会话有效。(默认60秒)? Update:对等体之间使用这些消息来交换网络层可达性信息。? Notification:这些消息用来通知出错信息。所有的BGP分组共享同样的公有首部,在学习不同类型的分组之前,先讨论公共首部,如下图所示,这个首部的字段如下。?标记:这个16字节标记字段保留给鉴别用?长度:这个2字节字段定义包括首部在内的报文总长度?类型:这个1字节段

    10、定义分组的类型,用数值1至4定义BGP消息类型打开消息:主要是利用此报文建立邻居,运行BGP的路由器打开与邻居的TCP连接,并发送打开报文,如果邻居接受这种邻居关系,由响应保活报文。打开报文格式如下所示。?版本:这个1字节字段定义BGP的版本,当前的版本是4?自治系统:这个2字节字段定义自治系统号。?保持时间:这个2字节字段定义一方从另一方收到保活报文或更新报文之前所经过的最大秒数,若路由器在保持时间的期间内没有收到这些报文中的一个,就认为对方是不工作的。?BGP协议标识:这是2字节字段,这定义发送打开报文的路由器,为此,这个路由器通常使用它的IP地址中的一个作为BGP标识符。?选项长度:打开

    11、报文还可以包含某些选项参数,若包含,则这个1字节字段定义选项参数总长度,若没有选项参数,则这个字段的值为0?选项参数:若选项参数长度的值不是0,则表示有某些选项参数,每一个选项参数本身又有两个字段,参数长度和参数值,到现在已定义的唯一的选项参数是鉴别。如下图是采用ethereal采集到的BGP的打开消息报文。更新报文:更新报文是BGP协议的核心,路由器使用它来撤销以前已通知的终点和宣布到一个新终点的路由,或两者都有,应该注意:BGP可以撤销好几个在以前曾通知过的终点,但在单个更新报文中则只能通知一个新终点,如下所示。?不可行路由长度:这个2字节字段定义下一字段的长度。?撤销路由:这个字段列出必

    12、须从以前通知的清单中删除的所有路由?路径属性长度:这个2字节字段定义下一个字段的长度?路径属性:这个字段定义到这个报文宣布可达性的网络路径属性?网络层可达性信息:这个字段定义这个报文真正通知的网络。它有一个长度字段和一个IP地址前缀,长度定义前缀中的位数。前缀定义这个网络地址的共同部分。例如,若这个网络是123.1.10.0/24,则网络前缀是24而前缀是123.1.10。下图为,是采用ethereal采集到的BGP的更新消息报文。保活报文:是用来告诉对方自己是工作的,保活报文只包括公共首部,如下图所示。下图为,是采用ethereal采集到的BGP的保活报文。通知报文:当检测出差错状态或路由器

    13、打算关闭连接时,路由器就发送通知报文,如下图所示。?差错码:这个1字节字段定义差错的种类?差错子码:这个1字节字段进一步定义每一种差错的类型?差错数据:这个字段可用来给出关于该差错的更多的诊断信息具体的差错码,如下表所示。差错码差错码说明差错子码说明1报文首部差错3种不同的子码:同步问题(1),坏的报文长度(2),坏的报文类型(3)2打开报文差错6种不同的子码:不支持的版本(1),坏的对等AS(2),坏的BGP标识符(3),不支持的可选参数(4),鉴别失败(5),不可接受的保持时间(6)3更新报文差错11种不同的子码:错误形成的属性表(1),不能识别的熟知属性(2),丢失熟知属性(3),属性标

    14、志差错(4),属性长度差错(5),非法起点属性(6),AS路由选择环路(7),无效的下一路属性(8),可选属性差错(9),无效的网络字段(10),错误形成的AS_PATH(11)4保持计时器截止期到未定义子码5有限状态机差错定义过程的差错,未定义子码6关闭未定义子码下图为,是采用ethereal采集到的BGP的通知报文。4、建立邻居的过程在两个BGP发言人交换信息之前,BGP都要求建立邻居关系,BGP不是动态地发现所感兴趣的运行BGP的路由器,相反,BGP使用一个特殊的邻居IP地址来配置的。BGP使用周期性的Keepalive分组来确认BGP邻居的可访问性。Keepalive计时器是保持时间(

    15、Hold Time)的三分之一,如果发给某一特定BGP邻居三个连续的Keepalive分组都丢失的话,保持时间计时器超时,那个邻居被视为不可达,RFC1771对保持时间的建议是90秒,Keepalive计时器的建议值是30秒。按照RFC1771,BGP建立邻居关系要经历以下几个阶段,如下图所示。?Idle:在此状态下不分配网络资源,不允许传入的BGP连接。当在持续性差错条件下,经常性的重启会导致波动。因此,在第一次进入到空闲状态后,路由器会设置连接重试定时器,在定时器到期时才会重新启动BGP,思科的初始连接重试时间为60秒,以后每次连接重试时间都是之前的两倍,也就是说,连接等待时间呈指数关系递

    16、增。?Connect:(已经建立完成了TCP三次握手),BGP等待TCP连接完成,如果连接成功,BGP在发送了OPEN分组给对方之后,状态机变为OpenSent状态,如果连接失败,根据失败的原因,状态机可能演变到Active,或是保持Connect,或是返回Idle。?Active:在这个状态下,初始化一个TCP连接来建立BGP间的邻居关系。如果连接成功,BGP在发送了OPEN分组给对方之后,状态机变为OpenSent状态,如果连接失败,可能仍处在Active状态或返回Idle状态。?OpenSent:BGP发送OPEN分组给对方之后,BGP在这一状态下等待OPEN的回应分组,如果回应分组成功

    17、收到,BGP状态变为OpenConfirm,并给对方发送一条Keepalive分组,如果没有接到回应分组,BGP状态重新变为Idle或是Active。?OpenConfirm:这时,距离最后的Established状态只差一步,BGP在这个状态下等待对方的Keepalive分组,如果成功接收,状态变为Established,否则,因为出现错误,BGP状态将重新变为Idle。?Established:这是BGP对等体之间 可以交换信息的状态,可交换的信息包括UPDATE分组、KeepAlive分组和Notification分组。connect和active都是TCP连接阶段,ACTIVE是发起方

    18、,connect是应答方。可以使用命令show ip bgp summary、debug ip bgp events、debug ip bgp来查看。Router#debug ip bgpBGP debugging is on for address family: IPv4 Unicast*Jun 23 22:00:05.619: BGP: 11.1.1.2 went from Idle to Active*Jun 23 22:00:05.627: BGP: 11.1.1.2 open active delayed 30128ms (35000ms max, 28% jitter)*Jun

    19、23 22:00:06.215: BGP: 11.1.1.2 passive open to 11.1.1.1*Jun 23 22:00:06.219: BGP: 11.1.1.2 went from Active to Idle*Jun 23 22:00:06.219: BGP: 11.1.1.2 went from Idle to Connect*Jun 23 22:00:06.227: BGP: 11.1.1.2 rcv message type 1, length (excl. header) 26*Jun 23 22:00:06.227: BGP: 11.1.1.2 rcv OPEN

    20、, version 4, holdtime 180 seconds*Jun 23 22:00:06.231: BGP: 11.1.1.2 went from Connect to OpenSent*Jun 23 22:00:06.231: BGP: 11.1.1.2 sending OPEN, version 4, my as: 100, holdtime 180 seconds*Jun 23 22:00:06.231: BGP: 11.1.1.2 rcv OPEN w/ OPTION parameter len: 16*Jun 23 22:00:06.231: BGP: 11.1.1.2 r

    21、cvd OPEN w/ optional parameter type 2 (Capability) len 6*Jun 23 22:00:06.235: BGP: 11.1.1.2 OPEN has CAPABILITY code: 1, length 4*Jun 23 22:00:06.235: BGP: 11.1.1.2 OPEN has MP_EXT CAP for afi/safi: 1/1*Jun 23 22:00:06.235: BGP: 11.1.1.2 rcvd OPEN w/ optional parameter type 2 (Capability) len 2*Jun

    22、23 22:00:06.235: BGP: 11.1.1.2 OPEN has CAPABILITY code: 128, length 0*Jun 23 22:00:06.239: BGP: 11.1.1.2 OPEN has ROUTE-REFRESH capability(old) for all address-families*Jun 23 22:00:06.239: BGP: 11.1.1.2 rcvd OPEN w/ optional parameter type 2 (Capability) len 2*Jun 23 22:00:06.239: BGP: 11.1.1.2 OP

    23、EN has CAPABILITY code: 2, length 0*Jun 23 22:00:06.239: BGP: 11.1.1.2 OPEN has ROUTE-REFRESH capability(new) for all address-familiesBGP: 11.1.1.2 rcvd OPEN w/ remote AS 200*Jun 23 22:00:06.243: BGP: 11.1.1.2 went from OpenSent to OpenConfirm*Jun 23 22:00:06.243: BGP: 11.1.1.2 send message type 1,

    24、length (incl. header) 45*Jun 23 22:00:06.359: BGP: 11.1.1.2 went from OpenConfirm to Established*Jun 23 22:00:06.363: %BGP-5-ADJCHANGE: neighbor 11.1.1.2 Up5、建立IBGP邻居IBGP运行在AS内部,不需要直连。IBGP有水平分割,建议使用Full Mesh,由于Full Mesh不具有扩展性,为了解决IBGP的Full Mesh问题,使用路由反射器(RR)和联邦两种方法来解决。主要减少了backbone IGP中的路由。Neighbor后

    25、所指的地址可达。发起方不能是缺省路由,应答方不能是缺省路由。可以使用下面两种方法来建立IBGP邻居:? 邻居之间可以通过各自的一个物理接口建立对等关系,该对等关系是通过属于它们共享的子网的IP地址来建立的。? 邻居之间也可以通过使用环回接口建立对等关系。在IBGP中,由于假定了IBGP邻居在物理上直接相连的可能性不大,所以将IP分组头中的TTL域设置为255。6、建立EBGP邻居EBGP运行在AS与AS之间的边界路由器上,默认情况下,需要直连或使用静态路由,如果不是直连,必须指EBGP多跳,Neighbor x.x.x.x ebgp-multihop 1-255不选择为最大值,255跳。可以使

    26、用下面两种方法来建立EBGP邻居:? 邻居之间可以通过各自的一个物理接口建立对等关系。? 邻居之间也可以通过使用环回接口建立对等关系。7、neighborip-addressremote-asnumber命令例:neighbor 10.1.1.1 remote-as 100指定对方属于哪一个AS。所指的10.1.1.1地址,必须在IGP中可达。? 允许邻居用这个地址来访问我的179端口,但没有指明访问本路由器的哪个地址,只检查源地址。? 本路由器以更新源地址去访问neighbor后面这个地址的179端口,是否可以建立TCP链接要看对方是否允许我的更新源来访问它。示例:R1/R2两台路由器运行R

    27、IPv2,都将环回口宣告进RIP。这时假如在两台路由器之间运行IBGP邻居关系:R1:neighbor 192.168.2.1 remote-as 1R2:neighbor 10.1.1.1 remote-as 1双方都没有写更新源。(neighbor x.x.x.x update-source lo0代表本路由器的更新源为lo0口,BGP的包以这个接口的地址为源地址发送出去。)一边指环回口,一边指直连接口。可以建立邻居。这里有2个TCP的session,其中只有R1去访问R2的环回口的179端口的TCP session可以建立。可以用show tcp brief查看。Router#sh tc

    28、p briefTCB Local Address Foreign Address (state)65693960 10.1.1.1.51124 192.168.2.1.179 ESTAB这时在R2上写上确定更新源命令:neighbor 10.1.1.1 update-source lo1,这时即可建立2条TCP session。可以使用命令Show tcp brief查看到2条TCP session在建立,当一条establish完成后,另一条过会即消失。Router#sh tcp briefTCB Local Address Foreign Address (state)65693960 1

    29、0.1.1.1.51124 192.168.2.1.179 CLOSED65693E14 10.1.1.1.37992 192.168.2.1.179 ESTABRouter#sh tcp briefTCB Local Address Foreign Address (state)65693E14 10.1.1.1.37992 192.168.2.1.179 ESTAB注:路由器建立BGP邻居写两条正确的neighbor命令,是为了冗余。8、IBGP的同步? BGP同步规则指出,BGP路由器不应用使用通过IBGP获悉的路由或将其通告给外部邻居,除非该路由是本地的或是通过IGP获悉的。? 同步开

    30、启意味着,从一个IBGP邻居学来的路由,除非从IGP中也同样学习到,否则不可能被选为最优。? 如果IGP为OSPF,那么在IGP中,这些前缀的router-id也必须与通告这些前缀的bgp的router-id相匹配。才有可能被选为最优。实例说明:如下图所示R1、R2、R3同为OSPF area 0中路由器(每台路由器的router-id如上图所示),R2上一条路由3.3.3.0/24宣告进OSPF。R1、R3运行IBGP,R1将3.3.3.0/24的前缀引入BGP,传给R3。这时R3既从OSPF area0中的R2学习到该前缀,又从IBGP对等体R1,学习到该前缀,如果R3的synchroni

    31、zaion是开启的,检查同步,在R3的BGP转发表里:R1router ospf 10router-id 2.2.2.1log-adjacency-changesnetwork 10.1.1.0 0.0.0.255 area 0network 11.1.1.0 0.0.0.255 area 0!router bgp 100synchronizationbgp log-neighbor-changesredistribute ospf 10neighbor 11.1.1.2 remote-as 100no auto-summaryR3router ospf 10router-id 2.2.2.3log-adjacency-changesnetwork 11.1.1.0 0.0.0.255 area 0!router bgp 100synchronizationbgp log-neighbor-changesneighbor 11.1.1.1 remote-as 100no auto-summaryR3#sh ip b


    注意事项

    本文(BGP.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开