OSPF动态路由协议基础理论
OSPF概述
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新
·
OSPF(开放式最短路径优先)
基于链路状态信息的内部网关协议(IGP协议)
基于IP协议,协议号:89
SPF算法:OSPF区域中所有的路由器会从与他相邻的路由器获得LSA,将这些LSA存入LSDB中,计算到每一地方的最优路径,然后将最优路径存入全局路由表中。在计算的过程中,就已经消除了环路
·
OSPF特点
可适应大规模网络 |
---|
路由变化收敛速度快 |
无路由环 |
支持变长子网掩码VLSM |
支持区域划分 |
支持以组播地址发送协议报 |
·
一、OSPF四种路由类型
类型 | 描述 |
---|---|
DR | 当多路访问网络发生变化时,DR负责更新其他所有路由器 |
BDR | BDR会监控DR 的状态,并在当前DR发生故障时接替其角色 |
ABR | ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接 |
ASBR | ASBR路由器是用来把其他路由选择协议学习到的路由通过路由选择重分配的方式注入到OSPF域的路由器 |
·
二、OSPF五大区域
1、骨干区域(Area0)
2、非骨干区域--根据能够学习的路有种类来区分
(1)标准区域
(2)末梢区域
(3)完全末梢
(4)非纯末梢区域
·
三、OSPF数据包类型
数据包类型 | 数据包作用 |
---|---|
Hello包 | 周期性的发送,用来发现,建立、维护邻居关系 |
数据库描述包(DBD) | 用来描述本地链路数据库的摘要信息 |
链路状态请求包(LSR) | 用于向邻居请求所需LSA的详细信息 |
链路状态更新包(LSU) | 用与对方恢复所请求LSA的详细信息 |
链路状态确认包(LSACK) | 确认收到LSU,每个LSA需要被分别确认 |
·
四、OSPF网络类型
网络类型 | hello时间 | Dead时间 | 邻居与邻接关系 |
---|---|---|---|
广播 | 10s | 40s | 自动建立邻居,选举DR/BDR |
P2P | 10s | 40s | 自动建立邻居,无需选举DR/BDR |
P2MP | 30s | 120s | 手动指邻居,无需选举DR/BDR |
NBMA | 30s | 120s | 手动指邻居,选举DR/BDR |
·
五、OSPF邻接关系建立过程
状态 | 过程 |
---|---|
Down(无效状态) | 收到hello激活到int状态 |
Init(初始状态) | 收到hello报文,没有发现自己的R-id |
2-Way(双向通信状态) | 接受到了hello报文,且在active neighbor字段看懂了自己的R-ID |
exstart(信息交互初始状态) | 交互first DBD报文,确定主从关系,R-ID大的为master |
exchange(信息交换状态) | 交互DBD报文,携带LSA的头部信息 |
loading(信息加载状态) | 当收到本地DBD报文中M位为0是,进入该状态 |
full(完全邻接状态) | 路由器之间建立完全邻接状态,LSDB同步完成 |
六、OSPF链路状态
1、链路状态数据库的组成
(1)每个路由器都创建了由每个接口、对应的相邻节点和接口速度组成的数据库
(2)链路状态数据库中的每个条目称为LSA(链路状态通告),常见的有六种LSA类型
2、链路状态通告(LSA)类型
Type1 :路由器LSA 由区域内的路由器发出的(所有路由)
Type2: 网络LSA 由区域内的DR发出的(宣告网络状态信息)
Type3 :网络汇总LSA ABR发出的,其他区域的汇总链路通告(汇总交换)
Type4 :ASBR汇总LSA ABR发出的,用于通告ASBR信息(告知ASBR位置)
Type5: AS外部LSA ABR发出的,用于通告外部路由(外交官)
Type6: NSSA外部LSA NSSA区域内的ASBR发出的,用于本区域连接的外部路由
·
七、OSPF工作过程
·
八、OSPF的度量值
COST=10^8/BW
最短路劲是基于接口指定时代(cost)计算的
接口类型 | 代价(108/BW) |
---|---|
Fast Ethernet | 1 |
Ethernet | 10 |
56K | 1785 |
九、OSPF的配置命令
描述 | 命令 |
---|---|
启动OSPF路由进程 | rout ospf process-id |
指定OSPF协议运行的接口和所在的区域 | network address invers-mask area area-ad |
查看路由表信息(直连/学习) | show ip route |
只查看OSPF学习到的路由 | show ip route ospf |
查看OSPF协议配置信息 | show ip protocol |
查看OSPF是如何配置的以及ABR信息 | show ip ospf |
查看LSDB内的所有LSA数据信息 | show ip ospf database |
查看接口上OSPF配置信息 | show ip ospf interface |
查看OSPF邻居和邻接的状态 | show ip ospf neighbor |
查看OSPF邻居的详细信息(包括DR/BDR) | show ip ospf neighbor detail |