OSPF(IA)

OSPF
IGP 协议的一种,属于链路状态协议
——————————————————————————
五种报文类型
1、hello:用于发现邻居,建立邻居关系和维护邻居关系(周期性发送,默认 10s 一次 or 30s 一次)

2、dd:用于选举主从路由器,用于携带 LSDB 摘要信息

3、lsr:请求缺失的 LSA

4、lsu:响应 LSR 请求,用于回复 LSA 信息

5、lsack:确认收到的 LSU

——————————————————————————————————————————————————————————————————
八种状态机
1、down:代表 ospf 协议进入初始化,还没有建立邻居

(特殊状态机,在 NBMA 网络中,发送了 hello 给对方,但是没有任何的会议,就会进入到 attempt )

2、init:代表收到了对方的 hello 报文,正在进行邻居协商(对方的 hello 报文中,没有自身的 router id)

3、2way:代表邻居建立完成,收到了对方的 hello 报文,并且对方的报文中,包含自身的 router id
————————————————————— 邻居 —————————————————————————

4、exstart:代表邻接关系开始建立,选举主从设备(主从设备是保证 LSA 能够有序和可靠的交互)

5、exchange:开始同步 LSA 摘要信息,通过 DD 报文进行交互

6、loading:同步 LSDB,缺少的设备进行请求,直到双方 LSDB 完全一致

7、full:标志着同步完成,双方 LSDB 完全一致

————————————————————— —————————————————————————
——————————————————————————————————————————————————————————————————
邻接

工作过程:

一、邻居建立:

(router id 1.1.1.1)			(router id  2.2.2.2)
R1  ———————————————    R2
①邻居发现:双方设备都在初始的 down状态,互相发送 hello 报文建立邻居关系(hello 报文中会携带自己的 router id)
	例如:R1 先发送(hello    自己的 router id  (1.1.1.1)、邻居的 router  id(null))

②邻居协商:R2 收到 hello 报文后,会从 down 状态转换成  init 状态(进入邻居协商阶段) R2 会把 R1 发送过来的 hello 报文进行记录,把 1.1.1.1 放入自己的邻居列表中R2 同时回复一个 hello 报文(hello    自己的 router id  (2.2.2.2)、邻居的 router  id(1.1.1.1)) R1 收到 R2 的 hello 报文后,看里面包含自己的 router id ,R1 设备转至 2way 状态 并且把 R2 的 hello 报文内容进行记录,把 2.2.2.2 放入自己的邻居列表中
R1 同时回复 hello 报文
(hello    自己的 router id  (1.1.1.1)、邻居的 router  id(2.2.2.2))	
 R2 收到后,看到包含自己的 router id ,也会转至 2way 状态
双方设备进入  2way 后,代表邻居状态建立完成
③邻居维护:邻居建立完成后,双方依然会每隔  10s  发送一次 hello 报文,用于维护邻居关系
(如果在 4倍的时间内,没有收到对方的 hello 报文,会中断邻居关系)

————————————————————————————————————————————————————————
二、选举主从:

	邻接建立完成后,设备会进入到  exstart 阶段,进行主从选举
	(router id 1.1.1.1)		(router id  2.2.2.2)
	R1  ———————————————    R2

	①最开始的时候,双方设备都认为自己是 master 设备,互相发送 DD 报文进行选择
	
	R1 的 DD报文内容:(seq=X    flags”I=1、MS=1、M=1“)代表序列号为:X、第一份初始 DD 报文、主路由器、存在更多协商内容

	R2 的 DD报文内容:(seq=Y    flags”I=1、MS=1、M=1“)代表序列号为:Y、第一份初始 DD 报文、主路由器、存在更多协商内容
	—————————————————————————————————————————————————————————
	②进行比较,Router id 大的会成为 master (R2 id 更大,所以为 master、R1 为 slave)
	
	③进入到下一阶段,进行 LSDB 同步(从设备先转换成 exchange 阶段,并且对主设备进行确认)
	—————————————————————————————————————————————————————————
	R1 的 DD报文内容:(seq=Y    flags”I=0、MS=0、M=1“)代表序列号为:Y、非初始 DD 报文、从路由器、存在更多协商内容
	(R1 设备需要先对主设备发送确认信息,确认的标识为序列号与 R2 的一致)如果 R1 没有确认,5s 后 R2 会重新发送一次 DD,直到 R1 回复

	R2 收到确认之后,也会进入到 exchange 状态(并且下一次发送报文,序列号会加1)
	R2 的 DD报文内容:(seq=Y+1    flags”I=0、MS=1、M=1“)代表序列号为:Y+1、非初始 DD 报文、主路由器、存在更多协商内容

——————————————————————————— 主从选举完成,并且都进入到 exchange 阶段 ——————————————————

三、同步 LSDB
进入到 exchange 阶段后(主从设备会进行 DD 摘要信息的交互)

R1 设备(从)(拥有 LSA  1、2、3、4)	(seq=X)	|          R2 设备(主)(拥有 LSA  1、3、4)(seq=Y)
——————————————————————————————————————————
① 从设备会先对主设备进行上一次报文的确认
	R1 先发送 DD 报文,(seq=Y)(flags  I=0、MS=0、M=0)
			LSA摘要(1、2、3、4)
	——————————————————————————
    R2 设备收到后,得知自己缺少一份 LSA 2,同时得知 R1 是从设备,已经进行了确认

② 主设备收到从的确认后,开始发送下一次 DD 摘要信息
	R2 发送 DD 报文,(seq=Y+1)(flags  I=0、MS=1、M=0)
			LSA摘要(1、3、4)
   	 ——————————————————————————
     R1 设备收到后,得知自己,已经拥有所有的 LSA 信息,无需请求
     但是 R1 是从设备,所以交互完成摘要信息还需要进行一次确认

 ③ R1 设备最后进行一次确认,并且双方进入到  loading 状态,开始同步 LSA
	R1 先发送 DD 报文,(seq=Y+1)(flags  I=0、MS=0、M=0)
	——————————————————————————
	R1 发送完最后一份 DD ,进入到 loading 状态
	R2 收到这份 DD 后也进入 loading	(M=0 标志所以的摘要已经确认完成)

——————————————————————————————————————————————————————————————————
loading 阶段
R1 和 R2 设备 (已知 R2 设备缺少一份 LSA 2)

① R2 设备会主动发送 LSR 请求(缺少的 LSA 2 信息)

② R1 设备收到 LSR 请求后,会查看里面请求的 LSA 是哪一份,并且根据请求进行回复
	R1 设备通过  LSU 携带具体的 LSA 2 进行回复

③ R2 收到具体的 LSA 2 后,会把这份 LSA 放入 LSDB 中,至此双方 LSDB 完成同步

④ R2 最后再次进行确认,告知 R1 已经收到 LSA 2 ,同步完成
	R2 发送 LSAck 报文告知 R1

双方设备进入到 FULL 阶段,标识着同步完成,邻接状态建立完成

———————————————————————————————————————————————————————————————————

OSPF同步过程
在这里插入图片描述

四、通过 SPF 算法计算路由
1、(full-mush SPF):完成 LSDB 同步后,所有的 OSPF 节点都会进行一次 (完全的 SPF 计算)
所有同步完成后的 OSPF 节点,会认为自己是主节点,计算到达其他节点的拓扑和路由信息
(生成候选表 和 最短路径树)
候选表:是本节点能够到达所有节点的路径,但是并非最优路径
最短路径树(SPT):是本节点到达所有节点的最优路径,后续的路由计算都依赖于 SPT
2、I-SPF(增强型的 SPF):当拓扑发生改变的时候,只对变化后的节点计算,不需要对所有的节点都进行计算
3、PRC(部分路由计算):当时有路由发生改变时,针对路由进行计算,不会针对节点进行计算
——————————————————————————————————————————————————————

五、 四种网络类型
1、BMA:当链路层协议为(以太网协议)ETH II、802.3 那么默认的网络类型为:BMA

2、P2P:当链路层协议为(PPP、HDLC 等)那么默认的网络类型为:P2P

3、NBMA:当链路层协议为(帧中继)FR、ATM,那么网络类型为:NBMA

4、P2MP:没有一种链路层协议默认是 P2MP,可以人为修改为这种网络类型

(NBMA 只能与 NBMA 建立邻居关系,因为是单播发送数据包的)
其他网络类型可以组合,但是会有路由计算的影响
(P2P 可以和 BMA 建立邻居,但是 P2P 不选举 DR ,所以无法计算路由)
(P2P 可以和 P2MP 建立邻居,也不会影响路由计算,但是 P2MP 的 hello 时间需要修改为和 P2P 的一致)

六、 DR 和 BDR 的作用
在 MA 网络类型中,为了避免重复同步 LSA 和 大量的邻接关系,需要选举 DR 和 BDR 设备
在一个网段中,只有一个 DR 和 一个 BDR,其他设备为 DR other
(other 只能和 DR 以及 BDR 建立 FULL 的邻接关系)other 之间建立 2way 的邻居关系
————————————————————————————————————
作用:减少 LSA 的泛洪,和大量的邻接关系
————————————————————————————————————
选举方式
先比较 hello 报文中的 DR 优先级(越大越优先) // 优先级默认为:1 (可以修改:0—255)0 不参与选举
优先级一致,则比较 Router id(越大越优先)

选举步骤:
①如果在 DR 集合中,没有已经声明的 DR 则从 BDR 选举出最优的成为 DR
②如果在 BDR 集合中,没有已经声明的 BDR 则从 other 集合中,选举出最优的成为 BDR
——————————————————————————
例如:一开始 4 台设备都是 other (1、2、3、4)
	则重 4 台设备中,选举出最好的一台成为 BDR,如果没有 DR, BDR 则直接成为 DR
	再从剩余的 3 台设备中选举出 BDR
————————————————————————————————————————
除非出现 多台 DR 或者是 BDR,否则一旦 DR 和 BDR 选举出来后,就不会再被抢占(即:不重新选举)

七、OSPF 设备概念
1、区域:为了减少设备的负担,所以把一个大型的网络划分成,多个 OSPF 区域去管理
骨干区域:OSPF 网络的中心区域,其他区域的信息交互都需要经过该区域转发(类似于城市中的交通枢纽)
(area 0.0.0.0)
普通区域:除了区域 0 和特殊区域以外的区域,1—2的32次方
特殊区域:通过修改普通区域的特性,得出的特殊区域(stub、nssa)和普通区域共用 ID 号(1—2的32次方)
—————————————————————————————————————————————
2、ABR:在一个区域内 LSDB 是同步的,但是不同区域之间 LSDB 是不同步的,也就是路由信息不完全同步
(区域边界路由器) 那么不同区域之间需要进行业务互访,就得通过 ABR 去完成
(ABR 拥有多个区域的 LSDB,属于区域 0 和 其他区域的交界设备)
3、ASBR:OSPF 协议,除了和协议本身交互路由信息,还能和其他协议(如:Static、IS-IS、BGP等协议交互信息)
(自治区域边界路由器) 不同协议之间,通过的网络信息是不一样的,ASBR 是运行了除 OSPF 外还有其他协议的设备
可以进行 OSPF 路由和其他协议路由翻译的设备

——————————————————————————————————————————————————————
OSPF 基础配置命令
(系统配置视图)

	ospf 1 router-id 1.1.1.1 			// 创建 OSPF 协议,进程号 1 ,router id (1.1.1.1)
——————————————————————————————————————————————————————
					补充:(router id 是唯一的,两台路由器之间,router id 不能一致)
						如果重新配置了新了 router id ,需要重置 ospf 进程才可能生效

					补充:<Huawei>reset ospf  process	// 重置 ospf 进程(用户视图下生效)
——————————————————————————————————————————————————————
	(ospf 进程下配置)
	 area 0.0.0.0 				// 创建 OSPF 区域,区域 0(也可以通过该命令进入某一个区域)
					补充:邻居之间,区域 ID 必须一致,否则不能建立邻居关系
——————————————————————————————————————————————————————
	(在 OSPF 区域下配置)	
 	 network 1.1.1.1 0.0.0.0 		// 通告路由,用于建立邻居关系,以及把本地路由通告给邻居使用
	 network 12.1.1.0 0.0.0.255 
	命令格式:  network + 目的路由 + 通配符
	例如:  要把 100.1.1.1  /24 的路由发布给邻居	(network  100.1.1.0   0.0.0.255 )
	——————————————————————————————————————————————————
	完成 OSPF 邻居建立后
	查看邻居是否完成建立:display  ospf  peer  brief	// 查看 OSPF 邻居摘要信息


	可选配置(进入接口修改 ospf 开销值)
	interface  G0/0/0			// 例如:进入 G0/0/0
	ospf  cost 100			// 把该接口的 cost 改成 100
	(补充:修改 cost  只能针对路由传递的入接口生效,出接口无效)
		cost 是累计的,传递路径上的所有入接口都计算 cost
——————————————————————————————————————————————————————

	还有一种补充修改的方法,修改参考带宽
	cost = 参考带宽/接口的实际带宽	例如:参考带宽 100,接口带宽是 100 的时候,cost = 1
	(但是 FE (100M)接口 和 GE(1000M)接口,计算出来的 cost 是一致的,容易导致错误的负载均衡)
	所以修改参考带宽可以解决这个问题
	bandwidth-reference	修改参考值例如:修改成 1000  (OSPF 进程下 )
	FE 接口的 cost 会变成 10	GE 接口则依然是 1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华为技术学习记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值