这边可以与我之前写的HCIA博客结合起来一起看,效果更好
HCIA的学习(6)
OSPF状态机
- down—关闭-----一旦启动OSPF进程,并发出hello报文,则进入下一个状态
- init----初始化状态------当收到的hello报文中存在本地的RID值,则进入下一个状态
- 2-way----双向通讯----邻居关系建立的标志。
条件匹配:匹配成功则进入下一个状态,匹配失败则停留在邻居关系。(发送的是Hello包进行选举)
- exstart—预启动----使用未携带LSA摘要的DBD报文进行主从关系选举,其中RID大的为主设备
- exchange—准交换—使用携带LSA摘要信息的DBD报文进行信息共享
- loading----加载----邻居间使用LSR/LSU/LSAck三种报文来获取完整的拓扑信息
- full----转发----拓扑交换完成后进入该状态,标志着邻接关系的建立。
Attempt状态---尝试状态。
仅在NBMA网络中会出现,当设备启动后,从down切换到该状态,尝试向外发送hello报文,当成功发送后,
进入到init状态。(因为NBMA网络中不允许发送组播报文,所以只能进入Attempt状态等待网络管理员告知
我邻居的IP地址,然后发送单播报文)
条件匹配:
目的:是为了减少网络中LSA信息的重复更新及资源消耗
(假如没有条件匹配,如果A,B,C,D依靠一个交换机使其出于同一个广播域,假设A先给B,C,D发送自己的拓扑信息了,B接收到后又将自己的拓扑信息和获取到的A拓扑信息一起发送给C(因为如果不将A的拓扑信息一起发送,如果网络是A-B-C三台路由器直连,那么C就永远无法接受到A的拓扑信息),那么C就收到两份A的信息造成LSA信息的重复更新及资源消耗)
设备接口名称:
- 指定路由器—DR(负责收取其他所有人的拓扑信息)
- 备份指定路由器—BDR(当DR出现故障时,负责收取其他所有人的拓扑信息)
- 其他路由器—DRother(自身的拓扑信息只发给DR或BDR,不再发给其他DRother)
注意:DR选举是一个广播域选举一个,只有一种情况只有DR,没有BDR,就是广播域中只有一个设备参加选举,其他设备皆接口优先级为0,放弃选举。
选举规则:
- 对比接口优先级----越大越优先,默认值为1,范围为0-255;当优先级为0时代表放弃选举。(先比较)
- 对比设备RID----越大越优先
组播地址:(为什么有两个组播地址的原因)
- DRother发送时使用224.0.0.6
- DR/BDR接收224.0.0.6,发送224.0.0.5
角色关系:
- DRother之间属于邻居关系,其他设备之间属于邻接关系。
条件匹配属于非抢占模式,即一旦选举成功,不会因为新加入的设备而重新选举。如果需要重新选举,则重启OSPF进程。
OSPF工作过程
1、设备在启动配置完成后,OSPF将向本地所有运行了OSPF协议的接口以组播224.0.0.5的方式发送出hello报文。
hello报文中携带有本地的RID值以及自己已经知晓的邻居的RID(通过接收其他邻居的hello包来获取邻居的RID)。
2、当收到的hello报文中存在本地RID数值,则进入2-way状态,且将与邻居的关系加入到邻居表中。
3、进行条件匹配,匹配成功开始建立邻接关系。匹配失败则停留在邻居关系,仅使用hello报文保活。
(注:如果是点到点网络就不需要条件匹配,因为不会重复更新)
4、开始建立邻接关系,首先使用未携带数据的DBD报文进行主从关系选举,主设备先进入下一个状态,从设备先
发送下一个报文。之后使用DBD报文来共享LSA摘要信息。之后双方通过LSR/LSU/LSAck报文完成未知LSA的获取
过程,完成本地数据库的搭建----LSDB
5、基于本地数据库中的LSA信息,通过SPF算法,计算出有向图和最短路径树,并计算所有到达所有节点的路由
信息,将计算出的路由信息加载到OSPF路由表中。
6、基于OSPF路由表以及其他协议路由表,共同选择出最优路由,并将最优路由加载到全局路由表中,以供后续
指导数据包的转发过程。
7、设备之间使用hello报文保活,每30min进行一次周期链路刷新。
下边可以与我之前写的实验报告结合起来一起看,那里有完整配置
OSPF实验
OSPF基本配置
IP划分:192.168.1.0/24
IP划分的原则:
1.每一台设备的环回看做一个网段(不管这台设备有多少个环回)
2. 所有的物理链路看做一个网段
所以上图需要4个网段,借两位
192.168.1.0/26 —链路
-------192.168.1.0/29 —R1、R2、R3
-------192.168.1.8/29
-------------192.168.1.8/30 —R3-R4
-------------192.168.1.8/30 —R4-R5
-------192.168.1.16/29
-------192.168.1.24/29
-------192.168.1.32/29
-------192.168.1.40/29
-------192.168.1.48/29
-------192.168.1.56/29
-------192.168.1.64/29 ----保留地址
192.168.1.64/26 —R1环回
192.168.1.128/26 —R2环回
192.168.1.192/26 —R3环回
(因为需要3个网段,最好掩码为30,因为掩码30只有两个可用IP地址,不会造成IP地址的浪费,但有一个网段需要3个IP地址,所以那个网段我们至少掩码为29)
[r1]ospf 1 router-id 1.1.1.1 ---启动OSPF并手工配置RID,RID满足要求即可(即全网唯一)
[r1-ospf-1]area 0 ---划分区域
[r1-ospf-1-area-0.0.0.0]network 192.168.1.1 0.0.0.0 ---精准宣告,宣告使用的IP属于本地的IP
[r1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 ---范围宣告
两种宣告方式任选其一即可,一般推荐使用精准宣告。
[r1]display ospf peer ---查看邻居表
[r1]display ospf peer brief ---查看邻居简表
[r1]display ospf lsdb --查看LSDB
[r1]display ospf routing ---OSPF路由表
[r1-GigabitEthernet0/0/0]ospf dr-priority 2 ----修改OSPF接口优先级
缺省路由下放
[r5-ospf-1]default-route-advertise ----非强制性下放,要求本地必须存在一条缺省路由
[r5-ospf-1]default-route-advertise always ---强制性下放
[r1-ospf-1]silent-interface LoopBack 0 ----静默接口,配置为静默接口的接口,不会发送和接收OSPF报文
区域认证:
[r4-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher 123456
接口认证:
[r3-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
一条OSPF路径的COST值等于从目的地到本地路由器沿途所有设备的入接口cost之和。