每天5分钟 | 网工路由基础(4)OSPF协议
- 这是更新的第141个网工基础知识点 -
在同一个OSPF自制系统内每一台运行OSPF协议的路由器总是将本地网络的连接状态用LSA(链路状态通告)描述,并广播到整个自制系统中去。
这样,每台路由器都收到了自制系统中所有路由器生成的LSA,这些LSA的集合组成了LSDB(链路状态数据库),这样所有的OSPF路由器都维护一个相同的描述自治系统内部结构的数据库。
公有协议,管理距离是110;IP协议号为89
OSPF路由协议采用cost作为度量标准;
每隔30分钟定时发送更新,触发更新
支持等价负载均衡;
支持区域划分,构成层次化的网络,提供路由分级管理;
支持简单口令和MD5认证;
以组播方式(224.0.0.5或224.0.0.6)传送协议数据包;
OSPF维护邻居表、拓扑表和路由表。
Router-ID用来标识同一个OSPF域中的路由器,全网唯一。
LSBDs中,使用Router-ID区分不同的路由器。
Router-ID可以通过手动指定,或者自动选举。
自动选举:若有Loopback接口,则选最大的Loopback接口,若无,则选举活跃的物理接口中IP地址为最大的。
手动指定:(config-router)#router-id 1.1.1.1。
想让手动指定的Router-ID生效.必须清除进程,clear ip ospf process。
OSPF路由器也是通过Hello数据报文来发现邻居,然后进入2-Way状态,在这个状态下选举DR和BDR。
选举是利用Hello报文内的ID和Priority(优先级)来确定。优先级大小为0-255(默认值为1,0代表不参加选举)。
优先级值最高的路由器成为DR。
修改接口优先级 ip ospf priority xx
如果优先级值大小一样,则Router-ID最高的路由器选举为DR,Router-ID次之为BDR。
并且DR具有非抢占性,要么重启路由器,要么clear ip ospf process。
DR负责向其他路由器发送更新信息,BDR则监控DR状态。
DR出故障时,BDR升级为DR,并选举新的BDR。
BR/BDR是基于路由器接口,而不是整台设备,有可能一台设备的一个接口为DR,另一个接口为BRD。
DRother 用224.0.0.6通知DR/BDR路由器,监听224.0.0.5
DR/BDR利用组播地址224.0.0.5通知DRother路由器,监听224.0.0.6
R1:
router ospf 1
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 192.168.12.1 0.0.0.0 area 0
!
R2:
router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 192.168.12.2 0.0.0.0 area 0
network 192.168.23.2 0.0.0.0 area 0
!
R3:
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 192.168.23.3 0.0.0.0 area 0
!
Tips:在OSPF中,不管loopback接口配置的掩码是多少,默认通告出去的掩码为/32,这是OSPF
的网络类型导致,如果想通告出去的时候,为接口的真实掩码,则在loopback接口下配置
ip ospf network point-to-point
network 作用
1、使此IP所属的接口,参与路由协议进程。实际上就是使用IP地址范围,来确定哪些接口需要参与路由协议进程。
2、宣告此IP属于的网段,传递出去的子网掩码以接口配置的掩码为准。
3、OSPF可以支持精确宣告
R1/R2配置不再赘述:
R3:
router ospf 1
router-id 3.3.3.3
network3.3.3.3 0.0.0.0 area 0
network 192.168.23.3 0.0.0.0 area 0
network 192.168.34.3 0.0.0.0 area 1
!
R4:
router ospf 1
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area1
network 192.168.34.4 0.0.0.0 area 1
network 192.168.0.0 0.0.3.255 area 1
!
必须在ABR汇总
R3:
router ospf 1
area 1 rang 192.168.0.0 255.255.252.0
!
本地有静态默认路由
R1:
ip route 0.0.0.0 0.0.0.0 x.x.x.x
router ospf 1
default-information originate
本地没有静态默认路由
首先保证设备都被network宣告,这里只是演示下发默认路由,其他的接口该怎么宣告还怎么宣告,宣告了才能起邻居,起了邻居才能传路由。
R1:
router ospf 1
default-information originate always //强制下发
show ip ospf interface brief //查看接口关于OSPF的信息
show ip ospf interface serial 1/0 //查看某个接口关于OSPF的详细信息
show ip route ospf //查看OSPF路由
show ip ospf neighbor //查看ospf邻居
show ip ospf database //查看ospf链路状态数据库
ip ospf network xxxx //接口下更改OSPF网络类型
debug ip ospf adj //查看OSPF邻居关系建立过程
debug ip ospf hello //查看OSPF hello包
debug ip ospf events //查看OSPF相关事件
OSPF 路由器通过以下通用的链路状态路由过程,创建并维护路由信息,以达到收敛状态。
建立邻居邻接关系
OSPF路由器必须与其邻居建立邻接关系之后才能共享信息。OSPF 路由器从所有启用OSPF的接口发送Hello包,用来确定这些链路上是否有OSPF邻居。如果发现了邻居,OSPF 路由器会尝试与该邻居建立邻接关系。
交换链路状态通告
邻接关系建立后,路由器交换LSA(链路状态通告)。LSA 包含每条直连链路的状态和开销。路由器将LSA 泛洪给邻接的邻居。接收到LSA的邻接邻居立即将LSA泛洪给其他的直连邻居,直到区域中的所有路由器都有相同的LSA为止。
构建拓扑表
收到LSA之后,OSPF路由器会基于收到的LSA构建LSDB(拓扑表)。此数据库中最终会拥有网络拓扑的所有信息。对于区域中所有路由器,LSDB中一定都要有相同的信息。
执行SPF算法
路由器执行SPF 算法。SPF 算法构建SPF 树。
构建拓扑表
路由器把SPF树中的最优路径放入到路由表中,并基于路由表中的条目作出路由决策。