第8IP子网间的路由技术OSPF.ppt
第8章 IP子网间的路由技术 OSPF,锐捷认证网络工程师RCNA,2,本章内容,路由概述路由算法 路由协议 静态路由 缺省路由 路由信息协议RIP ospf路由环路及其消除方法,3,路由选择方式,典型的路由选择方式有两种:静态路由和动态路由。静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由表的过程。它能实时地适应网络结构的变化。,4,静态路由,静态路由是指由网络管理员手工配置的路由信息。静态路由除了具有简单、高效、可靠的优点外,它的另一个好处是网络安全保密性高。,5,静态路由配置实例一,router(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1或 router(config)#ip route 172.16.1.0 255.255.255.0 serial 0,172.16.2.1,S0,172.16.1.0,172.16.2.2,网络,B,10.0.0.0,A,B,6,缺省路由(Default route),路由表(routing table)中的一条记录,指明信息包(packet)的目的地不在路由表中时的路由,是一种特殊的静态路由,简单地说,就是在没有找到匹配的路由时使用的路由。在路由表中,缺省路由以目的网络为0.0.0.0、子网掩码为0.0.0.0的形式出现。如果数据包的目的地址不能与任何路由相匹配,那么系统将使用缺省路由转发该数据包。路由器在查询路由表转发数据包时,采用的是深度优先原则,即尽量让包含的主机范围小,也就是子网掩码位数长的路由记录先作转发。默认路由会被最后考虑。,7,缺省路由,缺省路由一般使用在stub网络中(称末端或存根网络),stub网络是只有1条出口路径的网络。使用默认路由来发送那些目标网络没有包含在路由表中的数据包。缺省路由可以看作是静态路由的一种特殊情况。配置缺省路由用如下命令:router(config)#ip route 0.0.0.0 0.0.0.0 转发路由器的IP地址/本地接口,8,缺省路由,172.16.2.1,SO,172.16.1.0,172.16.2.2,网络,B,0.0.0.0,router(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2,Internet 上 大约99.99%的路由器上都存在一条缺省路由!,A,B,9,路由自环,在路由器 RT A上配置:ip route 20.0.0.0 8 10.0.0.2,“路由自环”对网络的危害极大,应尽量避免。,在路由器 RT B上配置:ip route 20.0.0.0 8 10.0.0.1,RT A,10.0.0.1,S0/0,10.0.0.2,S0/0,RT B,Network N,Public Network,10,动态路由协议,在动态路由中,管理员无需手工维护路由表,而是在每台路由器上运行路由表的管理程序(动态路由协议)。管理程序会根据路由器上的接口的配置及所连接的链路状态,动态生成路由表中的路由表项。如果存在目标网络有多条路径,而其中一条出现故障无法工作的时候,到目标网络的路由可以自动重新分配。,11,动态路由协议分类,动态路由协议有很多种,主要的分类标准标准是根据算法的不同来划分。目前常见的两种动态路由协议算法:1)距离矢量算法 2)链路状态算法,12,距离矢量路由协议算法,距离矢量算法:相邻的路由器之间互相交换整个路由表,并进行矢量的叠加,最后达到知道整个路由表。(例:小李小王小张小梦)距离矢量算法特点:实现和管理简单;收敛速度慢;报文量大;占用较多网络开销;会产生路由环路。常见的距离矢量路由协议有:RIP BGP,13,路由信息协议RIP,RIP(RoutingInformationProtocols,路由信息协议)它是由施乐(Xerox)在70年代开发的。是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,简称IGP),适用于小型同类网络,是典型的距离矢量(distance-vector)协议 RIP协议假定如果从网络的一个终端到另一个终端的路由跳数超过15个,那么一定牵涉到了循环,因此当一个路径达到16跳,将被认为是达不到的。RIP协议每隔30秒定期向外发送一次更新报文。如果路由器经过180秒没有收到来自某一路由器的路由更新报文,则将所有来自此路由器的路由信息标志为不可达,若在其后240秒内仍未收到更新报文,就将这些路由从路由表中删除,14,RIP的缺陷,以跳数评估的路由并非最优路径最大跳数16导致网络尺度小收敛速度慢更新发送全部路由表浪费网络资源,15,链路状态路由协议算法,距离矢量算法是一个平面式的,所有的路由表项学习完全依靠邻居,交换的是整个路由表项。链路状态算法是一个层次式的,把路由器分成区域,收集区域内所有路由器的链路状态信息,根据链路状态信息生成网络拓扑结构,每个路由器再根据拓扑结构图计算出路由。如 OSPF,16,链路状态路由协议特点,对路由器硬件要求较高;计算准确,可确保网络中没有路由环路存在;路由收敛速度较快;路由器不需要定期的将路由信息复制到整个网络中,网络流量相对较小。,17,什么是OSPF,OSPF(Open Shortest Path First,开放最短路径优先)是IETF 开发的基于链路状态的自治系统内部路由协议;OSPF仅传播对端设备不具备的路由信息,网络收敛迅速,并有效避免了网络资源浪费;,18,OSPF路由的计算过程,同一个区域内,OSPF协议路由的计算过程可简单描述如下:l每台OSPF路由器根据自己周围的网络拓扑结构生成LSA(Link State Advertisement,链路状态通告),并通过更新报文将LSA发送给网络中的其它OSPF路由器。l每台OSPF路由器都会收集其它路由器通告的LSA,所有的LSA放在一起便组成了LSDB(Link State Database,链路状态数据库)。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。lOSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。l每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。,19,OSPF路由的计算过程,(一)网络的拓扑结构,(四)每台路由器分别以自己为根节点计算最小生成树,由这棵数得到了到网络中各个节点的路由表,(三)由链路状态数据库得到的带权有向图,C,A,B,D,1,2,3,5,路由器间的花费,每台路由器根据自己周围的网络拓扑生成一条LSA(链路状态广播),20,OSPF有五种类型的协议报文:,l Hello报文:周期性发送,用来发现和维持OSPF邻居关系。内容包括一些定时器的数值、DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备份指定路由器)以及自己已知的邻居。l DD(Database Description,数据库描述)报文:描述了本地LSDB中每一条LSA的摘要信息,用于两台路由器进行数据库同步。l LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。l LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。l LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。内容是需要确认的LSA的Header(一个报文可对多个LSA进行确认)。,21,OSPF区域,随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF路由协议时,路由器数量的增多会导致LSDB非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致CPU负担很重。在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“振荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。,22,OSPF协议分区域管理,区域0,区域1,区域10.0.0.1,区域边界 路由器,自治系统边界路由器,骨干路由器,区域内部路由器,区域内部路由器,23,注意,区域的边界是路由器,而不是链路。一个路由器可以属于不同的区域,但是一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化。,24,骨干区域,(1)骨干区域(Backbone Area)OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:l 所有非骨干区域必须与骨干区域保持连通;l 骨干区域自身也必须保持连通。,25,OSPF 划分为两种不同的区域,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。,26,主干路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,27,区域边界路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,28,路由器ID 号,一台路由器如果要运行 OSPF 协议,则必须存在RID(Router ID,路由器ID)。RID 是一个32 比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。RID 可以手工配置,也可以自动生成。OSPF 的router-id 可以通过自动或者手动配置两种方式获得。自动的话会选择所有接口中最大的IP地址。如果 router-id是通过自动选择获得,那么如果有更大地址的新接口出现,OSPF进程又被重启的话router-id就会发生改变。由于router-id需要在整个OSPF domain中保持唯一,所以推荐通过router0-id命令进行手动配置。,29,DR and BDR,为了在网络中减少LSA的复制所以定义了两种路由器角色。Designated Router(DR)Backup Designated Router(BDR),30,DR,在广播网络中,任意两台路由器之间都要交换路由信息。如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF协议定义了指定路由器DR(Designated Router),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去。,31,BDR,如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步。这需要较长的时间,在这段时间内,路由的计算是不正确的。为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router,备份指定路由器)的概念。BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。,32,DR Other,运行OSPF进程的网络中,既不是DR也不是BDR的路由器为DR Other。DR Other仅与DR和BDR之间建立邻接关系,DR Other之间不交换任何路由信息。这样就减少了广播网上各路由器之间邻接关系的数量,同时减少网络流量,节约了带宽资源。,33,建立邻接关系,RTD,RTB,RTC,RTA,RTE,邻接关系数 R=,n(n-1),2,邻接关系数 R=,2(n-2)+1,RTA,RTB,RTC,RTD,RTE,RTA(DR),RTB(BDR),RTC,RTD,RTE,建立邻接关系,采用DR/BDR方式建立邻接关系,Hello,Hello,Hello,Hello,Hello,34,DR和BDR选举,DR和BDR是由同一网段中所有的路由器根据路由器优先级、Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选举资格。进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器。当处于同一网段的两台路由器同时宣布自己是DR时,路由器优先级高者胜出。如果优先级相等,则Router ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。,35,DR和BDR选举,RTD,RTB,RTC,RTA,RTE,Hello:Pri=2,DR,BDR,DRothers,DRothers,不具备选举资格,Hello:Pri=1,Hello:Pri=0,Hello:Pri=5,Hello:Pri=3,Hello包携带路由器优先级,优先级为0的路由器不具备选举资格先选举BDR,再选举DRDR和BDR一旦选定,即使OSPF区域内新增优先级更高的路由器,DR和BDR也不重新选举,只有当DR和BDR都失效后,才参与选举,36,注意,l 只有在广播类型接口才会选举DR,在点到点或点到多点类型的接口上不需要选举DR。lDR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。l 路由器的优先级可以影响DR/BDR的选举过程,但是当DR/BDR已经选举完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经存在的DR/BDR成为新的DR/BDR。l DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口。,37,OSPF基本配置命令,配置Router ID,Routerrouter id ip-address,启动OSPF进程,Routerospf process-id,重启OSPF进程,reset ospf process-id,配置OSPF区域,Router-ospf-100area area-id,在指定的网段启动OSPF,Router-ospf-1-area-0.0.0.0 network network-address wildcard-mask,38,OSPF可选配置命令,配置OSPF接口优先级,Router-Ethernet0/0 ospf dr-priority priority,配置OSPF接口Cost,Router-Ethernet0/0 ospf cost value,39,OSPF组网实例,网络拓扑,40,RouterA配置,system-view RouterArouter id 1.1.1.1 RouterAinterface GigabitEthernet 0/0RouterA-GigabitEthernet0/0ip address 1.1.1.1 255.255.255.0RouterA-GigabitEthernet0/0quitRouterAinterface serial 1/0RouterA-Serial1/0link-protocol pppRouterA-Serial1/0ip address 2.2.2.1 255.255.255.0,41,RouterAospf/启动ospf路由协议/RouterA-ospf-1area 2/创建区域2/RouterA-ospf-1-area-0.0.0.2network 1.1.1.0 0.0.0.255/使能OSPF/RouterA-ospf-1-area-0.0.0.2quitRouterA-ospf-1area 0/创建区域0/RouterA-ospf-1-area-0.0.0.0network 2.2.2.0 0.0.0.255/使能OSPF/RouterA-ospf-1-area-0.0.0.0quit,42,RouterB配置,system-view RouterBrouter id 3.3.3.1 RouterBinterface GigabitEthernet 0/0RouterB-GigabitEthernet0/0ip address 3.3.3.1 255.255.255.0RouterB-GigabitEthernet0/0quitRouterBinterface serial 1/0RouterB-Serial1/0link-protocol pppRouterB-Serial1/0ip address 2.2.2.2 255.255.255.0,43,RouterBospf/启动ospf路由协议/RouterB-ospf-1area 1/创建区域1/RouterB-ospf-1-area-0.0.0.1network 3.3.3.0 0.0.0.255/使能OSPF/RouterB-ospf-1-area-0.0.0.2quitRouterB-ospf-1area 0/创建区域0/RouterB-ospf-1-area-0.0.0.0network 2.2.2.0 0.0.0.255/使能OSPF/RouterB-ospf-1-area-0.0.0.0quit,44,【补充说明】network中需要使用反掩码(wildcard bits)。【测试验证】RouterA和RouterB可以通过OSPF学习到对方路由信息,并可以ping通对方网段。使用display ip routing-table 命令查看路由表信息。,45,通配符掩码(wildcard-mask),在子网掩码中,将掩码的一位设成1表示IP地址对应的位属于网络地址部分。相反,在访问列表中将通配符掩码中的一位设成1表示I P地址中对应的位既可以是1又可以是0。有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。掩码位设成0则表示IP地址中相对应的位必须精确匹配。,46,display ip routing-table Routing Tables:PublicDestination/Mask Proto Pre Cost NextHop Interface1.1.1.0/24 Direct 0 0 1.1.1.1 GE0/01.1.1.1/32 Direct 0 0 127.0.0.1 InLoop02.2.2.0/24 Direct 0 0 2.2.2.1 S1/02.2.2.1/32 Direct 0 0 127.0.0.1 InLoop02.2.2.2/32 Direct 0 0 2.2.2.2 S1/03.3.3.0/24 OSPF 10 1563 2.2.2.2 S1/0127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0,47,display ip routing-table Routing Tables:PublicDestination/Mask Proto Pre Cost NextHop Interface1.1.1.0/24 OSPF 10 1563 2.2.2.1 S1/02.2.2.0/24 Direct 0 0 2.2.2.2 S1/02.2.2.1/32 Direct 0 0 2.2.2.1 S1/02.2.2.2/32 Direct 0 0 127.0.0.1 InLoop03.3.3.0/24 Direct 0 0 3.3.3.1 GE0/03.3.3.1/32 Direct 0 0 127.0.0.1 InLoop0127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0,48,路由优先级(Preference),49,默认情况下华为路由器规定的路由协议优先级为:DIRECT|0 OSPF|10 STATIC|60 IGRP|80 RIP|110 BGP|170,50,Cisco 路由器规定的路由协议优先级为:DIRECT|0 STATIC|1 OSPF|110 IS-IS|115 RIP|120,51,衡量路由协议的指标,(1)收敛时间 路由器发现网络的拓扑结构发生变化后,路由信息同步的过程;整个同步过程所共花费的时间为收敛时间,或者说是某个路由信息变化后反映到所有路由器中所需要的时间。(2)健壮性 在面对各种非正常情况下(如硬件故障,负荷过载,处理错误),它们应当能够正常运行。,52,OSPF区域路由聚合,路由聚合是指ABR将具有相同前缀的路由信息聚合,只发布一条路由到其它区域。AS被划分成不同的区域后,每一个区域通过OSPF边界路由器(ABR)相连,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。ABR在计算出一个区域的区域内路由之后,根据聚合相关设置,将其中多条OSPF路由聚合成一条发送到区域之外。例如,某个区域内有三条区域内路由19.1.1.0/24,19.1.2.0/24,19.1.3.0/24,如果在ABR上配置了路由聚合,将三条路由聚合成一条19.1.0.0/16,则ABR就只生成一条聚合后的LSA,并发布给其它区域的路由器。,53,网络拓扑,54,配置环境参数A,B运行在area 0;B,C运行在area 1,B为ABRRouter C上有两个以太网接口属于 area 1,他们分别是40.1.1.0/24和40.1.2.0/24网段组网需求要求ABR Router C上做路由聚合,将上两个区域路由网段聚合为一个网段40.1.0.0/16。,55,RouterA,system-view RouterArouter id 1.1.1.1 RouterAinterface GigabitEthernet 0/1RouterA-GigabitEthernet0/1ip address 10.1.1.1 255.255.255.0RouterA-GigabitEthernet0/1quitRouterAinterface Serial 1/0RouterA-Serial1/0link-protocol pppRouterA-Serial1/0ip address 20.1.1.1 255.255.255.252RouterA-Serial1/0quit,56,RouterA,RouterAospfRouterA-ospf-1area 0RouterA-ospf-1-area-0.0.0.0RouterA-ospf-1-area-0.0.0.0network 10.1.1.0 0.0.0.255RouterA-ospf-1-area-0.0.0.0network 20.1.1.0 0.0.0.3,57,RouterB,system-view RouterBrouter id 1.1.1.2RouterBinterface Serial 1/0RouterB-Serial1/0link-protocol pppRouterB-Serial1/0ip address 20.1.1.2 255.255.255.252RouterB-Serial1/0quitRouterBinterface GigabitEthernet 0/1RouterB-GigabitEthernet0/1ip address 30.1.1.1 255.255.255.252,58,RouterB,RouterBospfRouterB-ospf-1area 1RouterB-ospf-1-area-0.0.0.1network 30.1.1.0 0.0.0.3RouterB-ospf-1-area-0.0.0.1abr-summary 40.1.0.0 255.255.0.0 advertiseRouterB-ospf-1-area-0.0.0.1quitRouterB-ospf-1area 0RouterB-ospf-1-area-0.0.0.0network 20.1.1.0 0.0.0.3RouterB-ospf-1-area-0.0.0.0quit,59,RouterC,RouterCrouter id 1.1.1.3 RouterCvlan 10 RouterC-vlan10quit RouterCvlan 20 RouterC-vlan20quit RouterCvlan 30 RouterC-vlan30quit RouterCinterface Ethernet 1/0/1 RouterC-Ethernet1/0/1port access vlan 20 RouterC-Ethernet1/0/1quit RouterCinterface Ethernet 1/0/2 RouterC-Ethernet1/0/2port access vlan 10 RouterC-Ethernet1/0/2quit RouterCinterface GigabitEthernet 1/1/3 RouterC-GigabitEthernet1/1/3port access vlan 30,60,RouterC,RouterCinterface Vlan-interface 10 RouterC-Vlan-interface10ip address 40.1.1.1 255.255.255.0 RouterC-Vlan-interface10quit RouterCinterface Vlan-interface 20 RouterC-Vlan-interface20ip address 40.1.2.1 24 RouterC-Vlan-interface20quitRouterCinterface Vlan-interface 30 RouterC-Vlan-interface30ip address 30.1.1.2 255.255.255.252 RouterC-Vlan-interface30quit,61,RouterC,RouterCospf RouterC-ospf-1area 1 RouterC-ospf-1-area-0.0.0.1network 30.1.1.0 0.0.0.3 RouterC-ospf-1-area-0.0.0.1network 40.1.1.0 0.0.0.255 RouterC-ospf-1-area-0.0.0.1network 40.1.2.0 0.0.0.255 RouterC-ospf-1-area-0.0.0.1quit,62,说明,【补充说明】network中需要使用反掩码(wildcard bits)。路由聚合只能配置在ABR上。路由聚合对组网也提出了要求:同一非骨干域的网段请尽量连续可聚合。否则以后网络扩容,维护难度加大很多。路由聚合是指:具有相同前缀的路由信息,ABR 可以将它们聚合在一起,只发布一条路由到其它区域。AS 被划分成不同的区域后,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。,63,验证,【测试验证】各路由器可以通过OSPF学习到全网的路由信息,并可以ping通对方网段。使用display ip routing-table 命令查看路由表信息,64,课程回顾,路由算法 路由协议 静态路由 缺省路由 RIP OSPF,Q&A,