1、第11章 链路状态路由协议和混合型路由协议,主讲:田桂丰,11.1 链路状态路由协议概述,一、链路状态路由协议原理:链路状态路由算法又称最短路径优先算法,主要使用链路状态公告LSA(Link State Advertisement)、网络拓扑数据库、最短路径SPF算法、最短路径SPF树和路由表5种技术手段,11.1 链路状态路由协议概述,1、网络搜索过程:路由器之间互相交换LSA。每个路由器都从交换直接连接的链路状态开始,并转发其他路由器送来的LSA;每个路由器并行地建立一个网络拓扑数据库,数据库有来自于网上所有的LSA组成;每个路由器中的最短路径SPF算法计算网络的可达性,确定从本路由器至网
2、络中其他各点的最短路径,并建立一棵以自己为根的SPF树;路由器根据SPF树生成路由表。,11.1 链路状态路由协议概述,D,C,A,B,路由表,SPF 算法,L-S包,网络搜索过程,A,C,B,10.0.0.0,40.0.0.0,30.0.0.0,20.0.0.0,a0 a1 b0 b1 c0 c1,11.1 链路状态路由协议概述,A,C,B,40.0.0.0,11.1 链路状态路由协议概述,C发现直连网络30.0.0.0和40.0.0.0 构造包含发现信息的L-S报文(LSP)向全网广播 接收全网的其他路由器发来的L-S报文 根据收集的信息建立拓扑数据库 启动SPF算法以C为源点计算SPF树
3、 建立到达所有信宿的路由表(端口和代价),c1,LSP,30.0.0.0,c0,11.1 链路状态路由协议概述,2、链路状态变化和路由更新:无论何时链路状态拓扑结构发生改变,路由器向其他路由器发送链路状态变化的消息,其他路由器则根据链路状态的变化更新网络拓扑数据库;或者发现链路状态变化的路由器向一个指定的路由器发送链路状态变化的消息,所有其他路由器根据这个指定的路由器来更新网络拓扑数据库; LSA数据包每次引起网络拓扑数据库的改变,SPF算法则重新计算最短路径并更新路由表。,(1)发现拓扑变化,A,E,D,C,B,F,Net X,Net X Down,Net X Down,LSP,LSP,发现
4、网络X不可达 构造LSP 向全网广播,发现网络X不可达 构造LSP 向全网广播,(2)修改拓扑数据库,A,E,D,C,B,F,Net X,全网具有相同的L-S逻辑图。,A,E,D,C,B,F,Net X,(3)各自重新计算SPF树,2,2,3,3,1,1,5,2,5,A,E,D,C,B,F,Net X,根据各自计算的SPF树刷新路由表,(4)修改各自的路由表,a0,a1,a2,Net Y,路由表,路由表,路由表,路由表,路由表,2,2,1,11.1 链路状态路由协议概述,3、邻居关系形成:由于链路状态路由协议不必周期性地传递路由更新包,所以它不能像距离矢量路由协议一样用路由更新包来维持邻居关系
5、,它使用专门的Hello包来维持邻居关系。,11.1 链路状态路由协议概述,二、链路状态路由协议的算法:最短路径算法,计算加权无向图(即L-S图)中两个结点之间的最短路径,对每结点赋以标注D(v),NP(v)其中 自变量v:无向图中的结点 函数D(v):到目前为止,从源点到结点v的最短路径(边长之和) 函数NP(v):沿从源点到结点v且与其相邻的前一结点,11.1 链路状态路由协议概述,A,E,D,C,B,2,1,2,1,1,3,源点A到所有结点的最短路径,F,3,5,5,2,D,F,E,A,B,C,1,1,2,1,2,L-S图,SPF树,11.1 链路状态路由协议概述,三、链路状态路由的优点
6、与不足: 1、链路状态路由协议与距离矢量路由路由协议的比较:,11.1 链路状态路由协议概述,D-V 通过与邻居的信息交换获得网络拓扑知识(局部) 路由计算是增加路由器之间的站点数(hops) 定期刷新路由:收敛慢 向相邻站点传送路由表的副本,L-S 全网获得共同的全局性网络拓扑知识:L-S图(全局) 计算到达其他站点的最短路径(SPF准则) 触发刷新:收敛快 向其他站点发送链路状态的动态变化,D-V和L-S算法的比较,11.1 链路状态路由协议概述,2、链路状态路由协议的优点: 快速收敛 路由更新的操作更加有效率,11.1 链路状态路由协议概述,3、OSPF的缺点: SPF算法计算和拓扑数据
7、库需要更多的CPU和内存资源 网络启动时的扩散路由信息(flood)需要占用很多带宽资源,11.2 单区域的OSPF基础,1、OSPF路由概述:(开放式最短路径优先路由协议) 利用Hello包建立邻居关系,构造邻居表 相互传递LSA,构造拓扑表(拓扑数据库) 运行SPF算法,构建SPF树,构建路由表,11.1 链路状态路由协议概述,2、链路状态路由协议的特点: OSPF无路由自环问题。 OSPF支持变长子网掩码VLSM。 OSPF支持区域划分、适应大规模网络。 OSPF支持等值路径负载分担(Cisco定义最大6条)。 OSPF支持验证,防止对路由器、路由协议的攻击行为,11.1 链路状态路由协
8、议概述,OSPF路由变化时收敛速度快,可适应大规模网络。 OSPF并不周期性地广播路由表,因此节省了宝贵的带宽资源。 OSPF被直接封装于IP协议之上(使用协议号89),它靠自身的传输机制保证可靠性。 OSPF数据包的TTL值被设为1,即OSPF数据包只能被传送到一跳范围之内的邻居路由器。 OSPF以组播地址发送协议报文(对所有DR/BDR路由器的组播地址:224.0.0.6;对所有的SPF路由器的组播地址:224.0.0.5)。,11.2 单区域的OSPF基础,二、 OSPF的基本术语 1、链路 2、链路状态:链路状态是指路由器接口的状态,如UP,DOWN,IP及网络类型等。链路状态信息通过
9、链路状态公告(LSA)发布到网上的每台路由器 3、区域:在OSPF中使用区域来为自治系统分段,OSPF是一种层次化的路由选择协议,区域0是一个OSPF网络中必须具有的区域,也称为主干区域,其他所有区域要求通过区域0互连到一起。4、邻居(Neighbors)、邻居表 5、链路开销:链路带宽的一个度量量,11.2 单区域的OSPF基础,6、拓扑表:每台路由器通过LSA信息建立一个关于网络的拓扑数据库。 7、路由表 8、路由器标识:在没有配置环回接口时,路由器上配置的最大IP地址就是这台路由器的标识;如果配置了环回接口,则该接口上的IP地址为路由器的标识。 9.LSA和LSU 10、DR(指定路由器
10、)、BDR(备份的DR),11.2 单区域的OSPF基础,二、OSPF路由协议适用的网络类型: 广播多路访问网络(以太网、令牌环网、FDDI)(要求进行DR和BDR的选举) hello数据包每10秒钟发送一次,邻居的死亡间隔时间为40秒。,11.2 单区域的OSPF基础,点对点网络(专线) OSPF数据包以多播地址发送,不选举DR、BDR,OSPF路由器之间的hello数据包每10秒钟发送一次,邻居的死亡间隔时间为40秒,11.2 单区域的OSPF基础,非广播多路访问网络NBMA (帧中继、X.25) 对于NBMA网络,需要手工指定DR/BDR。之后,其运行模式将同广播网络一样。OSPF路由器
11、之间的hello数据包每30秒钟发送一次,邻居的死亡间隔时间为120秒。,11.2 单区域的OSPF基础,三、DR与BDR的选举 选举方法:路由器的优先级路由器的标识 最大的为DR 次大的为BDR,11.2 单区域的OSPF基础,四、Hello包结构及OSPF路由器形成邻居的过程,11.2 单区域的OSPF基础,1、 OSPF数据包类型,11.2 单区域的OSPF基础,2OSPF数据包头部结构,11.2 单区域的OSPF基础,3、 Hello数据包 Hello数据包是编号为1的OSPF数据包。 运行OSPF协议的路由器每隔一定的时间发送一次Hello数据包,用以发现、保持邻居(Neighbor
12、s)关系并可以选举DR/BDR。,11.2 单区域的OSPF基础,4、 OSPF邻接建立过程 OSPF邻接建立过程主要会经过以下一些阶段或状态: 关闭(Down)状态:没有发送hello数据包,也没有收到hello数据包。 尝试(Attempt)状态:不停地向对方发送hello数据包。 初始(Init)状态:收到了对方的hello数据包。但对方没有收到自己的hello报文。,11.2 单区域的OSPF基础,双向(Two-Way)状态:双方均收到了对方的hello数据包。 启动(ExStart)状态:发送DBD报文,选举主/从设备、设定初始序列号。 交换(Exchange)状态:互相交换LSA报
13、头信息。 装入(Loading)状态:向对方请求自己没有的或过时的LSA信息,并在收到对方的更新LSA后添加到自己的链路状态数据库中。 完成(Full)状态:双方的链路状态数据库完全相同。,11.3 单区域的OSPF配置,一、配置OSPF的命令 1、单区域OSPF配置 单区域OSPF的配置分为两个步骤: 启动OSPF路由器协议进程。 Router(config)#router ospf Process-IDProcess-ID为进程号,可以随意设置,只标识ospf为本路由器内的一个进程。 声明运行OSPF协议的路由器接口IP地址或子网地址。 Router(config-router)#netw
14、ork address wildcard-mask area area-id,11.3 单区域的OSPF配置,address可以是网段、子网者接口的地址,wildcard-mask为通配符掩码,它与子网掩码正好相反,掩码中为0的位指明路由器IP地址中相应的位必须准确匹配接口地址中的同一位,掩码为1的位则指示路由器接口地址的相应位可以为0,也可以为1。 例如:IP网络为 192.168.100.32/27 的表示方式为:network 192.168.100.32 0.0.0.31 area 0 例如:ip地址为: 192.1.0.129 255.255.255.192 的表示方式为: netw
15、ork 192.1.0.128 0.0.0.63 area 0,11.3 单区域的OSPF配置,area-id为区域标识,路由器将限制只能在相同区域内交换子网信息,不同区域间不交换路由信息。另外,区域0为主干OSPF区域。不同区域交换路由信息必须经过区域0。一般地,某一区域要接入OSPF的0路由区域,该区域必须至少有一台路由器为区域边缘路由器,即它既参与本区域路由又参与区域0路由。,11.3 单区域的OSPF配置,2、在路由器上配置环回接口的命令: 格式: Router(config)#interface loopback number Router(config-if)#ip address ip-address submask 环回接口是一个逻辑接口,该接口不必使用no shutdown 命令激活接口。,11.3 单区域的OSPF配置,3.更改优先级的命令(默认优先级为1) Router(config-if)#ip ospf priority numberNumber为优先级编号:0255,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,11.3 单区域的OSPF配置,