OSPF --- 无类别的路由协议
一、OSPF区域划分的要求:
1,区域之间必须存在ABR设备
2,必须按照星型拓扑来划分 --- 中间区域被称为骨干区域,骨干区域的区域ID(由32
位二进制构成,可以使用点分十进制表示,也可以直接使用十进制表示。)定义为0.
二、OSPF的基本配置
1,启动OSPF进程
2,创建区域
3,宣告
宣告的目的 --- 1,激活接口;2,发布路由
[r1]display ospf peer --- 查看邻居表 [r1]display ospf peer brief --- 查看邻居关系简表 [r1]display ospf lsdb --- 查看链路状态数据库 [r1]display ospf lsdb router 2.2.2.2 --- 查看具体LSA信息
COST = 参考带宽/真实带宽
开销值计算,如果出现小数,如果是小于1的小数,则直接按照1来看;如果是大于1的
小数,则直接取整数部分。
结构突变:
1,突然新增一个网段 --- 触发更新,直接发送LSU包,需要ACK确认
2,突然断开一个网段 --- 触发更新,直接发送LSU包,需要ACK确认
3,无法沟通 ---- 死亡时间
条件匹配:
指定路由器 --- DR --- 和MA网络中其他设备建立邻接关系。
备份指定路由 --- BDR --- 和MA网络中其他设备建立邻接关系。
一个MA网络当中,在DR和BDR都存在的情况下,至少需要4台设备才能见到邻居关系,
因为只有DRother之间会保持邻居关系
DR和BDR实际上是接口的概念。
条件匹配 --- 在MA网络中,若所有设备均为邻接关系,将出现大量的重复更新,故需要
进行DR/BDR的选举,所有DRother之间仅维持邻居关系即可
DR/BDR的选举规则:
1,先比优先级,优先级大的为DR,次大的为BDR优先级的初始默认值为1。
注意:如果将一个接口的优先级改为0,则代表该接口放弃DR/BDR的选举。
2,优先级相同时,则比较RID,RID大的路由器对应的接口为DR,次大的为
BDR。
DR/BDR的选举 --- 非抢占模式的选举 --- 一旦选举成功,则将不能被抢占。 ---- 选举
时间 --- 和死亡时间相同。
ospf的数据包
OSPF跨四层封装,IP头部使用89作为协议号标识OSPF。
HELLO包,DBD包,LSR包,LSU包,LSACK包
OSPF头部
Hello包中限制邻居关系建立的因素:
1,网络掩码
2,hello时间
3,dead time
4,OSPF特殊区域的标记
5,认证
确认包形态
链路状态类型,链路状态ID,通告路由器 --- LSA三元组 --- 这三个参数可以唯一的标识
出来一条LSA信息。
LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包
LSACK --- 链路状态确认报文 --- 确认包
OSPF接口网络类型 --- 指的是OSPF接口在不同的网络类型默认下的不同工作方式。
网络类型 OSPF接口网络类型(工作方式)
BMA(以太网) Broadcast,可以建立多个邻居关系。需要进行DR和BDR选举,
Hello 10 , Dead 40
P2P(HDLC,PPP,GRE,MGRE)
P2P,只能建立一个邻居关系,不需要进行DR和BDR选举,Hello
10 , Dead 40
虚拟接口(环回接口) 在华为体系中被写作P2P,实际没有数据收发。会学习32位主机
路由(通过修改接口的网络类型为broadcast可以将掩码长度还
原)
P2MP,可以建立多个邻居关系。不需要进行DR和BDR选举,
Hello 30 , Dead 120 ,会学习邻居接口IP地址的主机路由
NBMA(帧中继) NBMA,可以建立多个邻居关系。需要进行DR和BDR选举,Hello
30 , Dead 120,NBMA环境下无法自动建立邻居关系,需要手工指
定邻居关系。
在华为体系中,将环回接口在OSPF中的开销值定义为0,不会受到外界变化的影响。(修改参
考带宽不会影响该值。)
[r2-LoopBack0]ospf network-type broadcast --- 修改OSPF接口网络类型
华为体系将tunnel接口的传输速率定义为64K,实际上虚拟接口不存在传输速率。这样设定的
目的是为了让隧道接口的开销值变的很大,导致在存在其他路径时,尽可能的避免走隧道接
口,因为隧道接口需要进行复杂的封装和解封装过程,导致效率降低。
全连的MGRE环境 --- MESH --- 所有节点即使中心,也是分支。
[r1-ospf-1]peer 12.0.0.2--- 指定单播邻居 --- 一定需要双向指定。
Attempt --- 尝试 --- 过度状态,只有在需要手工指定邻居关系的状态下出现,在指定对方后
等待对方指定时将处于该状态,一旦对方指定,则将进行后续状态。