1、第6讲 OSPFp 本讲要点内容要求OSPF协议概述OSPF数据包类型OSPF基本配置重点OSPF数据包类型OSPF基本配置难点OSPF数据包类型2024-6-292OSPF协议概述内部网关路由协议OSPF内部网关路由协议用于在单一自治系统(Autonomous System-AS)内决策路由自制系统(AS)执行统一路由策略的一组网络设备的组合AS 1 AS 2 例如:例如:RIP OSPF等等例如:例如:BGP外部网关路由协议(外部网关路由协议(EGP)用来连接不同的用来连接不同的AS内部网关路由协议(内部网关路由协议(IGP)OSPF协议概述 OSPF 背景OSPF 开发历程OSPF协议概
2、述链路状态路由协议OSPF是链路状态路由协议,链路状态路由协议中的路由器了解OSPF网络内的链路状态信息RARBRCRD1050302060804070最初,最初,RA只知道直连的只知道直连的3个网段个网段10、20、30,RB、RC、RD也一样也一样RA103020 链路状态路由协议中,直连的路由器之间建立邻接关系,互相“交流”链路信息,来“画”出完整的网络结构OSPF协议概述链路状态路由协议RA10302050RB40RD8070RC60为了标识链路信息是由为了标识链路信息是由谁发出的,用谁发出的,用Router ID标识路由器标识路由器路由器学习到的链路路由器学习到的链路信息,保存在信息
3、,保存在链路状链路状态数据库态数据库中中相邻路由器之间建立相邻路由器之间建立邻接关系邻接关系,保存在,保存在邻邻居列表居列表中中数据库类型邻居列表列出每台路由器全部已经建立邻接关系的邻居路由器链路状态数据库(LSDB)列出网络中其他路由器的信息,由此显示了全网的网络拓扑路由表列出通过SPF算法计算出的到达每个相连网络的最佳路径ABCDEF以以A为例,为例,A的的链路链路状态数据库状态数据库中保存中保存着着OSPF网络的所网络的所有链路信息有链路信息A以自己为中心,以自己为中心,计算到达每个路由计算到达每个路由器最近的链路器最近的链路1111111.51.5生成一个最短路径生成一个最短路径树树根
4、据最短路径树,根据最短路径树,生成生成路由表路由表链路状态数据库链路状态数据库最短路径树最短路径树Djkstra算法算法建立邻接关系建立邻接关系路由表路由表学习链路状态学习链路状态信息信息OSPF 消息封装数据字段可能包含五种 OSPF 数据包类型每个 OSPF 数据包都具有 OSPF 数据包报头 IP 数据包报头中,协议字段被设为 89 以代表 OSPF;目的地址=224.0.0.5 or 224.0.0.6以太网帧头:目的MAC 地址=01-00-5E-00-00-05 or 01-00-5E-00-00-06OSPF 数据包类型OSPF LSP 的五种类型OSPF 数据包类型-Hello
5、 协议发现 OSPF 邻居并建立相邻关系。通告两台路由器建立相邻关系所必需统一的参数。在以太网和帧中继网络等多路访问网络中选举指定路由器(DR)和备用指定路由器(BDR)。OSPF 路由器正在通过所有启用了 OSPF 的接口发送 Hello 数据包,以确定那些链路上是否存在邻居。OSPF Hello 中的信息包括发送方路由器的 OSPF 路由器 ID一个接口收到 OSPF Hello 数据包随后,OSPF 即与该邻居建立相邻关系OSPF 数据包类型-Hello 协议OSPF 数据包类型-Hello 协议 两台路由器在建立 OSPF 相邻关系之前,必须统一三个值:Hello 间隔、Dead 间隔
6、和网络类型 OSPF Hello 数据包都会通过组播发送给ALLSPFRouters 的专用地址 224.0.0.5 Cisco 所用的默认断路间隔为 Hello 间隔的四倍OSPF 数据包类型-OSPF的网络类型网络类型举例广播以太网非广播多路访问NBMA帧中继、X.25点到点PPP,HDLC点到多点多个点到点链路的集合 路由器接口类型不同,在建立邻接关系的时候,OSPF路由器执行的操作也略有不同OSPF 数据包类型-多路访问网络ABDE广播网络中广播网络中 建立邻接关系建立邻接关系 构成构成n(n一一1)2个个 邻接关系邻接关系 如果直连的路由如果直连的路由器互相都建立邻器互相都建立邻接关
7、系接关系这种方法非常烦这种方法非常烦琐!不可取!琐!不可取!BEDOSPF 数据包类型-多路访问网络ACBDE 指定路由器(DR)一个网段上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系ABCEDOSPF 数据包类型-多路访问网络DRBDR 通过Hello报文选择DR和BDR来代表OSPF网段 其他的路由器(DRothers)只和DR及BDR路由器之间形成邻接关系OSPF 数据包类型-多路访问网络P=1P=0P=1P=3P=2HelloDRBDR 通过组播发送Hello报文 具有最高OSPF优先级的路由器会被选为DR 如果OSPF优先级相同,则具有最高Route
8、r ID的路由器会被选为DROSPF 数据包类型-多路访问网络怎样确保所需的路由器在 DR 和 BDR 选举中获胜呢首先启动 DR,再启动 BDR,然后启动其它所有路由器;关闭所有路由器上的接口,然后在 DR 上执行 no shutdown 命令,再在 BDR 上执行该命令,随后在其它所有路由器上执行该命令。更改 OSPF 优先级来控制 DR/BDR 选举OSPF 数据包类型-路由器的类型骨干路由器内部路由器区域边界路由器ABR自治系统边界路由器ASBROSPF 数据包类型-路由器的类型区域边界路区域边界路由器由器/ABR自制系统边界路自制系统边界路由器由器/ASBR区域边界路区域边界路由器由
9、器/ABRArea 1Area 0Area 2内部路由器内部路由器内部路由器内部路由器内部路由器内部路由器只保存本区域内只保存本区域内的链路状态信息的链路状态信息用来连接区域用来连接区域0和其他区域和其他区域用来连接用来连接OSPF的的AS与外部其他的路由与外部其他的路由OSPF 数据包类型-链路状态更新LSU 目的用于 OSPF 路由更新LSA 目的包含邻居和路径开销信息一个 LSU 包含一个或多个 LSA建立邻接关系过程总结发送发送Hello消息消息接口类型为点到点接口类型为点到点接口类型为点到多点接口类型为点到多点接口类型为广播接口类型为广播接口类型为接口类型为NBMA选择选择DR和和B
10、DR发送发送DBD请求请求/发送发送LSU生成完整的生成完整的LSDB形成邻接关系形成邻接关系OSPF 算法每台 OSPF 路由器都会维持一个链路状态数据库,其中包含来自其它所有路由器的 LSA。一旦路由器收到所有 LSA 并建立其本地链路状态数据库,OSPF 就会使用 Dijkstra 的最短路径优先(SPF)算法创建一个 SPF 树。将根据 SPF 树,使用通向每个网络的最佳路径填充 IP 路由表。何时需要OSPF路由协议网络的规模 网络中的路由器在10台以上;中等或大规模的网络网络的拓扑结构 网络的拓扑结构为网状,并且任意两台路由器之间都有互通的需求 其它特殊的需求 要求路由变化时能够快
11、速收敛,要求路由协议自身的网络开销尽量降低 对路由器自身的要求 运行OSPF协议时,对路由器的CPU的处理能力及内存的大小都有一定的要求,性能很低的路由器不推荐使用OSPF协议 OSPF路由协议的特点可适应大规模网络 路由变化收敛速度快 无路由环支持变长子网掩码VLSM 支持区域划分 支持以组播地址发送协议报 OSPF的基本配置-实验拓扑本拓扑中有三个带宽各不相同的串行链路,且每台路由器都具有多条路径通向远程网络OSPF的基本配置-实验拓扑R1,R2和R3的接口配置OSPF的基本配置-router ospf 命令启用OSPF使用以下命令:R1(config)#router ospfrouter
12、 ospf process-id Process id:是一个介于 1 和 65535 之间的数字,由网络管理员选定。process-id仅在本地有效,这意味着路由器之间建立相邻关系时无需匹配该值。OSPF的基本配置-network 命令OSPF 中的 network 命令与其它 IGP 路由协议中的 network 命令具有相同的功能:路由器上任何符合 network 命令中的网络地址的接口都将启用,可发送和接收 OSPF 数据包。此网络(或子网)将被包括在 OSPF 路由更新中。Router(config-router)#networknetwork network-address wil
13、dcard-maskareaarea area-id 通配符掩码:网络地址和通配符掩码一起,用于指定此 network 命令启用的接口或接口范围.area:OSPF 区域是共享链路状态信息的一组路由器。OSPF 网络也可配置为多区域.area-id:如果所有路由器都处于同一个 OSPF 区域,则必须在所有路由器上使用相同的 area-id 来配置 network 命令比较好的做法是在单区域 OSPF 中使用area-id 0OSPF的基本配置-OSPF 路由器 ID确定路由器ID,通过以下顺序确定 用于验证路由器 ID 的一个命令为 show ip protocols。某些 IOS 版本并不象
14、图中所示那样显示路由器 ID。在那些情况下,请使用 show ip ospf 或 show ip ospf interface 命令检验路由器 ID修改路由器ID后必须通过重新加载路由器或使用下列命令来启用:Router#clear ipclear ip ospf processospf process使用通过 OSPF router-id 命令配置的 IP 地址。:Router(config)#router ospf process-id Router(config-router)#router-id ip-address优点:环回端口不会失效 OSPF 更稳定,采用命令Router(con
15、fig)#interface loopback numberRouter(config-if)#ip address ip-address subnet-mask如果未配置 router-id,则路由器会选择其所有环回接口的最高 IP 地址:R1:192.168.10.5 R2:192.168.10.9 R3:192.168.10.10OSPF的基本配置-验证 OSPF验证 OSPF 相邻关系并排除相应的故障的命令:show ip ospf neighborshow ip ospf neighborOther commands:Other commands:show ip protocols
16、show ip protocols show ip ospf show ip ospf show ip ospf interface show ip ospf interface命令可用于验证该路由器是否已与其相邻路由器建立相邻关系 如果未显示相邻路由器的路由器 ID,或未显示 FULL 状态,则表明两台路由器未建立 OSPF 相邻关系两台路由器未建立相邻关系,则不会交换链路状态信息OSPF的基本配置-检查路由表show ip routeshow ip route命令可用于检验路由器是否正在通过 OSPF 发送和接收路由:“O”表示路由来源为 OSPFOSPF 不会自动在主网络边界总结OSPF
17、的基本配置-OSPF 度量Cisco IOS 使用从路由器到目的网络沿途的传出接口的累积带宽作为开销值开销越低,该接口越可能被用于转发数据流量开销计算公式:108/接口带宽参考带宽默认为 100Mbps可使用 OSPF 命令 auto-cost reference-bandwidth 修改OSPF的基本配置-OSPF 度量COST 累计开销:从路由器到目的网络的累计开销值OSPF的基本配置-修改链路开销bandwidth 命令与 ip ospf cost 命令比较Ip ospf costIp ospf cost 命令直接将链路开销设置为特定值并免除了计算过程BandwidthBandwidth
18、 命令使用开销计算的结果确定链路开销OSPF的基本配置-接口优先级使用 ip ospf priority 命令来控制选举例::Router(config-if)#ip ospf priorityip ospf priority 0-2550-255优先级值为 0 to 2550该路由器不具备成为 DR 或 BDR 的资格1是路由器默认优先级值总结OSPF(开放最短路径优先)协议是一种无类链路状态路由协议。用于 IPv4 的 OSPF 的现行版本为 OSPFv2,该版本由 John Moy 在 RFC 1247 中引入,并在 RFC 2328 中更新。1999 年,用于 IPv6 的 OSPFv
19、3 在 RFC 2740 中发布OSPF 特点OSPF 不使用传输层协议,原因在于 OSPF 数据包直接通过 IP 发送在多路访问网络采用 DRDRs 和 BDRBDRs减少LSA开销 5 种数据包类型度量为路径开销,cisco IOS 使用从路由器到目的网络沿途的传出接口的累积带宽作为开销值总结配置R1(config)#router ospf router ospf process-idprocess-idRouter(config-router)#networknetworknetwork-address wildcard-mask areaarea area-idRouter(config-router)#ip ospf priority ip ospf priority 总结验证show ip protocolshow ip routeshow ip ospf interfaceshow ip ospf neighbor