资源预览内容
第1页 / 共74页
第2页 / 共74页
第3页 / 共74页
第4页 / 共74页
第5页 / 共74页
第6页 / 共74页
第7页 / 共74页
第8页 / 共74页
第9页 / 共74页
第10页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
BGP路由协议详解(完整篇)作者:张选波 此BGP协议的内容也不算太难,一些关于BGP的高级应用,会在以后MPLS 协议和MPLS流量工程中的内容中会更深入的讲解! 希望通过本文档能帮助那些爱好网络知识和那些参加CCIE考试的网友们提供一些帮助。BGPBGP2012Leroy Lee 目录第1章 BGP的概况31.1 BGP的特性31.2 BGP的三张表31.3 BGP消息类型51.4 建立邻居的过程111.5 建立IBGP邻居131.6 建立EBGP邻居131.7 neighbor ip-address remote-as number命令131.8 IBGP的同步14第2章 BGP属性172.1 AS路径属性(AS-path)182.2 源头属性(Origin)222.3 下一跳属性(NEXT_HOP)222.4 本地优先级属性(Local_preference)282.5 原子聚合属性302.6 权重属性312.7 MED属性322.8 共同体属性35第3章 BGP路由汇总37第4章 BGP路由决策39第5章 路由翻动(route flaps)和路由惩罚(route dampening)42第6章 路由反射器46第7章 BGP联邦47第8章 配置样例149第9章 配置样例261目录第1章 BGP的概况11.1 BGP的特性11.2 BGP的三张表11.3 BGP消息类型31.4 建立邻居的过程91.5 建立IBGP邻居111.6 建立EBGP邻居111.7 neighbor ip-address remote-as number命令111.8 IBGP的同步13第2章 BGP属性152.1 AS路径属性(AS-path)172.2 源头属性(Origin)202.3 下一跳属性(NEXT_HOP)212.4 本地优先级属性(Local_preference)272.5 原子聚合属性292.6 权重属性292.7 MED属性302.8 共同体属性34第3章 BGP路由汇总36第4章 BGP路由决策38第5章 路由翻动(route flaps)和路由惩罚(route dampening)41第6章 路由反射器45第7章 BGP联邦46第8章 配置样例148第9章 配置样例2604第1章 BGP的概况 BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS号使用指南。BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。1.1 BGP的特性 BGP将传输控制协议(TCP)用作其传输协议。是可靠传输,运行在TCP的179端口上(目的端口)。由于传输是可靠的,所以BGP0使用增量更新,在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。BGP在接收更新分组的时候,TCP使用滑动窗口,接收方在发送方窗口达到一半的时候进行确定,不同于OSPF等路由协议使用1-to-1窗口。l 丰富的属性值l 可以组建可扩展的巨大的网络1.2 BGP的三张表 l 邻居关系表 所有BGP邻居l 转发数据库表 记录每个邻居的网络 包含多条路径去往同一目的地,通过不同属性判断最好路径 数据库包括BGP属性l 路由表 最佳路径放入路由表中 EBGP路由(从外部AS获悉的BGP路由)的管理距离为20 IBGP路由(从AS系统获悉的路由)管理距离为200如下图所示。l 邻居表,包含与之建立BGP连接的邻居 使用命令show ip bgp summary可以查看到 Router#sh ip bgp summary BGP router identifier 11.1.1.1, local AS number 100BGP table version is 8, main routing table version 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 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 1l 转发表,从邻居那里获悉的的所有路由都被加入到BGP转发表中。 使用命令show ip bgp可以查看 Router#sh ip bgp BGP 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 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 il 路由表,BGP路由选择进程从BGP转发表中选出前往每个网络的最佳路由,并加入到路由表中。 使用命令show ip route bgp可以查看 Router#sh ip route bgp B 192.168.1.0/24 200/0 via 10.1.1.1, 00:13:11B 192.168.3.0/24 20/0 via 11.1.1.2, 00:11:191.3 BGP消息类型 open:用来建立最初的BGP连接。(包含hold-time,router-id)Keepalive:对等体之间周期性的交换这些消息以保持会话有效。(默认60秒)Update:对等体之间使用这些消息来交换网络层可达性信息。Notification:这些消息用来通知出错信息。所有的BGP分组共享同样的公有首部,在学习不同类型的分组之前,先讨论公共首部,如下图所示,这个首部的字段如下。标记:这个16字节标记字段保留给鉴别用长度:这个2字节字段定义包括首部在内的报文总长度类型:这个1字节段定义分组的类型,用数值1至4定义BGP消息类型打开消息:主要是利用此报文建立邻居,运行BGP的路由器打开与邻居的TCP连接,并发送打开报文,如果邻居接受这种邻居关系,由响应保活报文。打开报文格式如下所示。版本:这个1字节字段定义BGP的版本,当前的版本是4自治系统:这个2字节字段定义自治系统号。保持时间:这个2字节字段定义一方从另一方收到保活报文或更新报文之前所经过的最大秒数,若路由器在保持时间的期间内没有收到这些报文中的一个,就认为对方是不工作的。BGP协议标识:这是2字节字段,这定义发送打开报文的路由器,为此,这个路由器通常使用它的IP地址中的一个作为BGP标识符。选项长度:打开报文还可以包含某些选项参数,若包含,则这个1字节字段定义选项参数总长度,若没有选项参数,则这个字段的值为0选项参数:若选项参数长度的值不是0,则表示有某些选项参数,每一个选项参数本身又有两个字段,参数长度和参数值,到现在已定义的唯一的选项参数是鉴别。如下图是采用ethereal采集到的BGP的打开消息报文。更新报文:更新报文是BGP协议的核心,路由器使用它来撤销以前已通知的终点和宣布到一个新终点的路由,或两者都有,应该注意:BGP可以撤销好几个在以前曾通知过的终点,但在单个更新报文中则只能通知一个新终点,如下所示。不可行路由长度:这个2字节字段定义下一字段的长度。撤销路由:这个字段列出必须从以前通知的清单中删除的所有路由路径属性长度:这个2字节字段定义下一个字段的长度路径属性:这个字段定义到这个报文宣布可达性的网络路径属性网络层可达性信息:这个字段定义这个报文真正通知的网络。它有一个长度字段和一个IP地址前缀,长度定义前缀中的位数。前缀定义这个网络地址的共同部分。例如,若这个网络是123.1.10.0/24,则网络前缀是24而前缀是123.1.10。下图为,是采用ethereal采集到的BGP的更新消息报文。保活报文:是用来告诉对方自己是工作的,保活报文只包括公共首部,如下图所示。下图为,是采用ethereal采集到的BGP的保活报文。通知报文:当检测出差错状态或路由器打算关闭连接时,路由器就发送通知报文,如下图所示。差错码:这个1字节字段定义差错的种类差错子码:这个1字节字段进一步定义每一种差错的类型差错数据:这个字段可用来给出关于该差错的更多的诊断信息具体的差错码,如下表所示。 差错码差错码说明差错子码说明1报文首部差错3种不同的子码:同步问题(1),坏的报文长度(2),坏的报文类型(3)2打开报文差错6种不同的子码:不支持的版本(1),坏的对等AS(2),坏的BGP标识符(3),不支持的可选参数(4),鉴别失败(5),不可接受的保持时间(6)3更新报文差错11种不同的子码:错误形成的属性表(1),不能识别的熟知属性(2),丢失熟知属性(3),属性标志差错(4),属性长度差错(5),非法起点属性(6),AS路由选择环路(7),无效的下一路属性(8),可选属性差错(9),无效的网络字段(10),错误形成的AS
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号