OSPF(Open Shortest Path First,开放最短路径优先)是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。工作在IP层,协议号89。
二、RIP的缺陷
1. 最大跳数限制了网络规模(15跳)
2. 以跳数为度量值无法准确判断最优路径
3. 路由更新发送完整路由表消耗网络带宽
4. 收敛速度慢
5. 协议会产生路由自环
三、OSPF初始化流程
1. 建立邻居和邻接关系
1.1 发送hello报文发现和建立邻居关系,组播地址224.0.0.5
说明:必须满足:接口UP;双方接口IP地址在同一网段;双方接口在同一区域等条件。
1.2 选举DR/BDR,建立邻接关系
备注:DR(Designated Router,指定路由器)
BDR(Backup Designated Router,备份指定路由器)
选举原因:使路由信息交换更加高速有序
选举范围:每条广播链路(每一个网段)上都需要选举出一个DR和一个BDR
选举规则:(1)优先级数字大的优先,默认优先级都是1;(2)Router-id大的优先
Router-id:定义,Rid,标识路由器的身份;产生方法:(1)手动配置一个IPv4地址格式作为Rid;(2)自动选举,1.在所有环回口中选举IP地址最大的作为Rid;2.在所有物理接口中选举IP地址最大的作为Rid
建议手动配置一个本地环回口的IP地址作为Rid
关系状态:DRother与DR建立邻接关系;DRother与BDR建立邻接关系;DR与BDR建立邻接关系;两个DRother之间保持邻居关系
说明:DRother:既不是DR路由器也不是BDR路由器,剩下的同网段其它路由器
2. 邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步
备注:邻居关系的路由器不参与链路状态信息交换
相关概念:
链路状态通告:LSA,用来描述路由器的接口、路由条目的相关信息
链路状态数据库:LSDB,存储本地所有LSA
工作流程:
(1)向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息;
(2)收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本机所需的LSA的完整信息
(3)收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
(4)收到LSU后,向对方回复LSAck报文,进行确认
说明:可以看出OSPF路由更新不会发送完整路由表,因此消耗网络带宽较低。
3. 每台路由器根据本机链路状态数据库,计算到达每个目的网段的最优路由,写入路由表
说明:可以看出OSPF路由更新不会发送完整路由表,因此消耗网络带宽较低
四、OSPF报文类型
(1)Hello报文,周期性发送,用来发现和维持OSPF邻居关系;进行DR、BDR的选举
(2)DD报文(Database Description,数据库描述),用于描述本地LSDB中所有LSA的摘要,用于两台路由器进行数据库同步
(3)LSR报文(Link State Request,链路状态请求),向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA
(4)LSU报文(Link State Update,链路状态更新),向对方发送其所需要的LSA
(5)LSAck报文(Link State Acknowledgment,链路状态确认),用来对收到的LSA进行确认
五、OSPF分区域管理
1.?分区域的原因
加快收敛速度;把网络故障隔离在区域内部
说明:分区后,邻居、邻接关系的建立在各自区域内进行,所以可以加快收敛速度。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化(本区域的OSPF链路故障不会通告到其它区域)
2. 路由器角色
IR(内部路由器),所有接口都处于同一个区域
ABR(区域边界路由器),连接不同区域的路由器
ASBR(自治系统边界路由器),连接外部自治系统的路由器
OSPF分区图示:
3. 区域类型
骨干区域,只能有一个骨干区域,一般是区域0;骨干区域必须是连续的
非骨干区域,非骨干区域必须连接到骨干区域
说明:这样规定的原因主要是为了防环
五、OSPF常用命令
(1)[h3c]ospf ‘process id‘ router-id ‘rid‘
开启OSPF进程,指定Router-id,进入OSPF协议视图
(2)[h3c-ospf-1]area ‘area id‘
进入区域视图
(3)[h3c-ospf-1-area 0.0.0.0]network ‘ip address‘ ‘wild-mask‘
宣告网段
说明:wild-mask(掩码通配符),0对应的部分需要匹配一致,1对应的部分不检查,与子网掩码没有半毛钱关系
(4)[h3c-ospf-1]slient-interface ‘interface id‘
配置静默接口,OSPF不会在向静默接口上收发协议报文(与RIP静默接口目的一样)
(5)[h3c]display ospf peer
查看OSPF邻居关系,FULL:表示邻接关系;2-Way:表示邻居关系
(6)[h3c]display ospf routing
查看OSPF路由
六、OSPF配置实例
1. 配置拓扑
2.?配置需求
(1)按照图示配置 IP 地址;
(2)按照图示分区域配置 OSPF ,实现全网互通;
(3)为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域;
3.?配置步骤
(1)按照拓扑所示,配置IP地址
[R1]int?LoopBack?0 [R1-LoopBack0]ip?a?1.1.1.1?32 [R1-LoopBack0]int?g?0/0 [R1-GigabitEthernet0/0]ip?a?20.1.1.1?24 [R1-GigabitEthernet0/0]int?g?0/2 [R1-GigabitEthernet0/2]ip?a?10.1.1.2?24 [R1-GigabitEthernet0/2]quit [R1]
[R2]int?LoopBack?0 [R2-LoopBack0]ip?a?2.2.2.2?32 [R2-LoopBack0]int?g?0/0 [R2-GigabitEthernet0/0]ip?a?20.1.1.2?24 [R2-GigabitEthernet0/0]int?g?0/1 [R2-GigabitEthernet0/1]ip?a?30.1.1.1?24 [R2-GigabitEthernet0/1]quit [R2]
[R3]interface??LoopBack?0 [R3-LoopBack0]ip?a?3.3.3.3?32 [R3-LoopBack0]int?g?0/1 [R3-GigabitEthernet0/1]ip?a?30.1.1.2?24 [R3-GigabitEthernet0/1]int?g?0/2 [R3-GigabitEthernet0/2]ip?a?40.1.1.1?24 [R3-GigabitEthernet0/2]quit [R3]
[R4]int?LoopBack?0 [R4-LoopBack0]ip?a?4.4.4.4?32 [R4-LoopBack0]int?g?0/2 [R4-GigabitEthernet0/2]ip?a?10.1.1.1?24 [R4-GigabitEthernet0/2]quit [R4]
[R5]int?LoopBack?0 [R5-LoopBack0]ip?a?5.5.5.5?32 [R5-LoopBack0]int?g?0/2 [R5-GigabitEthernet0/2]ip?a?40.1.1.2?24 [R5-GigabitEthernet0/2]quit [R5]
(2)按照图示分区域配置 OSPF ,实现全网互通
说明:1. 创建ospf进程可以手动指定router-id,也可以不指定自动生成
2.?环回口可以宣告进ospf,也可以不宣告,不影响业务互通;宣告时可以宣告进骨干区域,也可以宣告非骨干区域。有选择困难的建议宣告到骨干区域
[R1]ospf?1?router-id?1.1.1.1 [R1-ospf-1]area?0 [R1-ospf-1-area-0.0.0.0]network?20.1.1.1?0.0.0.255 [R1-ospf-1-area-0.0.0.0]network?1.1.1.1?0.0.0.0 [R1-ospf-1-area-0.0.0.0]dis?this #? area?0.0.0.0?? network?1.1.1.1?0.0.0.0?? network?20.1.1.0?0.0.0.255 # [R1-ospf-1-area-0.0.0.0]quit [R1-ospf-1]area?1 [R1-ospf-1-area-0.0.0.1]network?10.1.1.2?0.0.0.255 [R1-ospf-1-area-0.0.0.1]dis?this #? area?0.0.0.1?? network?10.1.1.0?0.0.0.255 # [R1-ospf-1-area-0.0.0.1]quit [R1-ospf-1]quit [R1]
[R2]ospf?1?router-id?2.2.2.2 [R2-ospf-1-area-0.0.0.0]network?2.2.2.2?0.0.0.0 [R2-ospf-1-area-0.0.0.0]network?20.1.1.2?0.0.0.255 [R2-ospf-1-area-0.0.0.0]network?30.1.1.1?0.0.0.255 [R2-ospf-1-area-0.0.0.0]dis?this #? area?0.0.0.0?? network?2.2.2.2?0.0.0.0?? network?20.1.1.0?0.0.0.255?? network?30.1.1.0?0.0.0.255 # return R2-ospf-1-area-0.0.0.0] quit [R2-ospf-1]quit [R2]
[R3]ospf?1?router-id?3.3.3.3 [R3-ospf-1]area?0 [R3-ospf-1-area-0.0.0.0]network?3.3.3.3?0.0.0.0 [R3-ospf-1-area-0.0.0.0]network?30.1.1.2?0.0.0.255 [R3-ospf-1-area-0.0.0.0]quit [R3-ospf-1]area?2 [R3-ospf-1-area-0.0.0.2]network?40.1.1.1?0.0.0.255 [R3-ospf-1-area-0.0.0.2]quit [R3-ospf-1]quit [R3]
[R4]ospf?1?router-id?4.4.4.4 [R4-ospf-1]area?1 [R4-ospf-1-area-0.0.0.1]network??4.4.4.4?0.0.0.0 [R4-ospf-1-area-0.0.0.1]network??10.1.1.1?0.0.0.255 [R4-ospf-1-area-0.0.0.1]dis?this #? area?0.0.0.1??network?4.4.4.4?0.0.0.0?? network?10.1.1.0?0.0.0.255 # return [R4-ospf-1-area-0.0.0.1]quit [R4-ospf-1]quit [R4]
[R5]ospf?1?router-id?5.5.5.5 [R5-ospf-1]area?2 [R5-ospf-1-area-0.0.0.2]network??5.5.5.5?0.0.0.0 [R5-ospf-1-area-0.0.0.2]network??40.1.1.2?0.0.0.255 [R5-ospf-1]quit [R5]
(3)检查是否全网互通
说明:检查 OSPF 是否全网互通,一个是检查邻居关系表,看邻居关系是否正常;另一个是检查路由表,看是否学习到全网路由
这里只展示 R1 的检查结果
检查邻居关系
说明:可以看到,R1 已经学习到了全网所有网段的路由信息,配置完成。
附:
?关注我,加微信,获取此次配置工程、更多配置案例,也可以承接远程调试各厂商交换机、路由器、防火墙等私活,欢迎各位老板加微信私聊。
原文:https://blog.51cto.com/u_14302472/2870709