因特网路由技术.ppt
,因特网路由技术,Part#,Lucent Technologies Bell Labs Innovations,Page 2,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,路由的基本内容,Page 3,路由简介1,路由简介,IP协议中的主要功能之一,实现不同网段之间的互通。路由的内容路由表,在路由器和主机中存贮的路径信息,记录着一系列到其它网络的路径及路径信息,需定时刷新。路由算法,是一个软件的概念,用来找到去往某个信宿机的最优路径,不是唯一的。路由算法要达到的目标:最优路径、简单、全面和稳定,以及灵活。路由算法分类:1、静态路由和动态路由2、单路由协议算法和多路由协议算法3、无层次和有层次的路由算法4、源路由和传统路由5、域内路由和域间路由6、链路状态算法和距离向量算法路径权值,衡量一条路由优劣的路径属性,包括路径的长度、可靠性、网络延迟、带宽、负载和通信化费。,Page 4,路由简介2,距离向量算法:将路由表定期的全部或大部分的内容发给相邻的路由器。链路状态算法:将路由表中与之相连的链路状态,发往全网。自治系统:一个自治系统使用相同的路由协议,并且内部的管理统一,有一组路由器或网络构成,其中有一个骨干路由器和若干个非骨干路由器。自治系统的含义:系统内部各路由器连接本系统内的全部的路径信息,并通过一条默认的路径将外出本系统的数据通过骨干路由器传出系统内非骨干路由器向骨干路由器报告内部的路径信息,使得前往本系统内部的数据能够通过骨干路由器器送入。每个自治系统都有它自己的标识。内部路由协议:在一个自治系统内部使用的路由协议外部路由协议:在自治系统之间使用的路由协议,路由简介,Page 5,什么是路由,路由-从一个端点到另一个端点的路径发现的过程 路由发生在第三层 桥接发生在第二层,Page 6,IP路由和路由表,IP功能 寻找相对应的主机地址 寻找相对应的网络地址 寻找一个缺省入口,路径的选择由IP路由器完成,路由器根据进入的IP数据报的目的地址查询路由表,并确定从路由器的哪个端口发送出去,路由表的内容:目的地址 下一跳路由器的IP地址 网络输出端口 该端口的子网掩码 到目的地的距离,Page 7,路由的组成部分,有三个重要的路由元件 路由算法:不同的路由算法有不同的选路特性 路由信息数据库:存储路由表的内容 路由协议:路由信息采集和分发的方法 路由权值(metric)如何确定一条路径优于其它路径?解决办法:使用权值来衡量路径的优劣 权值可以是距离、吞吐量、延迟、误码率和费用开销等 目前IP支持延迟、吞吐量、可靠性和费用开销,Page 8,跳数(Hop Count),穿过一个路由器的一段称为一跳有些路由协议,跳数是以经过的链路的数量计 算,而不是路由器的数量。,Page 9,路由算法和路由协议概述,路由算法设计目标最优:计算最佳路径简单低开销:软件规模和使用开销最小,具有高效性强健性稳定性:在不正常的情况下能够正常运行快速收敛:网络状态发生变化时,响应迅速灵活性:准确适应多种网络路由协议路由器之间交换当前网络状态信息的协议路由协议的功能 产生路由表条目 维护路由表的刷新 进行到下一跳路由器的最佳选择的计算,Page 10,路由算法的分类,静态路由算法和动态路由算法源路由和逐跳路由中央路由和分布式路由距离向量路由和链路状态路由,Page 11,路由算法静态路由,静态路由人工配置路由表当网络状态发生变化时,不能动态响应在小型网络或简单网络拓扑的情况能很好的工作在unix主机中使用route命令增加路由项,静态技术Flooding将每个入分组从每个出口发出如果需要重传时,在每个节点的所有出口重传简单技术,无需大量的网络信息产生大量的复制分组,Page 12,路由算法动态路由,动态路由算法网络协议自动适应网络拓扑和业务量的变化unix主机使用路由进程routed或gated,动态路由操作路由协议维护和分发路由信息,Page 13,路由算法源路由和逐跳路由,源路由算法信息源决定信息经过的全部路径路由器只是作为信息中转设备,逐跳路由算法网络中间的路由器根据它自身的计算,为到来的分组确定以后的路径,Page 14,路由算法距离向量和链路状态,距离向量路由算法距离:是指路由权值向量:是指目的方向只将路由表传播给与它相邻的路由器RIP、BGP4是距离向量路由协议还称为Bellmann-Ford 算法或Ford-Fulkerson 算法,链路状态路由算法将路由信息传播给网络中所有的节点每个路由器发现新启动的路由器,并将该信息传播给其它所有的路由器使用链路状态算法构造一个到它自身的最短路径图OSPF、ISIS是链路状态路由协议还称为Shortest Path First(SPF)algorithm算法,Page 15,距离向量算法,使用主机的跳数作为权值每个路由器周期性地将其路由表的全部内容发送给与它相邻的路由器发送,Page 16,距离向量算法的路由刷新,一个路由器到另一个路由器逐步进行收敛较慢,Page 17,距离向量算法瘫痪恢复,R3发生瘫痪R1完成新的选路,R2,R1的路由表,R3,R4,R5,I,J,K,L,M,N,O,R1,net hop via I 1 N/A J 1 N/A K 2 R2 M 2 R2 L 2 R3 N 2 R3 O 3 R5,net hop via I 1 N/A J 1 N/A K 2 R2 M 2 R2 L 3 R2 N 4 R2 O 3 R2,Page 18,距离向量算法路由循环,R2首先发现它不能收到来自R3的任何信息R1通知R2:没有关系,我经过2跳可以到R3R2更新它到R3的跳数,并传递给R1R1看到R2的刷新信息后,更改它到R3的跳数为4,并通知R2;R2更新其到R3的跳数后,再通知R1如此往复,形成循环,Page 19,距离向量算法路由循环问题的解决,每个路由器设置最大距离(跳数)为16任何目的地址与其它节点的距离不能超过15水平分割:当到目的地为X的分组发出是,到目的地为X的距离变化不会立即报告反向抑制:发送一个路由刷新,说明距离将无限大,Page 20,链路状态算法概述,用费用开销作为权值将其连接状态信息和开销传递给它的邻居路由器为每个目的地计算一组最优路径(最短路径优先),Page 21,链路状态算法概念,每个路由器通过与它直接连接的网络初始化确定远端路由器(不直接连接的)和这些路由器有关的连接的所有信息,Page 22,链路状态算法路由刷新,发送信息给其它路由器快速收敛,R1,R2,R4,Page 23,链路状态算法和距离向量算法比较,距离向量算法交换路由表中所有信息路由权值为跳数 频繁的周期性刷新:收敛慢,链路状态算法传递链路更新信息计算到其它路由器的最短路径事件触发刷新:收敛快,Page 24,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,CIDR 无类别域间路由,Page 25,概述,路由简介,有类别路由协议概念:在跨多个主网络通信时不携带子网掩码的信息,因为它假定对于同一主网络,其使用的子网掩码都是一样的。举例:如果使用的主网络为,其子网掩码为,则有类别的路由协议假定总是对应子网掩码为。RIP v1,IGRP可变长子网掩码VLSM概念:对同一主网络在不同的位置使用不同的子网掩码无类别路由协议概念:在跨多个主网络通信时,携带子网掩码信息。OSPF、RIP v2、EIGRP,Page 26,地址分配问题,路由简介,B类网络地址空间枯竭中等规模网络地址的缺乏C类地址,每个网络中有254个主机,太小B类地址,每个网络中有65534个主机,太大将C类地址块合并,构成一个网络,每个网络中的地址数量大于一个C类网,又小于一个B类网络网络中的主机小于256个地址,使用1个C类网网络中的主机小于512个地址,使用2个连续的C类网网络中的主机小于1024个地址,使用4个连续的C类网网络中的主机小于2048个地址,使用8个连续的C类网网络中的主机小于4096个地址,使用16个连续的C类网网络中的主机小于8192个地址,使用32个连续的C类网网络中的主机小于16384个地址,使用64个连续的C类网,Page 27,路由表问题,路由简介,发布多个C类地址块的地址,解决了B类地址的枯竭问题,但是带来了路由表的问题缺省情况下,一个路由表中包含有每个网络的入口项对于所有的C类网络,需要多大规模的路由表呢?Internet路由器中的路由表的规模超过了目前设备的硬件和软件的处理能力解决办法:按照网络拓扑分配IP地址将世界范围内的网络分成8个区(RFC1466)其它地区 196.0.0.0197。255。255。255IANA,Page 28,路由会聚和CIDR,路由简介,路由会聚概念:允许路由器中的路由表的单个条目指向多个不同的网络的技术优点:减少路由表的大小;减少路由转发处理过程无类别域间路由概念:提供某一区块的多个连续IP地址系列,它是提供路由会聚所必须的内容超网CIDR也称为超网(与子网相反)。举例对于网络地址195.10.12.0和网络掩码255.255.252.0,可以提供以下4个C类地址,11111111 11111111 11111100 0000000011000010 00001010 00001100 0000000011000010 00001010 00001101 0000000011000010 00001010 00001110 0000000011000010 00001010 00001111 00000000,255.255.252.0掩码195.10.12.0网段195.10.13.0网段195.10.14.0网段195.10.15.0网段,使用这个超网掩码,外界可将这4个C类地址块中的地址看成一个网段中的地址,该网段总共提供1022个主机地址,Page 29,超网掩码的最长匹配,路由简介,假定某个公司的地址段为195.0.16.0195.0.36.0,掩码为255.255.254.0,则该公司构成多个网段构成假如一个以195.0.20.1为目的地址的数据报到来时,它与欧洲的地址段和上面所说的公司的地址段均匹配,路由器如何处理呢?路由机制规定选择掩码最长匹配,255.255.254.0比254.0.0.0长,所以路由到本例的公司中。,Page 30,总结,路由简介,路由的操作目前是基于整个32比特的掩码,因此对IP地址就没有分类之说路由变化的影响限制在很小的范围内CIDR将路由表的增长变得缓慢限制:不是所有的主机或路由器都支持CIDR,Page 31,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,RIP 路由协议,Page 32,RIP路由协议概述,路由简介,特点:距离向量路由算法,以跳数为路径权值 域内路由协议,运行在一个自治系统内部 RIP v1(RFC1058);RIP v2(RFC1723)路由信息刷新过程 周期性或在网络拓扑发生变化时 只为每个目的维护一条最佳路由 将刷新的内容传播到网络内部所有的路由器RIP路由权值:只使用一个权值(跳数),计算源到目的的距离通过限制路径的最大跳数(15)来防止路由循环RIP稳定性特征:适应网络拓扑的快速变化 水平分割和保持 有防止路由循环的机制RIP定时器:routing-update 定时器:维护周期性的刷新信息,一般设置为30秒route-timeout 定时器:维护路由表中每个条目的定时信息,如果超时,则表明其维护的路径失效,但仍保留在路由表中route-flush 定时器:与route-timeout 定时器的功能类似,但是该定时器超时,则在路由表中删除定为失效的路径。,Page 33,RIP分组格式1,路由简介,IP RIP分组包括有9个字段,A命令:指明该分组是请求还是响应分组请求分组:请求一个路由器将它路由表的全部或部分响应分组:固定的路由刷新信息或回答一个请求,响应分组中应包括路由表的条目,B版本号:规定本RIP分组使用的版本格式C零:未使用D地址类标识AFI:规定使用的地址种类,RIP设计为携带不同协议的路由信息,每个条目都有一个地址类标识,说明使用的地址种类。IP的AFI为2E地址:规定条目的IP地址F权值:到目的地要经过的跳数,在115之间为有效值,16则为目的不可达,Page 34,RIP分组格式2,路由简介,RIP v2 规定了更多的信息,并提供简单的认证机制,命令:与上一格式作用相同版本号:规定本RIP分组使用的版本格式地址格式标识AFI:规定使用的地址种类,RIP设计为携带不同协议的路由信息,每个条目都有一个地址类标识,说明使用的地址种类。IP的AFI为2,如果第一个条目的地址为0 xFFFF,则条目后面的内容为认证信息,目前的认证类型只是简单的密码。路由标签:提供区别内部路由(通过RIP学习得到)和外部路由的方法地址:规定条目的IP地址子网掩码:条目的子网掩码,0则表示未规定下一跳:规定条目的下一跳IP地址权值:到目的地要经过的跳数,在115之间为有效值,16则为目的不可达,Page 35,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,OSPF 路由协议,Page 36,什么是OSPF,路由简介,OSPF 的含义是开放的最短路径优先,基于Dijkstra s的SPF算法内部网关协议IGP,运行在一个自治系统AS内部Internet 分为许多自治系统在一个自治系统内部运行内部网关路由协议IGP,如RIP、EIGRP、OSPF、ISIS自治系统外部运行外部网关协议EGP,如BGP在OSPF中,一个自治系统分成了多个区链路状态协议链路:网络接口链路状态:网络接口的描述IP地址、网络掩码、网络类型、带宽等一个路由器运行一个OSPF算法,维护该路由器所属的区的链路状态数据库(LSDB),路由器使用整个链路状态数据库计算路由表如果路由器属于多个区,则运行多个OSPF算法,维护多个LSDB同一个区内的所有路由器的所有的LSDB是完全同步的,在网络稳态情况下,这些LSDB是完全相同。在邻接的路由器之间交换5种类型的链路状态通知 达到数据库的同步路由器的链路、网络链路、网络汇总链路、ASBR汇总链路、外部链路网络拓扑由LSDB表示,Page 37,OSPF 的主要特征,路由简介,链路状态协议,不是基于距离向量每个路由器都有其自己的LSDB,并根据LSDB计算路由表层次结构路由,一个自治系统由多个区组成一个区的拓扑对外(其它区)是不可见的。支持可变长子网掩码VLSM,在每个路由通知中,均带有网络掩码信息所有的OSPF消息都要经过认证有两种认证机制:简单密码、和加密技术为不同的TOS(业务类型)使用不同的路由支持到同一目的地,有多条相同开销的路径支持负载均衡,Page 38,一个自治系统可以分成多个区一个区是由一组连续相连的路 由器及其相连的主机构成一个区内与自治系统其它部分相 连的路由器称为区边界路由器区内路由器维护本区的拓扑信息,即链路状态数据库,一个区内部所有的路由器的对中本区的LSDB 是相同的。一个区内的LSDB 对区外是不可见的,分区可以减少路由交换信息量每个区边界路由器要维护它所属的不同区的LSDB有两种不同的OSPF路由,源和目的在同一个区内的路由称为区内路由,源和目的在不同的区的路由称为区间路由。一个OSPF的骨干包括区边界路由器,不属于任何区的网络以及它们相连的路由器,每个OSPF骨干构成一个区,骨干区不是由相连的路由器组成的,这时它们之间的连接称为虚电路。连接到自治系统之外的路由器称为AS边界路由器,它同时还要运行一个外部网关路由协议,以实现本自治系统与外界的互联。,路由层次,路由简介,Page 39,路由简介,上图中R4、R5、R6、R10、R11、R12构成OSPF的骨干,若区3的主机H1发送分组给区2的主机H2,它的发送顺序为H1R12 R11 R10 R7 H2,Page 40,SPF算法,路由简介,是OSPF协议运行的基础,路由器启动时,它要初始化路由协议数据。等待低层端口协议的正常运行。路由器的端口运行正常之后,它发送OSPF的 Hello协议 来获得与它相连的路由器的信息,除此之外,Hello协议 还作为该路由器本身的keep-alive 消息,以保证其它路由器知道该路由器本身是活动的。在多接入网络(一个网络由超过两个路由器组成)中,Hello协议选举出一个指定(desinate)路由器 和指定路由器的备份。指定路由器负责产生整个网络的LSA,这种方法减少了网络中路由信息量和拓扑数据库的规模。当两个邻居路由器的链路状态数据库同步时,这两个路由器称为邻接的adjacent。在多接入网络中,由指定路由器来确定哪些路由器是邻接的,每个路由器要给与它邻接的路由器周期性的发送一个LSA,或者当路由器的状态发生变化时,通知给其它路由器。邻接的路由器比较收到的LSA和它的链路状态数据库中的信息,能够快速的检测到出现故障的路由器,同时对网络拓扑作出相应的变化。根据通过LSA产生的拓扑数据库,每个路由器计算以它自身为根节点的一个最短路径树,根据这个最短路径树,产生路由表。,Page 41,OSPF分组格式,路由简介,类型Type:说明这个OSPF包的类型,OSPF包有下列类型Hello:建立和维护与邻居的关系数据库描述:描述拓扑数据库内容,这些消息是在进行邻接初始化时交换链路状态请求:向邻居路由器请求部分拓扑数据库信息,这些信息在路由器发现它的拓扑数据库过时时进行交换。链路状态刷新:相应链路状态请求,这些信息同时还作为常规的LSA的发布。一个链路状态刷新中可以包含有若干个LSA。链路状态确认:确认链路状态刷新分组。分组长度:规定分组的长度,包括OSPF报头路由器ID:发送该分组的路由器的标识符区ID:标识该分组所属的区,所有的OSPF分组都一个区相关认证类型:所有OSPF交换的信息均需要认证,认证类型基于每个区的配置认证:认证信息数据:OSPF交换的数据信息,Page 42,每个路由器,以它自身为根节点,利用Dijkstra算法,计算最短路径树路由表的结构如下为计算路由表,需要解决的问题是:需要一个AS的拓扑图,拓扑图由链路状态数据库表示,每个节点和同它邻接的节点交换连接信息,来构建拓扑图,及时反映拓扑的变化尽量减少控制业务量,减少处理开销确定一条链路的优劣需要快速收敛称为稳定的路由表。一个节点可以是:一个路由器或一个网络,在此网络是指一组不能发布它们连接特性的主机,OSPF路由表,路由简介,Page 43,Link Advertisement类型,路由简介,路由器Link Advertisment类型1每个路由器都有告诉它邻接的节点(路由器或网络)它能到达的节点比如:路由器R1:链路1网络111,链路2网络113网络Link Advertisment类型2网络是一组主机它自身不能发布它的连接信息必须通过一个路由器来发布它的连接信息,于是有了指定路由器DR和备份指定路由器BDR。网络Link Advertisment发布连接到该网络的所有的路由器比如R4为网络113的DR,它负责为网络113发布:链路1R1,链路2R2,链路3R3,链路4R4,Page 44,Link Advertisement类型(续),路由简介,网络汇总Link Advertisment类型3因为前面两个类型的链路通知LA是在一个区内传播,需要有一些手段来通知一个路由器如何到达同一个AS内的不同区的目的不同的区之间通过区边界路由器ABR连接骨干区(ID)用来承载不同区之间的数据通过每个ABR所属区的路由表,每个ABR汇总到达它自身区的可达信息,传递给其它的ABR骨干路由器具有到达整个AS内每个网络的可达性信息ABR将这些汇总的信息传递给其所属区内的路由器AS内的每个路由器获得了到达本AS的其它目的的信息。ASBR 汇总Link Advertisment类型4ASBR:AS边界路由器,AS内的路由器必须知道如何到达ASBR当一个ABR产生网络汇总链路通知时,它同时还产生该区内的每个ASBR(如果存在)的链路通知。,Page 45,Link Advertisement类型(续),路由简介,外部Link Advertisment类型5路由器必须知道如何到达AS之外的目的自治系统边界路由器ASBR通过BGP学习AS之外的路径信息ASBR将这些信息重新分发给AS内的所有路由器AS内的所有路由器基于外部链路通知来计算到AS之外的目的的路由,Page 46,邻居Neighbor和邻接Adjacent,路由简介,邻居根据网络的类型点到点链路的两端广播多接入网络:所有其它的路由器非广播多接入网络NBMA:由网络管理员规定邻居邻接不是所有的邻居都称为邻接节点根据网络的类型:点到点链路:邻居可以变为邻接节点广播多接入网络:指定路由器和备份指定路由器是其它节点的邻接节点只有DR和BDR之间是邻接节点非广播多接入网络:只有DR和BDR之间是邻接节点路由信息(LSA)只在邻接的节点之间交换,Page 47,链路状态数据库LSDB,路由简介,LSDB是通过五种类型的链路通知构造类型1路由器链路通知类型2网络链路通知类型3网络汇总链路通知类型4ASBR汇总链路通知类型5外部链路通知每个通知都有一个序列号,用于确定哪个通知目前是较新的LSDB中的每个通知都有相关的年龄如果年龄达到最大值,需要更新这个通知收到新的通知,将年龄设为0,Page 48,LSA散播过程,路由简介,链路状态通知只在邻接的节点之间进行散播过程是为了保证链路状态信息能到达区内所有的路由器散播的实现是通过逐跳中继实现的路由器收到一个通信消息时,它将启动一个有效的处理,如果消息有效,该路由器要给发送方返回一个ACK如果在定时时间内没有收到ACK,发送方重传该消息。,Page 49,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,BGP 路由协议,路由简介,Page 50,BGP路由协议概述,BGP是自治系统之间的路由协议,专门为TCP/IP系统设计,目前用于 internet的外部网关协议,携带自治系统之间的路径拓扑信息版本1在1989年发布,当前为版本4,RFC1771距离向量路由协议基于大量的地址前缀和最短的AS路径,智能进行路由选择支持CIDR运行在TCP之上(TCP端口号为179),路由简介,Page 51,BGP的路由类型,自治系统之间的 路由发生在不同的自治系统的两个或多个BGP路由器之间系统中对等的BGP路由器使用BGP维护一致的网络拓扑。BGP Peers:对等的BGP路由器,两个路由器为了动态交换BGP路由信息,首先要配置使用BGP路由协议,然后在这两个BGP路由器之间建立连接,这样的两个路由器称为BGP Peers(对等的BGP路由器),BGP Session:两个对等的BGP路由器之间建立的用于交换路由信息的连接一个BGP路由器可以与多个其它BGP路由器建立对等关系自治系统内部的路由发生在一个自治系统内部的两个或多个BGP路由器之间的路由BGP同时还要用来确定哪个路由器作为某个外部自治系统的连接点提供自治系统之间路由过路(Pass-through)自治系统之间的 选路发生在不同的自治系统的一个或多个,路由简介,Page 52,BGP的路由类型(续),过路(Pass-through)自治系统之间的 选路发生在两个或多个对等的BGP路由器之间,这些路由器之间交换信息需要穿过一个不运行BGP的自治系统在过路自治系统环境中,被跨接的自治系统不产生BGP业务流,同时BGP业务流的目的地也不能在这个过路自治系统内。BGP必须能够和任何自治系统内部路由协议(比如OSPF)互操作,使用这个内部路由协议,能够成功地在其自治系统内部传递BGP的业务流。,路由简介,IGP,过路自治系统,AS1,AS3,AS2,源端,目的端,Page 53,BGP的路由,维护路由表,路由器列出所有到达某个网络的可行路径路由表中的信息用来构造一个自治系统连接图,在这个连接图中,能够剪除路由循环使用这个连接图,能够增强自治系统级的策略路由发送路由更新信息路由器本身不刷新路由表,而是保留从对等路由器收到的路由信息,直到收到了一个增加的更新BGP路由器交换路由信息是根据初始的数据交换和增加的更新之后当一个BGP路由器第一次连接到一个网络中,BGP路由器交换它们全部的信息当一个路由表发生了变化之后,路由器发送路由中变化的部分BGP路由器不是周期性的发送路由刷新信息,而是在到一个网络有优化的路径时才发布根据路由权值作出选路决定每个BGP路由器可以从其它BGP路由器学习到多条路径BGP使用一个单独的路由权值来确定到达一个指定网络的最佳路径,该权值能够说明某个连接的优先级程度BGP的权值有网络管理员分配给每个连接,用一个任意的数值表示,包括穿过的自治系统的数量、稳定性、速率、延迟或费用等。,路由简介,Page 54,BGP会话的状态机,Idle状态,在一个BGP路由器试图建立一个BGP会话之前的状态Connection状态,在一个BGP路由器试图建立一个BGP会话时的状态Active状态,若BGP路由器进行了多次TCP连接建立的尝试,但仍不能建立连接,此时,BGP路由器处于此状态。在该状态下,BGP路由器周期性的重复进行连接建立的尝试OpenSent状态,在一个BGP发出了第一个打开消息时的状态Confirm状态,在一个BGP路由器发出打开消息后,收到了对端的应答的状态,对端可能接受,也可能不接受。Establish状态,对方接受了这个BGP路由器发出的请求后,BGP会话进入建立状态。此时,两个BGP对等路由器就可以交换路由信息了。通常情况下,BGP会话是处于Establish状态,如果某个活动的BGP会话出现了错误,发现了错误的一方要发送一个通知消息给它的对等路由器,说明错误的原因,然后关闭TCP连接TCP连接中断后,每个端点都不能再使用从对端学来的路由信息。,路由简介,Page 55,BGP的消息类型,OPEN,打开消息在对等实体之间打开一个BGP通信会话,在传输协议连接建立起来之后,由每一端实体发送的第一个消息在交换其它消息之前,打开消息必须得到确认,打开消息需要通过保持激活Keep-alive消息来确认协商参数:自身的自治系统标识,定时器,自身的能力等Update,刷新消息提供到其它BGP系统的路由刷新,使得对等路由器构造一个相同的网络拓扑使用TCP协议发送,保证其可靠性用于发布或撤销到某个目的网络的路径Notification,通知消息当检测到有错误发生时,用来关闭一个活动的BGP会话提供关闭会话的原因Keepalive,保持激活消息同时对等实体其本身处于活动状态该消息要经常发送,以防止会话超时。,路由简介,Page 56,BGP的分组格式,路由简介,BGP分组头的功能用于识别分组的功能标志Marker,用于同步和安全,包括消息接收方能预知的认证数值长度Length,以字节为单位的消息的总长度,包括BGP头类型Type,规定了发送的BGP消息的类型,打开消息1刷新消息2通知消息3保持激活消息4数据,可选字段,根据不同的消息类型,有不同的内容,Page 57,BGP的分组格式打开消息,路由简介,打开消息是由一个BGP报头和数据段组成版本,提供BGP的版本号,接收方根据此字段来判断它自身运行的BGP版本是否与该消息发送方相同自治系统,提供发送方的自治系统号保持时间,发送消息到收到对方应答之间的时间定时,超时,则认为BGP会话连接中断BGP标识,发送方BGP的标识符(一个IP地址),该标识在启动时确定,对所有的对等BGP路由器,该标识都是相同的。选项参数长度,选项参数字段的长度,如果没有选项参数,则为0选项参数,包含有选项参数的列表,目前只定义了一个选项参数认证信息(type=1),由两个字段,认证码、认证数据组成,Page 58,BGP的分组格式刷新消息,路由简介,BGP路由器根据收到的刷新消息,在路由器中增加或删除相关的条目。要撤销的路径长度,要撤销的路径字段的长度要撤销的路径,消息发送方不再转发该字段中的IP地址前缀的列表包括两个字段长度(1字节,以比特为单位IP地址前缀(可变,8比特的倍数)填充路径属性长度,路径属性字段的长度路径属性,描述了后面字段的发布的路径的属性(Path Attribute)网络层可达性信息,包含有发布的路径的IP地址前缀列表,格式与撤销的路径字段相同,路径属性中规定的属性要应用于该字段中的每个IP地址前缀,因此BGP可以将属性相同的路径放在一个BGP刷新消息中发出。,Page 59,BGP的分组格式通知消息,路由简介,在BGP会话存活期间,若有错误发生,在TCP连接关闭之前,使用通知消息,通知出现的错误情况及类型,发送完该消息后,关闭TCP连接。错误编码,遇到的错误类型消息报头错误(1):如标志字段不正确、消息类型字段不正确、长度不正确等。打开消息错误(2):如不支持的版本号、不可接受的自治系统号等刷新消息错误(3):如属性格式错误、无效的下一跳属性等保持时间超时(4):等待接收消息的时间超过了协商的时间有限状态机错误(5):在当前状态下,遇到了非法事件终止(6);当一方BGP实体要关闭BGP会话,而又没有其它错误发生时,使用该编码错误子编码,在上述的每个错误类型中还有不同的错误情况,该字段提供更加详细的信息。错误数据,根据上面两个字段的不同内容,而不同。这个字段用来诊断通知信息的原因,Page 60,BGP的分组格式保持激活消息,路由简介,对等BGP路由器之间彼此发送保持激活Keep-alive消息,证实连接依然是活动的该消息的发送频率根据打开消息协商的保持时间和刷新消息的发送频率有关在超时之前,通过保持激活消息和刷新消息(在有实际路由信息要发送时)实现一个连接的维护,发送刷新消息后,定时器要回到协商的保持时间的初始化数值。保持激活消息只包含BGP报头,没有数据字段。,Page 61,BGP刷新消息的路径属性字段,路由简介,每个属性由三个字段组成:属性类型:由属性标志(使用4比特,每个比特有单独的含义)和属性类型码组成ORIGINASPATHNEXTHOPMulti-Exit-DiscriminatorMEDLocal-PREFATOMIC-AGGREGATEAGGREGATOR属性长度:根据属性标志中的一个标志位,来定义是属性值字段的长度属性值:属性实际的值,根据属性类型字段进行分析和处理,路径属性字段说明了在其之后的网络层可达信息字段中指出的路径的属性,Page 62,BGP操作和数据库,路由简介,BGP操作模式BGP路由器从其对等路由器学习到一条路由,对其进行本地处理,然后再将该路径通知给其它BGP对等路由器。:BGP数据库Adj-RIB-In:存储从某个特定的对等路由器学习到的路径信息,因为一个BGP路由器能够从多个BGP邻居收到到相同的目的地址的不同路径,路由器必须分析所有的Adj-RIB-In中所有的路径信息,从而选择使用到某个目的地路径。Loc-RIB:选择出到不同目的地址的路径信息,存储在该数据库中,每个系统中只有一个Loc-RIBAdj-RIB-out:存储发送给它的对等路由器的路由信息库。对每个对等路由器,有一个Adj-RIB-In,就有一个Adj-RIB-Out。,Page 63,iBGP和eBGP,路由简介,iBGP将从自治系统外部学习到的路由信息,在本自治系统内部分发,用于自治系统内部eBGP在不同的自治系统之间分发路由协议,用于自治系统之间eBGP和iBGP使用相同的消息类型,相同的路径属性类型和相同的状态机eBGP和iBGP的不同之处是使用不同的发布路由原则从eBGP邻居学习到的路由信息可以发布给iBGP邻居,反之亦然从iBGP学习到的路由信息不能发送给另一个iBGPiBGP邻居不必要求物理上的直接连接,而eBGP则相反。,R4可将从R4学来的路由信息发布给R1和R2,也可将从R1和R2学来的路由信息发送给R4;但是不能将从R1学来的信息发送给R2。,Page 64,因特网路由技术,路由的基本内容 CIDR 无类别域间路由 RIP 路由协议 OSPF 路由协议 BGP 路由协议 总结,总结,路由简介,Page 65,总结,路由简介,路由协议是Internet的基本组成部分路由协议关注自治系统的概念路由算法是路由协议的关键,主要分为两大类:距离向量路由算法链路状态向量算法层次化的路由减少了网络路由信息量,减小了路由表的规模,加快了收敛时间。根据路由协议使用的范围,有分为:域内路由协议域间路由协议,