OSPF协议工作原理.docx
《OSPF协议工作原理.docx》由会员分享,可在线阅读,更多相关《OSPF协议工作原理.docx(12页珍藏版)》请在冰豆网上搜索。
![OSPF协议工作原理.docx](https://file1.bdocx.com/fileroot1/2023-2/6/aa8c6ab9-e7dd-4fe7-9b18-9a523a41d549/aa8c6ab9-e7dd-4fe7-9b18-9a523a41d5491.gif)
OSPF协议工作原理
编号:
_______________
本资料为word版本,可以直接编辑和打印,感谢您的下载
OSPF协议工作原理
甲方:
___________________
乙方:
___________________
日期:
___________________
说明:
本合同资料适用于约定双方经过谈判、协商而共同承认、共同遵守的责任与义务,同时阐述确定的时间内达成约定的承诺结果。
文档可直接下载或修改,使用时请详细阅读内容。
OSPF协议工作原理
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用丁同一个路由域内。
在这里,路由域是指一个自治系统(Autonomous
System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF
路由器正是通过这个数据库计算出其OSPF路由表的。
OSPF(OpenShortestPathFirst开放式最短路径优先)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内决策路由。
链路是路由器接口的另一种说法,因此OSP也称为接口状态路由协议。
OSPF!
过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPFF&由器使用这些最短路径构造路由表。
OSPF路由协议是一种典型的链路状态(LinOSPF(OpenShortestPathFirst开放式最短路径优先)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内决策路由。
链路是路由器接口的另一种说法,因此OSP也称为接口状态路由协议。
OSPF!
过路由
器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF&由器使用这些最短路径构造路由表。
OSP超由协议是一种典型的链路状态
(Link-state)的路由协议,一般用于同一个路由域内。
在这里,路由域是指一个自治系统
(AutonomousSystem),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSP昭由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSP昭由器正是通过这个数据库计算出其OSP骼由表的。
作为一种链路状态的路由协议,OSPF字链路状态广播数据包LSA(LinkStateAdvertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。
运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
一OSPF的数据包
OSPF勺包类型:
1HELLO12DatabaseDescription数据库的描述DBD可靠
3Link-stateRequest链路状态请求包
LSR可靠
4Link-stateUpdate链路状态更新包
LSU可靠
5Link-stateAcknowledment链路状态确
认包LSACK
1.Hello协议的目的:
1.用于发现邻居
2.在成为邻居之前,必须对Hello包里的一些参数协商成功
3.Hello包在邻居之间扮演着keepalive的角色
4.允许邻居之间的双向通信
5.它在NBMA(NonbroadcastMultiaccess)网络上选举DR和BDR(NBM冲默认30s发送一次,多路访问和点对点网络上默认10s发送一次)
2.HelloPacket包含以下信息:
1.源路由器的RID
2.源路由器的AreaID
3.源路由器接口的掩码
4.源路由器接口的认证类型和认证信息
5.源路由器接口的Hello包发送的时间间
隔
6.源路由器接口的无效时间间隔
7.优先级
8.DR/BDR
9.五个标记位(flagbit)
10.源路由器的所有邻居的RID
二OSPF的网络类型
OSP淀义的5种网络类型:
1.点到点网络,比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5,这个组播地址称为AllSPFRouters.
2.广播型网络,比如以太网,TokenRing和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR勺发送的OSP电的目标地址为224.0.0.5,运载这些OSP电的帧的目标MAC地址为0100.5E00.0005;而除了DR/BDRZ外的OSP电的目标地址为224.0.0.6,这个地址叫AllDRouters.
3.NBM阚络,比如X.25,FrameRelay,和ATM不具备广播的能力,因此邻居要人工来指
定,在这样的网络上要选举DR和BDR,OSP包采用unicast的方式
4.点到多点网络是NBM舸络的一个特殊配置,可以看成是点到点链路的集合.在这样的网络上不选举DR和BDR.
5.虚链接:
OSPF包是以unicast的方式发送
所有的网络也可以归纳成2种网络类型:
1.传输网络(TransitNetwork)
2.末节网络(StubNetwork)
三OSPF的DRMBDR
OSP昭由器在完全邻接之前,所经过的几个状态:
1.Down:
初始化状态.
2.Attempt:
只适于NBM舸络,在NBM舸
络中邻居是手动指定的,在该状态下,路由器将使用Hellointerval取代Pollinterval来发送Hello包.
3.Init:
表明在Deadinterval里收到了
Hello包,但是2-Way通信仍然没有建立起来.
4.two-way:
双向会话建立.
5.ExStart:
信息交换初始状态,在这个状
态下,本地路由器和邻居将建立Master/Slave关系,并确定DDSequenceNumber,接口等级高的的成为Master.
6.Exchange:
信息交换状态,本地路由器向邻居发送数据库描述包,并且会发送LSR用于请求新的LSA.
7.Loading:
信息加载状态,本地路由器向邻居发送LSR用于请求新的LSA.
8.Full:
完全邻接状态,这种邻接出现在
RouterLSA和NetworkLSA中.
在DR和BDRH现之前,每一台路由器和他的邻居之间成为完全网状的OSP麻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA.而且在多址网络中,还存在自己发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的拷贝,所以基于这种考虑,产生了DR和BDR.
DR将完成如下工作:
1.描述这个多址网络和该网络上剩下的其他相关路由器.
2.管理这个多址网络上的flooding过程.
3.同时为了冗余性,还会选取一个BDR作为双备份之用.
DRBD破取规则:
DRBDR选取是以接口状态机的方式触发的.
1.路由器的每个多路访问(multi-access)接口都有个路由器优先级(RouterPriority),8
位长的一个整数,范围是0到255,Cisco路由器默认的优先级是1优先级为0的话将不能选举为DR/BDR优先级可以通过命令ipospfpriority进行修改.
2.Hello包里包含了优先级的字段,还包括了可能成为DR/BDR勺相关接口的IP地址.
3.当接口在多路访问网络上初次启动的时
候,它把DR/BD础址设置为0.0.0.0,同时设置等待计时器(waittimer)的值等于路由器无效
间隔(RouterDeadInterval).
DRBDR^取过程:
1.在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BD商段,列出所有可以参与DR/BD睡举的邻居.所有的路由器声明它们自己就是DR/BDR(Hello包中
DR字段的值就是它们自己的接口地址;BDR字段的值就是它们自己的接口地址)
2.从这个有参与选举DR/BD戚的列表中,创建一组没有声明自己就是DR的路由器的子集(声明自己是DR的路由器将不会被选举为BDR)
3.如果在这个子集里,不管有没有宣称自己就是BDR只要在Hello包中BDR?
段就等于自己接口的地址,优先级最高的就被选举为BDR如果优先级都一样,RID最高的选举为BDR
4.如果在Hello包中DR字段就等于自己接口的地址,优先级最高的就被选举为DR;如果优先级都一样,RID最高的选举为DR如果选出的DR不能工作,那么新选举的BD瞰成为DR再重新选举一个BDR
5.要注意的是,当网络中已经选举了DR/BD甫,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的
6.DR/BDR选举完成后,DRother只和DR/BDF^成邻接关系.所有的路由器将组播Hello包到AllSPFRouters地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将洪泛updatepacket至U224.0.0.5;DRother只组播
updatepacket到AllDRouter地址224.0.0.6,只有DR/BD褴听这个地址.
四OSPF邻居关系
邻接关系建立的4个阶段:
1.邻居发现阶段
2.双向通信阶段:
Hello报文都列出了对方的RID,则BC完成.
3.数据库同步阶段:
4.完全邻接阶段:
fulladjacency
邻居关系的建立和维持都是靠Hello包完成的,在一般的网络类型中,Hello包是每经过1个HelloInterval发送一次,有1个例外:
在
NBM舸络中,路由器每经过一个PollInterval周期发送Hello包给状态为down的邻居(其他类型的网络是不会把Hello包发送给状态为down的路由器的).Cisco路由器上PollInterval默认60sHelloPacket以组播的方式发送给224.0.0.5,在NBMA!
型,点到多点和虚链路类型网络,以单播发送给邻居路由器。
邻居可以通过手工配置或者Inverse-
AR咳现.
OSPF乏洪
Flooding采用2种报文
LSUType4---链路状态更新报文
LSAType5---链路状态确认报文
在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5.
在P-MP和虚链路网络,路由器以单播方式将更新报文发送至邻接邻居的接口地址.
在广播型网络,DRother路由器只能和DR&BD隔成邻接关系,所以更新报文将发送到
224.0.0.6,相应的DR以224.0.0.5泛洪LSA并且BDE接收LSA不会确认和泛洪这些更新,除非DR失效在NBM屋网络,LSA以单播方式发送到DRBDR并且DR以单播方式发送这些更新.
LSA通过序列号,校验和,和老化时间保证LSD畔的LSA是最新的,
Seq:
序列号(Seq)的范围是0x80000001到0x7fffffff.
Checksum:
校验和(Checksum)计算除了Age字段以外的所有字段,每5分钟校验1次.
Age:
范围是0到3600秒,16位长.当路由器发出1个LSA后,就把Age设置为0,当这个LSA经过1台路由器以后,Age就会增加1个LSA保存在LSDE^的时候,老化时间也会增加.
当收到相同的LSA的多个实例的时候,将通过下面的方法来确定哪个LSA是最新的:
1.比较LSA实例的序列号,越大的越新.
2.如果序列号相同,就比较校验和,越大越
3.如果校验和也相同,就比较老化时间,如果只有1个LSA拥有MaxAge(3600秒)的老化时间,它就是最新的.
4.如果LSA老化时间相差15分钟以
上,(叫做MaxAgeDiff),老化时间越小的越新.
5.如果上述都无法区分,则认为这2个LSA是相同的.
五OSPF区域
区域长度32位,可以用10进制,也可以类似于IP地址的点分十进制分3种通信量
1.Intra-AreaTraffic:
域内间通信量
2.Inter-AreaTraffic:
域间通信量
3.ExternalTraffic:
外部通信量
路由器类型
1.InternalRouter:
内部路由器
2.ABR(AreaBorderRouter):
区域边界路
由器
3.BackboneRouter(BR):
骨干路由器
4.ASBR(AutonomousSystemBoundaryRouter):
自治系统边界路由器。
虚链路(VirtualLink)
以下2中情况需要使用到虚链路:
1.通过一个非骨干区域连接到一个骨干区
域.
2.通过一个非骨干区域连接一个分段的骨干区域两边的部分区域.
虚链接是一个逻辑的隧道(Tunnel),配置虚链接的一些规则:
1.虚链接必须配置在2个ABR±间.
2.虚链接所经过的区域叫TransitArea,它必须拥有完整的路由信息.
3.TransitArea不能是StubArea.
4.尽口的避免使用虚链接,它增加了网络的复杂程度和加大了排错的难度.
OSP取域—OSPF勺精华
Link-state路由在设计时要求需要一个层
次性的网络结构.
OSP啊络分为以下2个级别的层次:
骨干区域(backboneorarea0)
非骨干区域(nonbackboneareas)
在一个OSP田域中只能有一个骨干区域,
可以有多个非骨干区域,骨干区域的区域号为
0。
各非骨干区域间是不可以交换信息的,他们只有与骨干区域相连,通过骨干区域相互交换信息。
非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-AreaBorderRouters),只有ABRs记载了各区域的所有路由表。
各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域
的ABRs由ABR施到骨干区域的BR再由骨干区域的BR连到要到达的区域。
骨干区域和非骨干区域的划分,大大降低了区域内工作路由的负担。
六LSA类型
1,类型1:
RouterLSA:
每个路由器都将产生RouterLSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和开销.
2,类型2:
NetworkLSA:
在每个多路访问网络中,DR都会产生这种NetworkLSA,它只在产生这条NetworkLSA的区域泛洪描述了所有和它相连的路由器(包括DR本身).
3,类型3:
NetworkSummaryLSA:
由ABR路由器始发,用于通告该区域外部的目的地址.
当其他的路由器收到来自ABR勺Network
SummaryLSA^后,它不会运行SPF算法,它只简单的加上到达那个ABR勺开销和Network
SummaryLSA中包含的开销,通过ABR到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(fullroute)实际上是距离矢量路由协议的行
为
4.类型4:
ASBRSummaryLSA由AB眼出,ASBR匚总LSA除了所通告的目的地是一个ASBRJ不是一个网络外,其他同NetworkSummaryLSA.
5.类型5:
ASExternalLSA:
发自ASBR#由器,用来通告到达OSPFW主系统外部的目的地,或者OSPFg主系统那个外部的缺省路由的LSA.这种LSA将在全AS内泛洪
6.类型6:
GroupMembershipLSA
7.类型7:
NSSAExternalLSA:
来自非完全Stub区域(not-so-stubbyarea)内ASBFR#由器始发的LSA通告它只在NSS职域内泛洪,这是与LSA-Type5的区别.
不透明LSA
8.类型8:
ExternalAttributesLSA
9.类型9:
OpaqueLSA(link-localscope,)
10.类型10:
OpaqueLSA(area-localscope)
11.类型11:
OpaqueLSA(ASscope)
OSP沫节区域
这种区域不接受本自治系统以外的路由信息,位于Stub边界的ABR字宣告一条默认路由到所有的Stub区域内的内部路由器.
末节区域限制:
a)所有位于stubarea的路由器必须保持LSDB言息同步,并且它们会在它的Hello包中设置一个值为0的E位(E-bit),因此这些路由器是不会接收E位为1的Hello包,也就是说在stubarea里没有配置成stubrouter的路由器将不能和其他配置成stubrouter的路由器建立邻接关系.
b)不能在stubarea中配置虚链接
(virtuallink),并且虚链接不能穿越stub
area.
c)stubarea里的路由器不可以是
ASBR.stubarea可以有多个ABR但是由于默认
路由的缘故,内部路由器无法判定哪个ABRt是
到达ASBR勺最佳选择.
完全末节区域:
不接受外部自治系统路由或来自本自治系统内其他区域的的汇总路由(Cisco专有特性)。
次末节区域(NSSA:
允许外部路由被宣告OSPK中来,同时保留StubArea的特征,因此NSS陋可以有ASBR,ASBK使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换为Type5.7类LSA通过OSPR艮头的一个P-bit作Tag,如果NSS陋的ABR攵至UP位设置为1的NSSAExternalLSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到其他区域中;如果收到的是P位设置为0的NSSAExternalLSA,它将不会转换成类型5的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到NSSA勺外部NSS磕IOS11.2后支持.