ospf数据库同步过程_OSPF的概念

ospf数据库同步过程_OSPF的概念OSPF协议之链路数据库同步OSPF如何实现链路状态数据库的同步-链路信息主要包括:1、链路的类型;2、接口IP地址及掩码;3、链路上所连接的邻居路由器;4、链路的带宽(开销)。区别于RIP路由器之间交互的路由信息,OSPF路由器同步的是最原始的链路状态信息,而且对于邻居路由器发来的链路状态信息,仅作转发。最终所有路由器都将拥有一份相同且完整的原始链路状态信息。为…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

OSPF协议之链路数据库同步

  • OSPF如何实现链路状态数据库的同步
    – 链路信息主要包括:

    1、链路的类型;
    2、接口IP地址及掩码;
    3、链路上所连接的邻居路由器;
    4、链路的带宽(开销)。

区别于RIP路由器之间交互的路由信息,OSPF路由器同步的是最原始的链路状态信息,而且对于邻居路由器发来的链路状态信息,仅作转发。最终所有路由器都将拥有一份相同且完整的原始链路状态信息

  • 为什么要有链路的类型呢?

    网络技术的发展包含了设备、链路以及通信协议的发展。设备性能日趋提高,互联链路也从串行链路、ATM、帧中继发展到当前的以太网、xPON、SDH、MSTP、OTN等。技术升级不是一蹴而就的,而是一个循序渐进的过程。各种不同的物理链路各具特点,也正因为如此,一个成熟的路由协议必须能够根据不同物理链路特性进行适配。

  • OSPF的网络类型:

    1、 广播型(Brodcast):底层链路层协议为以太网
    2、 点到点(P2P):底层链路协议为PPP、HDLC协议
    3、 点到多点(P2MP):手工设置
    4、 非广播多路访问网络(NBMA):底层链路为FR(帧中继)或ATM协议,不支持广播和组播

  • OSPF的度量方式

    1、OSPF在计算接口的cost时,cost=参考带宽/实际带宽,默认参考带宽为100M。当计算结果有小数位时,只取整数位;结果小于1时,cost取1。

    2、若需要调整接口cost值有两种方式

    3、直接在接口下配置,需要注意的是,配置的cost是此接口最终的cost值,作用范围仅限于本接口。

    4、修改OSPF的默认参考带宽值,作用范围是本路由器使能OSPF的接口。建议参考整个网络的带宽情况建立参考基线,所有路由器修改相同的参考带宽值,从而确保选路的一致性。

    5、OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和,以RTA访问RTC Loopback 1接口192.168.3.3为例,其cost=G1’s cost+G3’s cost

    6、相比于RIP,OSPF的度量方式不仅考虑“跳数”,而且还考虑了“带宽”,比RIP更可靠的选择最优的转发路径。
    在这里插入图片描述

那么OSPF路由器怎么表达链路状态信息并完成同步呢?

在这里插入图片描述
1、RIP路由器之间是基于UDP 520的报文进行通信,OSPF也有其规定的通信标准。OSPF使用IP承载其报文,协议号为89

2、在OSPF Packet部分,所有的OSPF报文均使用相同的OSPF报文头部:

3、Version :对于当前所使用的OSPFv2(还有一个版本为OSPFv3),该字段的值为2。

4、Type:OSPF报文类型。

5、Packet length:表示整个OSPF报文的长度,单位是字节。

6、Router ID:表示生成此报文的路由器的Router ID。

7、Area ID:表示此报文需要被通告到的区域。

8、Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部。

9、Auth Type:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证。

10、Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同。
在这里插入图片描述

  • 状态含义:

    1、ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。Master/Slave(主从)关系是在此状态下形成的,初始DD序列号也是在此状态下确定的。在此状态下发送的DD报文不包含链路状态描述

    2、Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。

DD报文:数据库描述报文,作用:减少LSA泛洪。

3、Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。

5、Full:LSDB同步过程完成,路由器与邻居之间形成了完全的邻接关系。

备注:当路由器中,查看OSPF状态时显示Full说明该该路由器和邻居建立邻接关系。

  • LSDB同步过程如下(重点):

    1、RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2并且二者已建立了邻居关系。当RTA的邻居状态变为ExStart后,RTA会发送第一个DD报文。此报文中,DD序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文,M-bit设置为1,表示后续还有DD报文要发送,MS-bit设置为1,表示RTA宣告自己为Master(主从关系)。

    2、当RTB的邻居状态变为ExStart后,RTB会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(I-bit=1,M-bit=1,MS-bit=1,含义同上)。由于RTB的Router ID较大,所以RTB将成为真正的Master。收到此报文后,RTA会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。

    3、当RTA的邻居状态变为Exchange后,RTA会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为RTB在步骤2中使用的序列号Y,I-bit=0,表示这不是第一个DD报文,M-bit=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit=0,表示RTA宣告自己为Slave。收到此报文后,RTB会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。

    4、当RTB的邻居状态变为Exchange后,RTB会发送一个新的DD报文,此报文包含了LSDB的摘要信息,DD序列号设置为Y+1, MS-bit=1,表示RTB宣告自己为Master。

    5、虽然RTA不需要发送新的包含LSDB摘要信息的DD报文,但是作为Slave,RTA需要对Master发送的每一个DD报文进行确认。所以,RTA向RTB发送一个新的DD报文,序列号为Y+1,该报文内容为空。发送完此报文后,RTA产生一个Exchange-Done事件,将邻居状态变为Loading。RTB收到此报文后,会将邻居状态变为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。

在这里插入图片描述
6、RTA开始向RTB发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。

7、RTB向RTA发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。RTA在完成LSU报文的接收之后,会将邻居状态从Loading变为Full。

8、RTA向RTB发送LSAck报文,作为对LSU报文的确认。RTB收到LSAck报文后,双方便建立起了完全的邻接关系。

从建立邻居关系到同步LSDB的过程较为复杂,错误的配置或设备链路故障都会导致无法完成LSDB同步。为了快速排障,最关键的是要理解不同状态之间切换的触发原因。
在这里插入图片描述

  • 这是形成邻居关系的过程和相关邻居状态的变换过程。

    1、Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和Router DeadInterval间隔相同。

    2、Attempt此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果Router DeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

    3、Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。

    4、 2-Way Received:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way

    5、2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

    6、1-Way Received:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。

    7、ExStart这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

    8、Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。

    9、Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。

    10、Full:两台路由器的LSDB已经同步。
    在这里插入图片描述

  • LSA:链路状态信息

    LSA(Link State Advertisement)是路由器之间链路状态信息的载体。LSA是LSDB的最小组成单位,也就是说LSDB由一条条LSA构成的。

  • 所有的LSA都拥有相同的头部,关键字段的含义如下:

    1、LS age:此字段表示LSA已经生存的时间,单位是秒。

    2、LS type:此字段标识了LSA的格式和功能。常用的LSA类型有五种。

    3、Link State ID:此字段是该LSA所描述的那部分链路的标识,例如Router ID等。

    4、Advertising Router:此字段是产生此LSA的路由器的Router ID。

    5、LS sequence number:此字段用于检测旧的和重复的LSA。

LS type,Link State ID和Advertising Router的组合共同标识一条LSA。

LSDB中除了自己生成的LSA,另一部分是从邻居路由器接收的。邻居路由器之间相互更新LSA必然需要一个“通道”。

  • 持续更新

    各位观看学习交流的小伙伴们,如果还没看爽的话,点开我的头像,有更多关于计算机网络的详细资料,以及更多惊喜等着你来赏析!

    如果大家觉得有帮助的话,可以动动你们的金手指点个赞,让更多和你一样优秀的人看见欧!!!

  • 给未来自己的三行情书

    笔耕不断,夜以继日!
    生命不息,奋斗不止!!
    只有度过了一段连自己都被感动的日子,才会变成那个最好的自己!!!

你们说呢?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181645.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux文件锁

    Linux文件锁翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在某一时刻,他只能拥有一个写者。

    2022年6月28日
    42
  • 5V输入升压双节锂电管理芯片_锂电池升压电路

    5V输入升压双节锂电管理芯片_锂电池升压电路新推出的一款高效率、直流升压稳压电路GS3662D。输入电压范围可由最低3.7伏特到最高42伏特,输出电压3.7–42V可调整且内部MOS输出开关电流可高达2A,非常适合于数码便携产品电池供电,3G网络产品,数码相机,LCD液晶屏背光电路,太阳能照明路灯,网络通讯等产品的电压转换。GS3662D采用标准的SOP-8无铅封装,应用电路非常简单,外围器件极少。主营产品:锂电充电管理IC双节锂电8.4V单节锂电充电镊镉电池充电超低功耗鼠标升压ICDC-DC稳压IC车充IC车充方案…

    2022年10月7日
    0
  • Win7与debian6搭建双系统(手动修复启动项)[通俗易懂]

    Win7与debian6搭建双系统(手动修复启动项)[通俗易懂]因为实验需要,要在一台机器上搭建win7和debian6的双系统。下面记录一下系统搭建过程。1.安装Windows764位版。一切按照默认选项进行安装,系统安装在第一个分区。2.进入windows7系统,使用分区工具在磁盘的尾部分出两个FAT32分区(这里为D和E),其中D盘为linux安装分区,E盘将作为swap分区。3.用光盘或者U盘安装debian6.0.5,在选

    2022年10月18日
    0
  • noip2013普及组复赛答案_noip2020初赛

    noip2013普及组复赛答案_noip2020初赛Prob.1转圈游戏找到循环节,然后快速幂。代码:#include<cstdio>#include<cstring>#include<iostream>usingnamespacestd;intpos[1000005],vis[1000000];intn,m,k,x,p,mod;intpow(…

    2022年10月25日
    0
  • python 之路,200行Python代码写了个打飞机游戏!「建议收藏」

    python 之路,200行Python代码写了个打飞机游戏!「建议收藏」早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序。很有意思,跟大家分享下。先看一下项目结构再晒下项目成果图实现

    2022年8月5日
    3
  • 卡方检验,U检验,t检验,F检验

    卡方检验,U检验,t检验,F检验卡方检验:主要用于等级资料。t检验:适用于计量资料、正态分布、方差具有齐性的两组间小样本比较。包括配对资料间、样本与均数间、两样本均数间比较三种,三者的计算公式不能混淆。也可以这样理解主要是用于小样本(样本容量小于30)的两个平均值差异程度的检验方法。U检验:检验应用条件与t检验基本一致,只是当大样本时用U检验,而小样本时则用t检验,t检验可以代替U检验。t检验和就是统计量为t,u的假…

    2022年6月19日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号