欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

OSPF工作原理

程序员文章站 2022-03-26 14:57:42
OSPF####1、链路状态协议工作原理简介####架构介绍:花瓣形状,骨干区域为0区域,其他区域1、2、3都围绕区域0相连,及个别的特殊情况,可以通过虚拟链路来连接信息传递:向邻居发送是自己知道的所有状态的链路状态信息路由标识:Router-ID是网络上唯一用于标识的一台路由器,线网用路由器的环回口来配置Router-ID,这边的地址是32位的公网IP地址,如果没有标,通过物理口来确认区域规划:划分多个区域是为了优化网络性能,####2、Router-id及DR选举原则#####选举D...

OSPF
####1、链路状态协议工作原理简介####

架构介绍:花瓣形状,骨干区域为0区域,其他区域1、2、3都围绕区域0相连,
及个别的特殊情况,可以通过虚拟链路来连接
信息传递:向邻居发送是自己知道的所有状态的链路状态信息
路由标识:Router-ID是网络上唯一用于标识的一台路由器,线网用路由器的环回口
来配置Router-ID,这边的地址是32位的公网IP地址,如果没有标,通过物理口
来确认
区域规划:划分多个区域是为了优化网络性能,

####2、Router-id及DR选举原则####

#选举DR、BDR是为在广播多路访问中减少连接关系的建立,优化性能
#默认Router-ID最大是DR,第二大是BDR,其他是Drother
#DR一旦被选定就不会被抢占,
#Drother会通过224.0.0.6向DR和BDR通告网络状态信息,DR会通过
224.0.0.5向所有邻居通告信息

####3、OSPF协议5种报文分析####
OSPF5种分组

| 1、Hello | 发现邻居并建立和维护邻居关系 (Hello报文)


| 2、DataBase Description | 检查所有路由器的LSDB是否同步(数据库描述报文DBD)


| 3、Link-State Request | 向另外一台路由器请求特定的链路状态记录 (链路请求报文LSR)


| 4、Link-State Update | 发送被请求的链路状态记录 (链路回应报文LSU)


| 5、Link-State Acknowledgment | 对其他类型的分组进行确认 (链路确认报文LSA)

######名词解释####

1、传送的LSA link status advertisement 链路状态通告,包括拓扑信息
具体包括:网段的前缀 掩码 连接的路由器的哪些接口 直连哪些路由器
LSA分为7中类型
某些包含的是拓扑信息 但是有些包含的是路由信息

2、LSDB 他是LSA的的集合 链路状态数据库
对此进行spf 算法 得到spf 树 (基于cost代价)再得出最优的路由 并将其加入到路由表中

3、既支持vlsm 可变掩码、又支持 cidr(无类别域间选路)

4、封装
layer2| ip |ospf| fcs
直接封装到IP报头内 上层协议号为89 eigrp为88


详解
一、hello发送周期分为10s和30s两种,hello hold的时间为发送时间*4即40s或120s

二、dbd数据库描述报文 包含lsa的报头 即告诉邻居路由器 本地的lsdb中包含哪些LSA信息
同步lsdb过程中如果没有此描述可能会发送重复的LSA 造成资源的浪费导致低效LSA中除了拓扑
或路由信息的载荷外还有LSA的报头也叫LSA的摘要,报头中包含此LSA的标识,从而避免发送重复的LSA信息

三、路由器请求邻居有但是本地没有的LSA,以保证lsdb一致,根据交互的dbd,
将没有的LSA的报头放在LSAR中,表明需要的LSA

四、根据上面的一条 将邻居请求的LSA信息 放在LSU中由本地路由器发送给邻居
LSU包含完整的LSA信息

五、LSACK为确认机制 由OSPF定义的确认机制
ospf定义了两类的确认 一种为显式的确认 另一类为隐式的确认(基于序列号的确认机制)
前者收到一个报文 针对此报文 生成一个单独的确认报文
(只有ospf支持确认)后者收到一个报文 使用相同的报文再发送回来 序列号设置为一致 既传输了信息 又做了确认

OSPF包头格式:

| Link Header | IP header | OSPF Packet Types | Link Trailer |

Protocol ID Number 89 ==== OSPF


OSPF Packert
version number

version number : OSPF-V2 OSPF-V3
Router ID :
Area ID :
Authen-tication : 0 不认证、1明文 、2 MD5

####4、OSPF协议7种状态分析####


| | 112.18.17.1/30 112.18.17.2/30 | |
| 路由A |--------------------------------------------------------------------| 路由B |
| | | |


	     E0					               E1
			【Down State】	
		I am route ID 112.18.17.1/30, and I see no one	
--------							 	  ---------------
|Hello|----------》》》--------------------------------------------------------》》》----------|to 244.0.0.5|
--------							                    ---------------
	E0							E1
			【Init State】	
                                                                                                                                           Router B 
							Neighbor	list
							112.18.17.1/30  init E1
		I am route ID 112.18.17.2/30, and I see 112.18.17.1
--------							 	  -------
| to A  |----------《《《--------------------------------------------------------《《《---------|Hello|
--------							                    -------
Router A 
Neighbor	list
112.18.17.2/30  init E0
			【Two-Way State】   ###此时只是建立邻居关系,还没有建立连接关系

########################################################################################
第一个DBD不包含LSA头部吗,只是RID,
1:init=0 不是第一个DBD
M:more=1表示后读DBD
MS:master=1表示主


| | 112.18.17.1/30 112.18.17.2/30 | |
| 路由A |----------------------------------------------------------------- --| 路由B |
| | | |


	     E0					               E1


			【Exstart State】	
		I will start exchange because I have router ID 112.18.17.1	
--------							 	
| DBD |----------》》》--------------------------------------------------------》》》---------------
--------	
		No ,I will start exchange because I have a higher router ID
					 	  		   -------
-------------------《《《--------------------------------------------------------《《《---------|DBD|
							                    -------
                                            选主从的目的,是谁先发DBD,这和选DR、BDR是两个概念
		
			【Exchange State】	  					
			Here is a summary of my LSDB			   -------
-------------------《《《--------------------------------------------------------《《《---------|DBD|
							                    -------
		
--------			Here is a summary of my LSDB				
| DBD |----------》》》--------------------------------------------------------》》》---------------
--------	

########################################################################################


| | 112.18.17.1/30 112.18.17.2/30 | |
| 路由A |----------------------------------------------------------------- --| 路由B |
| | | |


	     E0					               E1


--------			Thanks for the information	 	  	   ---------
|LsAck|----------《《《--------------------------------------------------------》》》----------|LsAck|
--------							                    ---------
			【Loading State】
		
--------			I need the complete entry for net work 112.18.16.0	
| LSR  |----------》》》--------------------------------------------------------》》》---------------
--------
			Here is the entry for network 112.18.16.0		  ------
-------------------《《《--------------------------------------------------------《《《---------|LSU|
								   ------

--------			Thanks for the information	 	  	   
|LsAck|------------》》》--------------------------------------------------------》》》----------
--------
			【Full State】

####5、OSPF协议6种LSA分析####
1类:所有OSPF路由器都会产生,只在区域内传播
2类:DR产生,只在区域内传播
3类:ABR产生,在相邻的两个区域相互传播
4类:ABR产生,向和ASBR不在同一区域的其他区域传播,用于表示ASBR
5类:ASBR产生,向整个OSPF协议区传播,用于描述另一个协议域的路由信息
7类:NSSA区域中的ASBR产生,用于向NSSA区域通告外部路由

#########################################
1类LSA:OSPF路由域内每一台路由器都会产生的LSA,这是LSA通告的基础,该LSA包内列出了,
本路由器的所有参与OSPF进程的端口的IP地址与掩码与该接口Metric值,他的Link-ID与Adv Router都是
发出该LSA的路由器的Router-id,该LSA只会在发送路由器所在的区域内扩散,也就是说他的作用范围是本区域

2类LSA:此类LSA只会在网络拓扑是多路访问的情况下产生(MA或NBMA),这类LSA包内,列出了这个多路访问的掩码,
使用Router-id的方式,描述这个物理网段内有多少台路由器与DR保持联系,Link-id为DR所属的接口的IP地址,
Adv Router为DR所在的那台路由器的Router-id

3类LSA :3类LSA由BDR发出,存在这类LSA的主要原因是1类2类只能在域内域内和传播,无法跨区域,这类数据包内,
列出了网段,,掩码,出接口到达目标网段的Metric值,所以3类LSA相当于将1,2类LSA打包,通过ABR传输至其他区域,
因为这类LSA一定是由ABR发出的,所以这类LSA的Adv Router为发出发出该数据包的ABR的Router-id,
Link-id为区域外的网段,比如说192.168.10.0192.168.20.0,可以使用show ip ospf database summary 192.168.10.0来查询这条3类LSA明细信息
?

4类LSA:该类LSA并没有什么很特殊的意义,数据包中用Router-id的方法,,定位了ASBR与ASBR所在的区域的ABR,
使得其他其他路由器可以找到ABR的位置,可以使用show ip ospf database asbr-summary 命令查看4类LSA明细,
4类LSA的Link-ID为ASBR,Adv Router为ASBR所在的区域的ABR的Router-id,该类LSA会在ASBR不在的区域扩散,
也就是说ASBR所在的区域不会存在4类LSA,如果ASBR同时也是BR,那么在ASBR所在的骨干区域与非骨干区域将不会产生4类LSA,
只会在别的区域产生,因为ASBR所在的区域,其他路由器可以通过1类LSA找到它,而不是通过4类LSA

5类LSA:这类LSA数据包内列出了外部路由网段,掩码,Metric值,route tag,以及发布类型(E2/E1)Link-ID为目标网段,
Adv Router则为ASBR的Router-id,需要注意的是,这类LSA不会与区域关联,也就是说这类LSA是在整个OSPF路由域内传播

7类LSA··:如果要学习这类LSA,,那么一定要先了解NSSA区域,这里·简单的复习一下nssa区域的概念,该区域不接受5类LSA,
只接受1,2,3类LSA,但是这就存在一个问题,如果在nssa区域内有一台ASBR怎么办,因为NSSA区域不接受5类LSA,
所以当nssa区域内有一台ASBR存在的时候,ASBR会发出7类LSA,然后在NSSA区域内泛洪,ABR收到7类LSA后会将7类转换成5类,
然后向整个OSPF路由域泛洪,7类LSA的包内容与5类LSA一样,都含有网络号,掩码,Metric值,发布类型,
其中Link-ID为外部网络的网络号,Adv Router为ASBR的Router-id,还需要注意一个点,当NSSA区域存在ASBR时,
该区域的ABR会同时兼任ABR与ASBR的角色,所以区域0是不会有4类LSA的

本文地址:https://blog.csdn.net/longtiandao/article/details/107161177