OSPF协议特性
- 使用了区域的概念
- 完全无类路由选择协议
- 支持不连续子网、VLSM
- 支持无大小限制的、任意的度量值
- 支持多条路径的负载均衡
- 使用组播宣告路由信息
- 支持更安全的路由选择认证
- 实验可以跟踪外部路由的路由标记
链路状态数据结构
- 邻居表
也称为毗邻数据库,包含了已知的邻居路由器 - 拓扑表
一班成为链路状态数据库(LSDB),包含了在一个区域或网络中的所有路由器和他们所连接的链路,在同一个区域内的所有路由器都有相同的LSDB - 路由表
也成为前转表,包含到达目的网络的最优路径
链路状态路由选择协议
链路状态路由器比距离矢量路由器包含跟多的关于本网络的信息,每一台路由器都有本网络的完整路由表,因此,链路状态路由器能够做出更好的路由选择。
链路状态数据结构:网络层次
链路状态路由选择算法(如:OSDF)需要层次化的网络结构,这层结构包括以下两种:传输区域(骨干区域或区域0);一般区域(非骨干区域),
OSDF区域特点
- 使路由表中条目最少化
- 在区域内缩小查找拓扑变化的范围
- LSA在区域边界处停止泛洪
- 需要层次化的网路设计
- 非骨干区域和区域0必须直连
链接骨干区域和非骨干区域的边界是路由器,叫做区域边界路由器ABR(属于两个区域)
在区域0中的路由器叫做骨干路由器(BR)
链接其他自制系统的路由器叫自制系统边界路由器(ASBR)
OSPF毗邻关系
路由器通过交换HELLO数据包来发现数据
路由器在检查完hello数据包中的具体参数或选项后宣告毗邻关系的建立
形成邻居的条件:HELLO包周期保持一致、认证保持一致、区域ID保持一致、stub区域标志保持一致。
建立OSPF的毗邻关系
点到点广域网WAN链路:邻居双方为全毗邻关系
局域网LAN链路:路由器只与DR或BDR建立全毗邻关系,其他路由器之间维持在two-way的状态下
路由更新和拓普信息仅仅在邻接路由器之间作交换
当路由器毗邻关系建立起来后,LSDBs通过交换LSAs来进行数据库的同步
LSAs可靠地泛洪在区域或网络里面
OSPF的封装
通过IP封装,属于网络层协议,部分报文类型需要可靠传输,可靠传输实现通过ack报文
OSPF路由ID
在OSPF中,用Router ID来唯一标识路由器,所以路由ID必须保持唯一
路由ID选择:
- 手工配置ID(优先级最高)
- 如果没有手工配置路由ID选择loopback接口的最大IP地址,这里指的是主IP
- 如果没有loopback接口,就选择IP地址最大的物理接口地址(优先级最低)
DR:指定路由器;BDR:备份指定路由器
DR和BDR的选举
- 优先级高者为DR,次之为BDR
- 若优先级相同,则判断路由ID,路由ID大者为DR,次之为BDR
- 优先级为0的不参与DR和BDR的选举
- 如果已经选举出DR和BDR,这是即使有优先级更高的加入网络,也不会重新选举DR和BDR
- 如果DR出现故障,则BDR自动成为DR,然后重新选举新的BDR
组播地址
224.0.0.5:当前网络中OSPF协议的所有路由都要接收,所有主机的hello包、DR发送出来的更新包。
224.0.0.6:当前网络中DR和BDR接收
路由器原因Dijkstra最短路径优先算法去寻找到达目标网络的最短路径:
区域内的路由器有相同的链路状态数据库,在区域内的路由器都有自己为根建立最短路径树,到目标网络最优路径的计算方法是计算到该网络的最低开销cost。
最优的路由被放进前转表中(即路由表中)
OSPF报文类型
- hello包:用来建立和维持邻居关系的,默认周期在以太网中10s,在NBMA的帧中继网络中30s,超时时间是更新包的4倍,不可靠报文。
- 数据库描述DD:链路数据库的摘要信息,可靠报文,不是通过ack实现可靠传输,而是通过邻居之间交换DD报文的隐式确认实现。邻居路由器之间会去选举一个主从关系,由主方发送DD报文,从方回应一个DD报文。
- 链路状态请求报文LSR:当前路由器从邻居收到DD报文后,检查里面如果有链路状态比自己的新,就会向邻居发送lsr报文,该报文是可靠传输,通过ack实现可靠。
- 链路状态跟新报文LSU:当自己的链路状态发生变化是会主动发送给邻居,当邻居发送LSR查询报文时也会发送LSU,将自己的链路状态信息LSA发送给邻居,该报文是可靠传输,通过ack实现可靠传输。
- 链路状态ack:当收到链路状态更新或者查询报文时发送,实现前两种报文的可靠传输,本报文不可靠。
OSPF常用命令
- 查看邻居列表:show ip ospf neighbor
路由ID:Neighbor ID、优先级:Pri State、超时时间:Dead Time、邻居IP地址:Address、当前路由器接口:Interface - 查看数据库摘要:show ip ospf detabase
- 查看当前ospf的一些参数:show ip protacols
- 查看运行ospf的接口:show ip ospf +接口
- 查看相对应的链路状态数据库详细信息:show ip ospf database lsa类型
- 重启ospf进程:clear ip ospf process
- 查看ospf协议:show ip ospf
- 改变cost值:ip ospf cost interface-cost,默认cost取值范围在1-65535之间。auto-cost reference-bandwidth ref-bw 可以超过100mbps,合理取值范围在1-4294967 mbps。
ospf管理距离:110
“O”:表示ospf生成的同一个区域内的路由
“O IA”:表其他区域生成的路由,LSA3生成的路由
“O E1”:表其他自治区域传递过来的路由
“O E2”:表其他自治区域传递过来的路由
配置OSPF
- 输入配置命令:router ospf+进程号,用network去描述哪个接口在哪个区域去运行ospf
- ospf首先要选择一个router ID,在ospf进程汇总使用router-id命令去配置一个router id,否则,如果使用了回环接口,则回环接口中的最高IP地址为router id,缺省情况下,最高活跃接口的ip地址为router id。
- 使用show ip ospf命令去验证router id
- 使用各种查看命令去验证ospf操作。
OSPF链路类型
- Router LSAs
点到点链路状态,一个区域里的每一台路由器的router LSA,包括直连链路的列表,每一台链路是以该链路的IP地址前缀和该链路的链路类型作为确定的。
以始发路由器的router id作为标识
只在本区域泛洪,不跨越ABR - Network LSAs
在区域每个广播型网络或者NBMA网络中的network LSA,包括网络中的路由器,包含链路子网掩码。
广播网络中的DR通告的
仅仅在本区域泛洪,不跨越ABR - Summary LSAs
被用作泛洪网络信息到其他区域,描述网络前缀和子网掩码。
由始发区域的ABR发送,在区域0中传递,缺省下,不汇总路由,类型三通告每一个子网 - Summary LSAs
被用来在其他区域中通告ASBR,由始发的ASBR发送,类型4包含ASBR的router ID - Autonomous system external LSAs
被用来通告从其他AS学习来的网络,由ASBR通告,在整个自制系统里通告,在整个自制系统里通告者的router ID 不做改变,需要用类型4去寻找ASBR。缺省下,路由不被汇总。
对于类型5的路由有两种类型:
type1:标志E1,metric的值为当前路由器到ASBRcost+重发布的cost
type2:标志E2,不论经过图ospf路由转发,metric的值始终保持不变,默认类型是E2。 - Multicast OSPF LSA
- Defined for not-so-stubby areas
OSPF协议metric值的计算
108/带宽(单位bps,计算没有小数,)
虚拟链路
被用为链接不连续的区域到area 0
一个逻辑连接在router A和router B之间,作用是做备份或者暂时的链接
路由汇总
优点:最小化路由表条目,隐藏拓扑结构的变化,减少类型三和类型5的泛洪和节省cpu资源。
缺省路由能够防止到达目标网络的详细路由出现在路由表里,其优点为使路由表的lsdb最小化。
ospf使用default-information originate 命令去注入缺省路由。
配置路由汇总:
- 在ABR上配置的区域间路由汇总:area+area id+range 网络地址 mask 掩码
- 在ASBR上配置的外部路由的路由汇总:summary-addess 网络地址 mask 掩码
末梢区域和完全末梢区域法则
一个区域成为末梢区域或完全末梢区域的条件:
- 只有一个ABR或者有超过一个的ABR,但能够接受到其他区域或外部自治系统的次优先路径。
- 在该区域中的所有路由器都要配末梢路由器stub router。
- 在该区域中没有ASBR。
- 该区域不是区域0。
- 没有虚拟链路穿越该区域。