第03章 路由协议.doc_第1页
第03章 路由协议.doc_第2页
第03章 路由协议.doc_第3页
第03章 路由协议.doc_第4页
第03章 路由协议.doc_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

第3章 路由协议本章着重介绍静态路由协议和RIP、OSPF、IS-IS、IRMP(与EIGRP兼容)、BGP四种动态路由协议,主要介绍它们的基本原理并通过具体实例来分析各路由协议的调试信息。路由是把报文从一个网络转发到另一个网络的过程。路由是由源网络的设备路由器根据特定路由协议的度量标准决定的,路由协议能够用以下度量标准的几种或全部来决定到目的地的最好路径。n 路径长度n 可靠程度n 延迟n 带宽n 负载n 通信代价路径长度可以用花费或跳跃数来衡量,在链路状态路由协议中,花费是指这条路径上每一段链路的花费之和。距离矢量路由协议给路径长度指定一个跳跃数,用来衡量从源端到目的端一个报文所要通过的路由器个数。衡量一个链路连接的可靠性,典型情况下是用连接源端或目的端之间路由器的位出错率来衡量。对于大多数的路由协议,一个链路的可靠程度可以由网络工程师指定,正是由于它可以人为指定,所以可以改变或创建一些优于其它路径的通路。延迟是指一个报文经过所有网络设备、链路和所有路由器的队列所花费时间的总和。此外,在估计延迟时间时,还要考虑网络阻塞和从源端到目的端的距离等因素。由于延迟值考虑了许多变量,在最优路径计算时延迟是一个有影响力的度量标准。利用带宽作为度量标准计算最优路径时可能产生误导,尽管一个1.544Mbps的带宽优于56Kbps,但由于当前1.544Mbps链路的利用率高,或者链路终端接收设备负载重,它可能并非最优路径。负载是依靠所有资源利用情况来给网络资源分配一个值,这个值由CPU利用情况、每秒报文的通过情况和报文的分拆组装情况及其它一些情况合成而定。但是监控设备资源本身就是一个重负载的加工过程。在一些情况下,对于公共网通信链路是按利用率或直接按月收费,例如ISDN链路是以所用时间和在此时间内的数据传输量来记费。在这些例子中,通信花费在决定最优路径上成为一个重要因素。路由信息协议(Routing Information Protocol,RIP)是基于距离矢量算法(Distance-Vector)的内部网关动态路由协议(IGP),用于动态产生IPv4的路由。RIP协议也是路由器生产商之间使用的第一个开放标准。RIP协议有两个版本,RIP的初始引入是基于IETF RFC1058并被开发成支持小型网络,它现在被称作RIP版本1。RIP的最新版本称为RIP版本2(RIPv2),基本的算法和路由机制和RIPv1一样。然而RIPv2中引入了一些现在网络中所要求的特性,如认证、路由汇总、无类别路由和变长子网掩码。一般建议使用RIPv2。开放式最短路径优先(OSPF)协议是一个基于标准的链路状态路由协议,它是由Internet工程任务组(IETF)OSPF工作组定义发布在RFC(Request for comment)1247内。OSPF是以自治系统(autonomous system, AS)为基础。OSPF定义的AS是指在用链路状态协议时,交换路由信息的一组路由器。OSPF用于层次结构的网络。定义层次需要定义出表示OSPF区域和地址分配的边界。IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是基于SPF算法的链路状态内部网关路由协议(IGP)。IS-IS协议的基本设计思想与算法和OSPF基本一致。IS-IS协议是基于链路层的路由协议,与网络层(IPv4,IPv6,OSI)无关,不受网络层所约束,因此有很好的扩展性。IRMP综合了距离向量协议与链路状态协议的优点。此外IRMP利用散播更新算法(Diffusing Update Algorithm,DUAL),从而加快了收敛,并且减少了网络中产生路由环的可能。IRMP比其它路由协议更有优势的一点是:它不仅有能力支持IP,并且支持Novell NetWare IPX和AppleTalk。因此,减化了网络设计和故障处理。3.1 静态路由协议静态路由是由用户定义的路由,它让在源和目的之间传输的包采用管理员指定的路径。3.1.1 基本原理为了清楚路由表中存在的信息种类,当一个报文帧到达路由器的一个接口时,开始对所发生的变化进行检查是很有用的。必须检查帧的目的地址域中数据链路标识符,如果该标识符包括路由器接口的标识符或广播标识符,路由器将剥去帧的首部和尾部并将完整的报文传递给网络层。网络层必须检查报文中的目的地址,如果该目的地址是路由器接口的IP地址或一个全主机广播地址,会检查该报文的协议域并将其完整的数据传送给对应的内部进程。为寻找路由要用下一跳地址作为目的,并解析其链路层地址。下一跳地址也许是路由器直连的另一网络中主机的地址(包括路由器的接口连接该网络的情况)或是路由器非直连的另一网络中主机的地址。该地址也可能是一个直连的广播,在该广播中存在一个独特的网络或子网地址,其主机位全为1。这些地址是可路由的。如果要路由报文,路由器会在路由表中查找以获取正确的路由。简单而言,数据库中的每一个路由项必须包含两个条件:n 目的地址。这是路由器所能到达的网络地址,基于相同的主网地址,路由器会有不止一条到同一地址的路由。n 目的指针。指针会指明目的网络与路由器是直连的或指出直连网络中的下一台路由器的地址,即为下一跳路由器。路由器会匹配尽可能最特殊的地址,在下面的特殊顺序中,地址可能会是以下的一个:n 主机地址(主机路由)n 子网n 一组子网(汇总路由)n 主网络号n 一组主网络号(超网)n 默认地址如果报文的目的地址不和路由表中的任何一项匹配,则会丢弃该报文并发送一个目的地不可达的ICMP信息给源地址。3.1.2 举例说明下例是一个简单的具体环境,下面就任意一台路由器进行分析,来看其静态路由的调试信息。环境说明三台迈普路由器,mp-fix与mp-88、mp-88与mp-50分别背靠背相连,其中全部走静态路由,mp-fix与mp-88之间走PPP协议,mp-88与mp-50之间走HDLC协议。调试信息打开命令debug ip routing该命令是用来看路由的添加情况。mp-50#debug ip routingmp-50#clear ip route all01:07:50: RT : add C 29.1.2.0 255.255.255.0 (global, 0) - 29.1.2.2 (global, 0), serial2/0, tos=0, distance=0, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success01:07:50: RT : add C 29.1.2.1 255.255.255.255 (global, 0) - 29.1.2.2 (global, 0) , serial2/0, tos=0, distance=0, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success01:07:50: RT : add S 8.8.8.8 255.255.255.255 (global, 0) - 29.1.2.1 (global, 0) , serial2/0, tos=0, distance=1, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success01:07:50: RT : add S 29.1.1.0 255.255.255.0 (global, 0) - 29.1.2.1 (global, 0) , serial2/0, tos=0, distance=1, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success01:07:50: RT : add S 129.255.0.0 255.255.0.0 (global, 0) - 29.1.2.1 (global, 0) , serial2/0, tos=0, distance=1, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success调试信息显示所有路由添加成功。mp-50(config)#ip route 129.255.0.0 255.255.0.0 serial2/001:07:59: RT : add S 129.255.0.0 255.255.0.0 (global, 0) - 29.1.2.2 (global, 0) , serial2/0, tos=0, distance=1, cost=0, flags=0x0, 0x0, mplskey=0 to rtable global(0) success当尝试向路由表中添加一条静态路由时,若到达此目的地路由已经存在(可能表现为其它形式,例如本例中路由表中存在一条到达129.255.0.0 255.255.0.0网段的静态路由),那么,此动作将失败(failed)。3.2 RIP协议本章主要讲述RIP的协议原理及实现,以及RIP常用的调试命令和显示的调试信息。本章主要内容:n RIP协议相关术语解析n RIP协议介绍n 调试命令及调试信息3.2.1 RIP协议相关术语解析UDP用户数据报协议(User Datagram Protocol)。一种简单的面向数据报的不可靠传输的IP网络传输层协议。D-V算法距离矢量(Distance-Vector)算法。一种计算机网络的路由计算方法。又称为Bellman-Ford算法。IGP内部网关协议(Interior Gateway Protocol)。Request报文请求报文,用于请求其它路由器的RIP的路由信息。Response报文响应报文,用于向其它相邻路由器的RIP通告自己的路由信息。Split horizon水平分割。RIP协议为防止产生路由环回而采取的一种措施。Poisoned reverse毒性逆转。RIP协议为防止产生路由环回采取的一种措施,比水平分割(Split horizon)更主动。Triggered updates触发更新。RIP协议加速收敛的一种措施。当路由发生变化时,会产生触发更新,将变化了的路由通告出去。与之相对的是常规更新(Regular updates),指RIP协议每隔30秒(默认)都会发出所有路由信息的更新。3.2.2 RIP协议介绍路由信息协议(Routing Information Protocol,RIP)是基于距离矢量算法(Distance-Vector)的内部网关动态路由协议(IGP),用于动态产生IPv4的路由。RIP协议目前已成为路由器、主机之间路由信息传递的标准之一。RIP协议有RIPv1和RIPv2两个版本,两个版本的主要区别是RIPv1不支持无类别路由,而RIPv2支持无类别路由。一般情况下使用RIPv2版本。RIP协议有协议简单、配置简单等优点。但RIP协议需要通告的路由信息和路由表的路由数量成正比。当路由比较多的时候,比较消耗网络资源。由RIP协议规定了路由的路径经过的路由器的跳数最大是15。因此,RIP协议只使用于比较简单的中小型网络。RIP协议可用于大多数校园网及结构较简单的连续性强的地区性网络。对于更复杂的环境,一般不使用RIP协议。3.2.2.1 RIP协议在TCP/IP协议栈中的位置图 3-1如图3-1所示,RIP协议是基于UDP协议的一个路由协议,RIP协议所发送的协议报文都封装在UDP报文中。RIP协议在520端口号上接收来自远程路由器的协议报文,根据接收的协议报文中的路由信息对本地的路由表做相应的更新,同时将度量加1后通知其它相邻路由器。通过这种方式,使得路由域内所有的路由器都学到所有的路由。RIP协议发送协议报文有三种方式:广播方式、组播方式和单播方式。各种方式的使用方法如下表3-1所示。表 3-1 RIP协议发送报文的方式方式地址版本端口用途广播255.255.255.255RIPv1520RIPv1向一个接口上所有相邻路由器发送协议报文组播224.0.0.9RIPv2520RIPv2向一个接口上所有相邻路由器发送协议报文单播单播IP地址RIPv1/2520回应请求(Request)报文的响应(Response)报文发送给配置的邻居(Neighbor)的协议报文3.2.2.2 RIP协议报文类型和组织结构A)RIP协议报文类型RIP协议有两种协议报文:请求(Request)报文和响应(Response)报文。RIP协议报文类型和功能如表3-2所示。表 3-2 RIP协议报文类型报文类型功能描述发送情况请求(Request)报文向相邻路由器的RIP请求路由信息。可以要请求指定的路由信息,也可请求所有的路由信息(只有一条地址族标识为0,度量为16的路由条目)。接口上刚开始运行RIP的时候,向相邻路由器的RIP请求所有路由信息。响应(Response)报文向相邻路由器的RIP通告路由信息。A)回应请求(Request)报文;B)当路由改变的时候,触发更新(Triggered updates)路由信息;C)定期向相邻路由器的RIP通告所有路由信息(Regular updates)。B)RIP协议报文组织结构图 3-2 RIP协议报文的基本组织结构如图3-2所示,RIP协议的报文封装在UDP报文里面。在RIP协议报文的IP头部中, TTL(Time To Live)字段设置为1,防止RIP协议报文被其他路由器转发。RIP头部有两个字段:Command字段标识该报文是请求报文(1)还是响应报文(2);Version字段标识该报文是RIPv1报文(1)还是RIPv2报文(2)。RIP Entry可以有三种类型:RIPv1路由条目、RIPv2路由条目、认证信息条目。RIP Entry的类型和描述如表3-3所示。表3-3 RIP协议RIP Entry类型和描述RIP信息条目版本格式描述RIPv1路由条目RIPv1如图3-3在RIPv1协议中向相邻路由器的RIP通告路由信息。RIPv2路由条目RIPv2如图3-3在RIPv2协议中向相邻路由器的RIP通告路由信息。认证信息条目明文RIPv2如图3-4在RIPv2协议中添加报文的明文认证信息。该信息只能紧跟着出现在RIP报文头部后面。MD5RIPv2如图3-2-4在RIPv2协议中添加报文的MD5认证信息。该信息只能紧跟着出现在RIP报文头部后面。在报文尾部,还需要有相应的认证内容。图3-3 RIP协议路由信息条目格式图3-4 RIPv2协议带认证信息的报文格式3.2.2.3 RIP协议基本工作原理图3-5 RIP协议基本工作流程RIP协议基本工作流程如图3-5所示,分为两部分:一是RIP协议启动流程;二是RIP协议接收报文处理流程。A)启动过程当一个接口上开始运行RIP协议的时候,会用广播(RIPv1)或者组播(RIPv2)方式向该接口上发送请求(Request)报文,向该接口上所有相邻路由器的RIP请求其所有路由信息,以便能够达到快速收敛的目的。当接收到应答请求(Request)报文的响应(Response)报文后,根据报文里面的路由信息更新路由数据库里面的路由,然后将改变的路由通告给其他相邻路由器的RIP(Triggered updates)。同时,启动更新(Updates)定时器,每30秒(默认)向所有相邻路由器的RIP用响应(Response)报文通告自己所有的路由信息。这样做一是为了保证各台路由器的RIP之间路由数据库的同步,二是为了刷新自己原先通告出去的路由,使得原先通告出去的路由在别的路由器上不超时失效。B)路由数据库路由数据库里面记录了RIP协议的所有路由信息。每条路由信息由以下几个要素组成:l 目的地址:该路由到达的目的主机或子网。l 度量(Metric):到达该目的地的度量值。l 下一跳接口:转发到达该目的地报文的接口,也就是学到该路由的接口。l 下一跳IP地址:为到该达目的地,需要经过的相邻路由器的接口IP 地址。一般为学到该路由的响应(Response)报文的源IP地址。l 源IP地址:学到该路由的响应(Response)报文的源IP地址。l 路由标记(Route Tag):用户自己定义的标记,用于标记一类路由。例如,标记一条路由是通过重分发BGP的路由得到的。C)路由数据库中路由条目的来源RIP协议路由数据库中路由条目的来源主要有下面的几个:l 协议覆盖接口的直连路由。l 协议重分发其他协议的路由。l 协议配置命令产生的路由,如产生发布默认路由0.0.0.0的命令(default-information originate)。l 从相邻路由器的RIP学习到的路由。D)路由的下一条获取在RIPv1中,路由的下一跳接口就是学习到该路由的接口,下一跳IP地址就是学习到该路由的响应(Response)报文的源IP地址。在RIPv2中,响应(Response)报文中的路由信息允许携带下一跳IP地址。路由的下一跳接口仍然是学习到该路由的接口。而下一跳IP地址则在学习到该路由的响应(Response)报文的源IP地址和路由信息中携带的下一跳IP地址之间进行选择。如果路由信息中的下一跳IP地址和接收到该路由信息的接口处于同一子网,则路由的下一跳IP地址为路由信息中的下一跳IP地址;否则路由的下一跳IP地址为响应(Response)报文的源IP地址。这样做是为了实现类似于重定向的功能。E)路由更新当从相邻路由器的RIP学习到一条路由的时候,下面情况下使用该路由更新路由数据库中的路由:l 该路由在路由数据库中不存在,并且该路由的度量小于16跳。l 该路由在数据库中存在,并且源IP地址和学习到的路由的源IP地址一致。l 该路由在数据库中存在,但度量比学习到的路由的度量大或者相等。为了达到度量跳(hop)数累加的效果,当将路由数据库中的路由通告出去的时候,度量加1。度量最大值为15。当度量大于15的时候,路由被认为不可达。3.2.2.4 RIP协议的定时器图3-6 RIP协议路由条目状态变迁RIP协议总共由四个定时器:更新定时器(Update Timer)、无效定时器(Invalid Timer)、抑制定时器(Holddown Timer)、清除定时器(Flush Timer)。各个定时器的描述如表所示。表3-4 RIP协议的定时器定时器名称操作对象默认值启动条件功能描述更新定时器(Update Timer)路由数据库30秒当RIP启动时启动该定时器,并不停循环启动定期用响应(Response)报文向相邻路由器的RIP通告自己的所有路由信息。一是为了保证各个路由器的RIP之间路由数据库同步;二是为了刷新自己原先通告出去的路由,使得原先通告出去的路由在别的路由器上不超时失效。无效定时器(Invalid Timer)路由条目180秒学习到一条路由条目时候启动使得一条路由条目如果在一定时间内得不到更新就会失效。状态变迁如图3-6所示。该定时器能够被响应(Response)报文更新。当路由条目失效后关闭该定时器。抑制定时器(Holddown Timer)路由条目180秒路由条目进入无效状态时启动使得一条路由条目在失效后一定时间内不允许被响应(Response)报文更新,防止路由环路产生。状态变迁如图3-6所示。当路由条目走出抑制状态后关闭该定时器。清除定时器(Flush Timer)路由条目240秒路由条目进入无效状态时启动使得一条路由在失效后一定时间后被从路由数据库中删除。状态变迁如图3-6所示。当路由条目删除后关闭该定时器。3.2.2.5 RIP协议路由环路的避免RIP协议是基于距离矢量算法(Distance-Vector)的动态路由协议,不知道整个网络的拓扑情况。当网络发送变化的时候,整个网络的路由需要一定的时间进行收敛,从而导致各个路由器的路由数据库在一定时间内不同步。同时又不知道整个网络的拓扑,就可能产生路由环路。RIP协议使用以下机制减小因网络上的不一致性带来的路由环路的可能性:计数到无穷大、水平分割、毒性逆转、抑制定时器和触发更新。A) 计数到无穷大RIP协议允许最大跳数为15,大于15跳的目的地被认为不可达。这个数字限制了网络大小的同时也防止了路由信息的无限制传递。路由信息从一个路由器传到另一个路由器,每传一次跳数加一。当跳数超过15,路由就将从路由表中删除。B) 水平分割(Split Horizon)图3-7 RIP协议水平分割示例水平分割,就是从一个接口学习到的路由不能再向该接口通告出去。从一个接口学到的路由又从该接口通告回去,可能导致路由环路。RIP协议水平分割规则如下:如果路由器的RIP从接口1学到了路由信息A,那么向接口1发送的响应(Response)报文中不能包含路由信息A。但当响应从接口1收到的不是请求所有路由信息的请求(Request)报文的时候,不进行水平分割。如图3-7所示的RIP协议水平分割的例子,路由器A的S1/0与路由器B的S2/0相连,且都运行RIP协议,路由器A向外通告192.168.1.0/24的路由信息,路由器B通过接口S2/0学习到了该条路由信息,则路由器B通过接口S2/0发出的响应(Response)报文中不能包含192.168.1.0/24的路由信息。C) 毒性逆转(Poisoned Reverse)毒性逆转的目的与水平分割的目的相同,但做法略有差异。毒性逆转的规则是:如果路由器从端口1学到了路由信息A,从端口1发送的响应(Response)报文中包含路由信息A,但跳数设为16(即不可达)。在上面图3-7的例子中,如果采用毒性逆转,则路由器B从S2/0发出的更新中会包含192.168.1.0/24路由信息,但该条信息的metric = 16。毒性逆转与水平分割相比,优点是通过把跳数设为不可达,将路由信息通知源路由器,能立即打破路由环路;而水平分割只能等待错误路由项因超时而被删除。缺点是,毒性逆转增大了响应(Response)报文的大小。D) 抑制定时器(Holddown Timer)抑制定时器,作用是在路由条目不可达后一定时间内不允许被响应(Response)报文更新。它的思想是保证每台路由器都收到路由不可达信息之前,不可达路由不会被收到的响应(Response)报文更新。因为收到的响应(Response)报文中该路由条目的信息有可能就是自己原先通告出去的。E) 触发更新(Triggered updates)触发更新,就是当路由发生改变的时候,马上用响应(Response)报文通告给相邻路由器的RIP。毒性逆转和水平分割将任何两个路由器构成的路由环路打破。而三个或更多个路由器构成的路由环路仍会发生,直到该路由的度量被传递累加到无穷大(16)为止。触发更新可以加速路由的收敛,从而缩短打破路由环路的时间。3.2.2.6 RIPv1和RIPv2的区别RIPv2是RIPv1的扩展,一是顺应了时代的需求,二是克服了RIPv1的一些主要缺点。RIPv2的主体机制和RIPv1基本一样,只是进行了一些扩展和改进。两种协议的主要区别如表3-5所示。表3-5 RIPv1和RIPv2的区别属性RIPv1RIPv2路由掩码不能发布路由掩码,掩码通过路由类别来获取,不支持无类别路由。能够发布路由掩码,支持无类别路由。报文发送以广播(255.255.255.255)形式发送,比较消耗网络资源。以组播(224.0.0.9)形式发送,比较节约网络资源。认证不支持认证。扩展了认证信息字段,支持明文和MD5认证。路由标记(Route Tag)不支持路由标记的通告和学习。支持路由标记的通告和学习。下一条通告不支持通告路由的下一条。支持通告路由的下一条,用于实现类似于路由重定向的功能。3.3 OSPF协议本章主要讲述OSPF的有关术语、OSPF的原理特点以及调试的一些命令和调试信息。本章主要内容:n OSPF协议相关术语解析n OSPF协议介绍n 调试命令及调试信息3.3.1 OSPF协议相关术语解析AS自治系统 (Autonomous System):通过一个共同的路由协议交换信息的一组路由器。Area区域:一个区域是指一个路由器的集合,它们有一样的拓扑数据库, OSPF把一个AS分成多个区域,因为一个区域的拓扑结构对另一个区域是不可见的,这个特征大大降低了一个AS中的路由信息数量,区域被用来包含链路状态的更新并使管理者能建立分层网络。areaID区域ID:自治系统内区域的32-bit标识。IGP内部网关协议(Internal Gateway Protocol):属于一个自治系统的路由器上运行的路由协议,每一个自治系统有一个单独的IGP,不同的自治系统可能运行不同的IGP。OSPF是内部网关协议的一种。RouterID路由器标识:路由器标识是一个32位数字,它被赋给OSPF使得每个路由器能够独一无二地识别AS中的路由器。Point To Point network点到点网络:由一对路由器组成的网络,如一个56KB的串口线连接。Broadcast Networks广播网络:网络支持多个(两个以上)的路由器,这些路由器都有能力与所有网络(broadcast)上的路由器交互信息。邻居路由器是由OSPF的Hello报文动态发现的,如果网络有多播(multicast)能力,OSPF也使用多播,网络上的每一对路由器都假定能和对方直接相连,以太网是一个广播网的例子。Non-broadcast Multi-Access network非广播多路访问网络:网络支持多个(两个以上)路由器,但是没有广播能力,邻居也是靠OSPF的Hello报文来维持的,但是由于没有广播能力,在发现邻居时需要一些配置。OSPF可以在两种非广播网中交互讯息,第一种是非广播多路访问网络NBMA(Non-Broadcast Multi-Access),OSPF在该网络中与在广播网中相似,第二种是点到多点网络(Point-to-MultiPoint)OSPF处理该网络就像处理多个点到点的集合。Interface接口:一个路由器和它可达的网络的连接,每个接口都有与之相联系的状态信息,可以通过底层协议或路由协议本身来得到,每个接口都有一个与之关联的唯一的IP地址和掩码(除非是不标号的点到点连接:unnumbered point-topoint)。Neighbor邻居:两台路由器有接口连向共同的网络,邻居关系通过OSPF Hello报文来维持。Adjacency邻接:OSPF在相邻路由器间建立邻接,使之能交换路由信息,并不是每对邻居路由器都能够邻接。LSA链路状态通告(Link state advertisement):描述本地路由器或网络状态的数据单元。对于一台路由器来说,包含了路由器的接口状态和邻接状态,每一个链路状态通告都会发送到整个区域,路由器用所有收集到的链路状态通告组成链路状态数据库。Stub Area存根区域:只有一个接口与外部相连的area。第5类LSA不会洪泛(flooding)到该区域。Backbone Area骨干区域:由所有区域边界路由器和他们之间的链路组成。ASE自治系统外部路由(AS external route):指由非OSPF协议得到的路由,如BGP(边界网关协议),RIP(Routing Information Protocol),系统的静态配置路由等。DR指定路由器(Designate Router):用来降低邻接的数目,这些邻接形成于一些多路访问网络中,例如以太网、令牌环、帧中继。这些形成的邻接的数量的减少大大降低了拓扑数据库的规模,DR与多路访问网中的其它所有路由器形成邻接,这些路由器把它们的LSA发给DR,而DR的任务是把这些LSA发送到整个网络, DR的思想是路由器都有一个发送信息的汇点,同时,每个路由器与网络中其它路由器交换信息。BDR备用指定路由器(Buckup Designate Router):它应用于一个多路访问网络中,它的任务是在DR失效时接管它。Inter-Area Route区域间路由 :它是产生于一个非本地区域中的路由。Intra-Area Route区域内路由:它是一个区域内的路由。Flooding洪泛:是一种在路由器间分发LSA,使运行OSPF的路由器同步链路状态数据库的技术。HelloHello报文:用于建立和维护邻居间的关系。在广播网络中,Hello包也能动态发现邻居路由器,另外Hello包也用来在网络中选择一个DR。NSSA非完全存根区域(Not-So-Stubby-Areas):允许外部路由通告到该OSPF自治系统中,同时对自治系统的其它部分保留存根区域的特性。在NSSA的ASBR会产生类型7的LSA通告自治区域的外部路由,当NSSA的ABR接收到类型7的LSA且P位设置为1时,将转化类型7的LSA为类型5的LSA到自治区域的其余部分。3.3.2 OSPF协议介绍OSPF协议(Open Shortest Path First Protocol)是一种动态路由协议,它能探测到在AS中的网络变化并且在一段时间收敛后形成新的路由,收敛的时间很短并且路由信息很少。在OSPF协议中,每一个路由器都维持一个描述AS的网络拓扑数据库,每个特定的路由器都有相同的数据库,数据库每条记录都是特定的路由器的本地的状态。路由器通过在AS中的洪泛法来分发它的本地状态。所有的路由器平行的运行相同的算法,每个路由器都是用链路状态数据库产生一棵以自己为根的最短路径树,该最短路径树给出了到达AS中每个目的地的路由。外部路由信息在该树中作为叶子。OSPF允许多个网络组合在一起,这样的组合称为区域(area),一个区域中的拓扑信息对自治系统的其它区域是不可见的。这种信息屏蔽能够减少相当多的路由流量。另外,在一个区域内部路由的确定仅需要区域本身的拓扑信息,可以对区域内路由信息进行有效保护。通常,在区域中的路由只由区域自己的拓扑决定,一个区域通常是一个子网。OSPF允许灵活地配置子网,每条由OSPF分发的路由都有一个目的地和掩码,数据报被路由到最佳匹配的路由,主机路由被看作掩码为0xffffffff的子网。所有OSPF交互都被授权,这意味着只有信任的路由器才能参与AS的路由。可以使用多种授权配置,实际上,每个子网都可以配置单独的授权。外部产生的路由(比如外部网关协议(Exterior Gateway Protocol):BGP)在AS内通告,外部产生的路由与OSPF的链路状态数据分开,每一条外部路由都标记了一个通告路由器使AS边界路由器能够传输信息。OSPF在网络协议栈中的基本层次结构3.3.2.1 OSPF中自治系统AS的划分n RT1、RT2、RT3、RT4组成Area1,RT3是区域边界路由器(ABR);n RT6、RT7、RT8组成Area2,RT6、RT8是区域边界路由器(ABR);n RT8、RT9、RT10组成Area3,RT8是区域边界路由器(ABR);n RT5是自治系统边界路由器(ASBR);n RT3、RT5、RT6、RT8组成骨干区域(Backbone Area 0)。3.3.2.2 OSPF的过程OSPF的基本思路如下:在AS中的每一台运行OSPF的路由器收集各自的链路状态,通过泛洪法在整个系统广播自己的链路状态,使得整个系统内部维护一个同步的链路状态数据库,每台路由器通过该数据库,算出以自己为根,其它网络节点为叶子的一棵最短路径树,从而得出到达系统内部各处的最佳路由。整个运行OSPF的路由器组成一个AS,这个AS可以分为几个区域,对于区域中每个路由器需要得到一张该自治系统的网络拓扑图(Link State DataBase链路状态数据库)。当某台路由器A启动OSPF以后,会与该区域的其它路由器建立联系,通过发送HELLO报文使其它路由器知道自己的存在,并且通过接收HELLO报文知道对方的存在,这样与其它路由器建立邻居关系。如果网络类型是广播网络或者NBMA网络,该路由器A会在自己知道的邻居中选举指定路由器(DR)和备用指定路由器(BDR),并与他们建立邻接关系(adjacency),这样,通过区域中的所有路由器只与指定路由器和备用指定路由器建立邻接来减少数据流量。如果网络类型是点到点网络或者点到多点网络,路由器A会试图与所有的邻居建立邻接关系,这时路由器A会与所有建立了邻接的邻居交互网络拓扑图。路由器A接着就通过DD报文(Database Description)与邻接的邻居路由器B交换网络拓扑图。当路由器A发现路由器B的网络拓扑图中有比自己的更新的路由时,则通过链路状态请求报文(Link State Request)向路由器B请求该路由。同样路由器B也会向路由器A请求更新的路由。双方在接收到对方的请求以后会通过链路状态更新报文(Link State Update)发送详细的路由信息给对方。并在接收到链路状态更新报文以后确认(Link State ACK)。得到该拓扑图以后,路由器A运行SPF算法,产生一条以自己为根的,到其它所有地方最短的最短路径树(Shortest Path Tree),记在路由表中。以后到达目的地的路由就从该路由表中查取。由于该区域中的每台路由器都不停地与指定路由器交换网络拓扑图,因此很快整个区域的路由器都有相同的网络拓扑图。在区域的边界上的路由器区域边界路由器(Area Boundary Router)同时属于多个区域,因此会把路由器A所在区域的拓扑通告给其它区域,也会把其它区域的拓扑通告进来,通过这些边界路由器的不停交换拓扑,路由器A所在区域对整个自治区域中的网络拓扑都了解了。在OSPF中这些边界路由器组成骨干区域(backbone area)。在自治系统的边界上的路由器自治系统边界路由器(AS Boundary Router)知道到自治系统外部路由(AS External route),自治系统边界路由器会把这些路由通告到自治系统内部,这样,路由器A就得到一张整个网络的拓扑图。3.3.2.3 OSPF的链路状态数据库(LSDB)OSPF的链路状态数据库包含了整个区域的信息,通过与邻接的邻居交换信息,保持整个区域内所有的链路状态数据库的同步,通过Hello报文和链路状态更新报文使OSPF能够动态处理路由变化。链路状态数据库由链路状态通告(LSA)组成,LSA可以分为6类:n Router-LSA:由区域内的路由器产生,述该路由器的链路状态,只在区域内洪泛。n Network-LSA: 由区域内的DR产生,描述该区域内的可达的路由器,只在区域内洪泛。n Summary-Net-LSA:由ABR产生,描述其它区域的网络信息。n ASBR-Summary-LSA:由ABR产生,描述其它区域的ASBR主机信息。n AS-External-LSA:由ASBR产生,描述自治区域以外的外部路由信息。n NSSA-LSA:由ASBR产生,描述自治区域以外的外部路由信息(只在NSSA区域里洪泛)。Area的边界路由器把本区域的信息组合成summary_LSA(链路状态摘要),把它洪泛(flooding)到AS内的其它Area的边界路由器,这些边界路由器又根据对收到的summary_LSA进行分析后产生summary_LSA洪泛到各自的Area中。所有的边界路由器和他们之间的链路组成骨干区域(backbone)。骨干区域之间应该彼此可达,可以物理上直接相连,或者通过虚链接(Virtual Link)。在配置虚链接时所通过的区域必须是Transit(传输) 区域,而不能是stub(存根) 区域。AS的ASBR发送AS的外部路由信息到AS内部除stub区域以外的所有节点。而在stub区域中的路由器通过默认路由指向该ASBR(自治系统边界路由器)。NSSA允许外部路由通告到OSPF自治系统中,并且保留对自治系统其余部分的存根特性,NSSA的ASBR会产生NSSA External LSA(类型7的LSA)通告外部路由,这些NSSA External LSA在NSSA区域中洪泛但是中止于ABR。当NSSA的ABR接收到类型7的LSA且P位设置为1时,将转化类型7的LSA为类型5的LSA到自治区域的其它区域。如果P位被置为0,则不会发生转化,因此NSSA External LSA不会通告到NSSA之外。3.3.2.4 OSPF的报文格式a) OSPF的报文封装OSPF的报文由多重封装组成,报文的外层是IP头,在IP头中封装的OSPF报文可以为五种报文格式之一。每种报文格式由统一格式的OSPF报文头开始,OSPF报文的数据区(Packet Data)随报文格式的不同而不同。b) OSPF报文头Version:OSPF的版本号,当前的版本为2。Type:在OSPF头部后的报文类型,现在OSPF有5种报文类型:Hello报文,Type 1 ;数据库描述报文(Database Description),Type 2;链接状态请求报文(Link State Request),Type 3;链接状态更新报文(Link State Update),Type 4;链接状态确认报文(Link State Acknowledgment),Type 5。Area ID:该报文产生的区域,当报文通过虚链接时,Area ID是0.0.0.0。Checksum:整个报文的校验和。Au Type:使用的授权模式。Authentication:由Au Type字段指定的包的必须授权信息。c) Hello报文格式Hello报文用来建立和维持邻接,它包含了邻居建立邻接时必须一致的参数。Network Mask:该报文产生的接口的掩码。Hello Interval:重传Hello的间隔。Option:见OSPF报文中的Option域。Router Priority:路由器优先级,在选举DR和BDR时使用,当Router Priority为0时该路由器没有选举的资格。Router Dead Interval:在Router Dead Interval时间间隔内没有收到邻居的Hello报文,则认为邻居DOWN,删除邻居。Designated Router:产生该报文的接口选出的DR的IP地址(不是Router ID)。Backup DR:产生该报文的接口选出的BDR的IP地址。Neighbor:产生该报文的接口能够在Router Dead Interval间隔内收到Hello的所有邻居列表。d) 数据库描述报文格式(Database Description Packet)Interface MTU:产生该报文的接口在不分片的情况下能够传输的最大IP报文。当该报文在虚链接上传输时Interface MTU设置为0。Option:见OSPF报文中的Option域。I-bit:Initial位,当该报文是DD报文序列的初始化报文时,该位为1。M-bit:More位,当该报文不是DD报文序列的最后一个时,该位为1。MS-bit:Master/Slave位,当Master产生该报文时设置为1,Slave将该位设置为0。DD Sequence Number:DD报文的序列号,由Master设置。LSA Headers:链接状态数据库的LSA头列表。e) 链接状态请求报文格式(link State Request Packet)Link State Type:链接状态类型用来描述该LSA的类型。Link State ID:链接状态ID,它和Link state Type,Advertising Router来标识一个LSA。Advertising Router:产生该LSA的路由器的Router ID。f) 链接状态更新报文格式(Link State Update Packet)Number of LSA:包含在该报文中的LSA数目。LSAs:发送的更新的LSA列表。g) 链接状态确认报文格式(Link State Acknowledgment Packet)LSA Headers:被确认的LSA头部。h) LSA 头部Age:从LSA产生以后的时间。Options:见OSPF报文中的Option域。Link State ID:链接状态ID,它和Link state Type,Advertising Router来标识一个LSA。Advertising Router:产生该LSA的路由器的Router ID。Sequence Number:LSA的序列号,当LSA的新实例产生时增加。Checksum:除开Age的LSA的校验和。Length:LSA的长度,以字节为单位。i) Router LSA报文格式V:Virtual Link Endpoint位,当产生该报文的路由器是虚链接的一端时置位。E:External 位,当产生该报文的路由器是ASBR时置位。B:Borader位,当产生该报文的路由器是ABR时置位。Number of Links:LSA描述的路由器连接数。Link ID:标识路由器的一条连接。Link Data:连接的数据,随Lin

温馨提示

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

评论

0/150

提交评论