春节佳节已经过了一大半啦~各位C站上的小伙伴们有没有胖了呢?每逢佳节胖三斤呐,我都觉得不胖几斤都对不住妈妈给我做的各种好吃的鸭~时间也过去了这么久,我的笔记专栏也写到了第十三篇啦~从最开始的连编辑器都用不来的小白,到现在可以基本使用编辑器编写笔记,也学会了使用思维导图,年前也总结了我学习到的一些基础知识,现在也开始了我的年后的学习,也开始继续更新我的笔记啦~这一节要更新的是OSPF协议,怎么说呢,其实难度还是有些难的,一些网络小白来说其实是蛮难搞懂的,我也是费了好大的劲才搞懂,希望大家在看完这篇笔记之后能达到基础了解的一个程度。
Open Shortest Path First,开放式最短路径优先协议,基于链路状态的内部网关路由协议。
动态路由协议(根据应用场景分类):
1 .IGP协议:内部网关协议,AS内部 --->OSPF 、 IS-IS(运营商内部会使用)。
2.BGP协议:外部网关协议,AS外部 (BGP协议用于区分内部还是外部协议)
#AS:自治系统,是由一个管理者构建的网络系统,有编号,公有AS需要申请,私有AS不需要申请。
运行相同的IGP协议,策略比较单一。
在一个AS内部运行相同的IGP协议,策略比较单一。
发出的信息内容:信息的产生者、产生者的链路状态、链路产生的开销等。
使用OSPF协议的每个端口信息是共享的,产生者不会因为被哪台设备包装而改变,也就是说每台设备收到的消息就是最初的消息状态,相当于信息的产生者发送了一个广播。
SPF算法:最短路径优先算法。
LSA:链路状态通告。
LSDB:链路状态数据库;存放LSA的地方 。
两台设备相互发送LSA需要先确定是否为邻居或邻接关系,保证之后的数据同步。
OSPF衡量路径最优是基于带宽的。
OSPF报文封装在IP报文中,协议号为89.
IP Header |
OSPF protocol packet |
protocol:89
Source IP :发送报文的出接口地址
Destination IP:224.0.0.5;224.0.0.6;以组播的形式在设备中传输数据;TTL=1;
OSPF报文在一个广播域下传递数据。
在每个接口建立连接前需要先发送组播报文,确认自己所在的广播域里面有没有自己的邻居或者邻接关系。
在发送组播数据时,ttl=1,也就是说只发送一次,确认关系之后会形成相应的表项。
在这一过程中可以称之为物理意义上的“泛洪”。
组播报文是在同一个区域(广播域)下发送。
OSPF的router id和设备的router id不一样。
router-ID的配置方式:1.人为配置;
2.自动产生;
系统的router-ID,设备会自动产生,会设置为设备上第一个UP的接口,若多个接口同时UP,会设置为最大的地址。
Display router id 只能查看该设备的router id。
Display ospf peer 可以查看ospf的邻居关系。
3.OSPF的区域号:area;区域号相同则为同一区域;LSA的同步条件:在同一区域;LSA同步之后才会同步LSDB。
骨干区域为区域0;是OSPF里面必须要有的区域,各区域都要与其互联。
非骨干区域为区域1、2、3…;统称为非0区域,这些区域可以相互间不连通,不建立邻居或者邻接关系。
SPF算法会在同一区域内防环,整个拓扑结构是通过是否为骨干区域防环。
同区域号的作用:设备间互相同步LSA以及LSDB信息。
一个区域内可以有多个路由器/广播域。
不同区域通过设备互联,但是不会同步LSDB,也就是说只会建立邻居关系。
相连的设备同时运行OSPF协议,并且处于同一区域才会互相同步LSDB。
LSA同步的前提是处于同一个区域。
4.OSPF建立关系:
OSPF信息传递、交互都是通过接口来宣告,建立关系的。
network:宣告;完成OSPF的基本配置。
1.区域下宣告:【区域0模式】network 接口信息 反掩码信息
取消宣告:
一次性宣告该设备所有接口在OSPF中:【区域0】network 0.0.0.0 0.0.0.0
2.接口下宣告:【接口模式】ospf enable 10 area 0
接口下宣告的前提是全局开启了OSPF协议,建立了该进程,创建了区域0。
进程号可以在不同的接口下宣告。
反掩码:255.255.255.255—255.255.255.0=0.0.0.255(使用全1减去该地址的掩码信息)
hello报文存在于前三种状态,用来发现和维持OSPF的邻居关系。
DD报文存在于Exstart、Exchange两种状态,DD报文是一种单播方式,只能在两台设备之间发送报文,用于描述LSDB的摘要信息。
LSR、LAU、LSACK三种报文在loading状态下同步LSDB。
最终到达full状态,建立邻接关系。
hello包:
down:并没有发现任何设备。
init:收到了对方的hello包,但是没在active-neighbor看到自己的RID。
2-way:收到了对方的hello包,并且在active-neighbor中看到了自己的RID。
Exstart:进行主从关系的选举,在该状态下,使用DD报文进行选举,此时是空DD。
Exchange:发送的OSPF的DD报文中,携带LSA的摘要信息,进入该状态。
Loadig:通过查看DD报文,得知本地没有LSA信息,发送报文开始请求。
LSR:请求自己所需的LSA(摘要)
LSU:向对方发送请求的LSA(详细信息)
LSACK:已经收到对方的LSU
Full :所有的LSU都确认之后,双方达到FULL状态。
建立邻接关系
进行LSDB同步前需要先进行主从选举,保证同步时的可靠;尽量不同步相同信息;
在exstartt状态下发送DD报文,选举主从关系,首先发送一组不携带任何数据的空DD报文选举主从,之后交互摘要
发送空DD报文在2-way状态建立邻居关系之后发送。
路由器使用DD报文来进行主从路由器的选举和数据库摘要信息的交互。
DD报文包含LSA的头部信息,用来描述LSDB的摘要信息。
LSR(链路状态请求报文)用于向对方请求所需的LSA;
LSU(链路状态更新报文)用于向对方发送其所需的LSA;
LSACK(链路状态确认报文)用于向对方发送收到的LSA的确认。
LSDB同步后进入full状态。
邻居关系和邻接关系的区别:
只要双方都是2-way状态才会建立邻居关系,双方达到full状态建立邻接关系。
主从关系的确定:比较两者的RID,大的为主,小的为从。
同一个广播域中,路由器的数量过多,建立的邻接关系越多,交互的报文越多,占用的链路带宽越多,影响设备的处理性能。
邻接关系的数量:n*(n-1)/2;n:在一个广播域中运行的ospf的路由器数量。
DR:指定路由器
BDR:备份指定路由器
DR-OTHER:非指定/备份路由器
为了保证DR的稳定性,保障在DR故障之后网络不会出现太长的故障时间,提前选举BDR,在DR失效之后,BDR成为DR,重新选举BDR。
当网络中存在DR,但是没有BDR,会从网络中选出新的BDR。
DR和BDR不允许被抢占,在网络拓扑结构中选出DR和BDR的情况下,即使是有了新设备的加入,为了保护网络的稳定性,不会重新选举。
DR/BDR之间都会建立full邻接关系。
DR-OTHER之间只会建立2-way邻居关系。
在一个广播域中只有一个DR,和其他运行了ospf协议的设备建立了邻接关系,其他设备之间只需要建立邻居关系即可。
设备与DR和BDR都会建立邻接关系,使得在DR故障之后,整个网络结构还能运行。
以太网链路默认是BMA(广播型网络)类型,必须要选举DR、BDR。
接口决定网络类型。
选举时,会先选举BDR,如果环境中没有比BDR还大的设备,就把BDR选为DR,再选举一个BDR;反之,最大的设备就为DR。
DR可以减少广播型网络中的邻接关系的数量。
在一个BMA网络中,接口优先级最大的设备不一定成为DR,要看接入时间。
选举时间:40s,4次hello包的发送时间,在40秒之内选举出DR和BDR。
接口开始运行OSPF,就开始选举DR和BDR。
DR和BDR的选举发生在2-way状态下,保证在一个广播域之内减少无用的泛洪的OSPF报文的流量。
主从选举发生在exstart状态,保证数据库同步时的可靠、有序。
主从关系是两台设备之间选举;DR、BDR是在整个网络中选举。
ENSP小实验——建立两种关系以及选举出该网络结构中的DR和BDR_m0_58475926的博客-CSDN博客
今天的笔记就到此结束啦,有什么不正确的地方看到的兄弟们要及时告诉我呀,我好改正一番呐~
TIPS:OSPF协议的简单认识;选举主从关系和DR、BDR的过程以及两者的区别;小实验选举DR、BDR;宣告方式;OSPF的五种报文、七种状态,两种关系建立的过程。