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

OSPF报文详解

程序员文章站 2022-06-24 14:33:59
OSPF报文详解 一、OSPF 概述 1、IGP (Interior Gateway Protocol),AS内部网关路由协议。 2、链路状态动态路由...

OSPF报文详解

一、OSPF 概述

1、IGP (Interior Gateway Protocol),AS内部网关路由协议。

2、链路状态动态路由协议。

3、IP 协议号89。

4、分area。area由一些network range组成。area 0 为骨干区域。同一area内的router 链路状态数据库需要保持同步。

5、使用hello,Database Description,Link State Request,Link State Update,Link State Acknowledgment 这5中packet来发现和建立邻接关系,并交换LSA(Link State Advertisement),同步链路状态数据库。

6、使用5中LSA来描述area 内的拓扑结构,以及AS内其他area的路由,及AS内从外部AS学到的路由:1).Router links advertisements; 2).Network links advertisements; 3).Summary link advertisements; 4).ASBR-Summary link advertisements; 5).AS external link advertisements.

7、使用链路状态数据库存储LSA,并使用SPF(Shortest Path First)算法。以自己为根,计算出到目的网络的无环的最短路径树。

二、OSPF Packet

2.1 OSPF 报文公共header

2.1.1 作用

封装OSPF packet,表明packet的类型,来源,来源区域。也可以进行认证。

2.1.2 字段说明

Type:表明header下面跟的packet的类型(1-Hello;2-Database Description;3-Link State Request;4-Link State Update;5-Link State Acknowledgment)

Router ID:路由器在区域内的唯一标识,可用路由器上的interface IP.

Area ID: 发送该OSPF Packet的router interface 所属的area.

2.2 OSPF Hello Packet

作用:发现邻居,选举DR/BDR(multi-access network),建立双向通信关系。

字段说明:

Network Mask:发送接口的网络掩码。

HelloInt:Hello包周期发送时间间隔。

Options:可选能力字段,比如E位用来表示区域是否接收AS External link advertisement.

Rtr Pri: Router Priority在选举DR/BDR的时候使用。

DeadInt:收到邻居回复前的最大等待时间,超过改时间认为邻居Dead。

Designated Router:本router认为的该multi-access network里面的指定路由器

Backup Designated Router:本router认为的该multi-access network 里面的备用指定路由器。

Neighbor: 最近收到的hello packet 的 Router ID(发送路由器),如果在收到的hello packet里面看到自己的router ID 则和hello packet的发送路由器进入双向通信(2-way)状态。

2.3 OSPF Database Description Packet

作用:互相交换链路状态数据库里面的LSA信息。比较然后发现自己没有的或者比自己存储的LSA更新的。

字段说明:

Option:作用同Hello里面的。

I/M/MS:I(Init bit,设置为1表示发送的第一个DBD,M(More bit,表示后面还有DBD),MS(Master/Slave,置1表示Master,只有1个master,其他的为slave,在DBD交换过程中,Master先发包含LSA头部信息的DBD包,使用一个DD sequence number,slave 回复DBD包,使用相同的DD sequence number在传递LSA的同时对Master发送的DBD进行确认,以此实现可靠的信息交换)

Link State Advertisement Header: LSA数据包的header,header中包含足够的信息以唯一的确认一个SLA的实例。LSA Header下面会介绍

2.4 OSPF Link State Request

作用:向邻居请求其数据库中自己没有的或者比自己更新的LSA。

字段说明:

LS type:LS 类型如之前介绍的5中LSA。

Link State ID:相应的LS type的LSA header里面包含的Link State ID字段内容。其具体的值在之后介绍LSA Header时介绍。

Advertisiong Router:通告该被请求LSA的Router。

以上三个字段可以唯一的确认要请求的LSA。

2.5 OSPF Link State Update

作用:向邻居发送其请求的LSA(单播),在网络上泛洪LSA(多播,当网络有变动时,发送新的LSA),发送的Upadate packet需要neighbor使用 Ackownledged packet进行确认。如果未收到neighbor的确认,对改neighbor进行单播重传,以确保他们的数据库信息同步。

字段说明:

#advertisements:包含的LSA的数量。

link state advertisements:完整的LSA数据包。

2.6 OSPF Link State Acknowledgment

作用:对收到的Update packet进行确认。字段说明:

#A Link State Advertisement Header:收到的Update packet里面包含的LSA的header,发送回去表示具体的LSA已经收到。

三、 OSPF LSA 封装

上面介绍的5中OSPF packet 是用来建立并维持邻居关系并交换和保持链路状态数据库同步的。其交换和存储的正是下面要介绍的5中LSA。

1、Router links

2、Network links

3、Summary link(IP network)

4、Summary link(ASBR)

5、AS external link

下面通过介绍不同LSA的包的内容,来介绍一下OSPF是如何通过LSA来描述area 的拓扑,及area内包含的网段。并通过LSA来学习area 外部,AS外部的路由。

3.1 OSPF LSA Common Header

作用:通过LS type,Link State ID,Advertising Router, 来唯一的确认一个LSA,通过LS age,LS sequence number 用来唯一确认该LSA最新的实例。

字段说明:

LS age:LSA被生成以后到现在的时间。

Options:可选的能力支持,同Hello。

LS type:头部下面跟随的LSA的类型(1-Router links;2-Network links;3-Summary links(IP network);4-Summary link(ASBR);5-AS external link)

Link State ID:表示该LSA描述的网络环境(internet environment),根据不同的LS type,有不同的值,Router links 其值为router's OSPF Router ID; Network links其值为 IP interface address

of the Designated Router;Summary link(3)其值为IP network number;Summary link(4)其值为ASBR's Router ID;AS external link其值为IP network number.

Advertising Router:生成改LSA的router's router ID。

LS sequence number:LSA 序列号用来检测旧的或者重瞳的LSA。

LS checksum:整个LSA的一个校验值。

length:LSA的长度,包括头部。

3.2 Router link advertisement

作用:描述router上属于相应area的interface(or link)的state 和 cost。该Router的所有的属于一个area的link必须被包含在一个Router links advertisement里面。area里面的每个router生成。其link State ID为生成该LSA的路由器的Router ID.

字段说明:

E/B: E表明router是否是ASBR,B表明router是否是ABR

#links:改LSA中包含的LINK的数量。

Type:link的类型 1-Point-to-piont;2-transit network;3-stub network;4-Virtual link.

Link ID:定义该link连接的对象,针对不同的link type其值不同,P-2-P其值为Neighboring router's ID;Transit-network其值为IP address of Designated Router;Stub-network其值为IP network/sunet number;Virtrual Link 其值为Neighboring router's ID.

Link Data:其值也根据链路类型来确定:Stub-network其值为network mask;其他类型该值为router 关联接口的IP 地址。

TOS 0 metric: TOS(Type of Service在IP里面定义的服务类型)0 的metric 值。也就是cost。

3.3 Network link advertisement

作用:由transit-network(multi-access network)的Designated Router生成,描述所有连接到该multi-access network的router。其Link State ID 为DR's interface ip.

字段说明:

Network Mast:transit-network 的网络掩码。

Attached Router:附加(连接)在该multi-access network的路由器的router-id ,包括Designated Router 其自己的router ID.

3.4 Summary link advertisement

作用:由ABR(Area Border Router)生成,一个Summary links advertisement 只能包含一条属于本AS但是是area外的destination route。其lsa header里的Link State ID就是其要通告的destination route(IP network number)

字段说明:

Network Mast:Link State ID 里面IP network number 的网络掩码。IP network number+ Network Mask 形成该LSA传递的路由的具体的目标网络。

TOS/metric:该路由针对于不同的TOS的metric值。

TYPE-4

作用:由ABR生成告诉区域内的路由器通告AS external link advertisements 的ASBR(Autonomous System Boundary Router)的位置。其LSA header 里面Link State ID的值为 ASBR的 Router ID.

字段说明:

Network Mask: 在该类型的SLA里,该字段没有意义,必须置0.

3.5 AS External Link advertisement

作用:由ASBR生成,一个AS external links advertisement 只能包含一条本AS外部的destination route。其lsa header里的Link State ID就是其要通告的destination route(IP network number)

字段说明:

Network Mast:Link State ID 里面IP network number 的网络掩码。IP network number+ Network Mask 形成该LSA传递的路由的具体的目标网络。

E:externel metric 类型。置1表示Type2 external metric(只使用外部初始的cost,改路由在AS内部传递其metric不随着内部路径成本的增加而增加)。置0表示Type 1 external metric(意思是路由的metric随着内部路径成本的增加而增加)

TOS/metric:该路由针对于不同的TOS的metric值。

Forwarding address:第三方转发地址。数据包应该被发送到该地址进行下一步的转发,而不是发送到ASBR上。如果改地址为0.0.0.0,则数据包路由到ASBR上,之后再进行下一步的转发。

四、OSPF 工作原理

OSPF是如何通过5中LSA来构建area 拓扑和学习路由的:

其实网络就是由点(路由器以及附着在路由上的stub network)和线(link/network)组成。

OSPF Router通过Router LSA学习到一下信息:1)、标识出来一个路由器(Router ID);2)router 上的stub network比如interface vlan,loopback interface;3)、和point-to-point link 网段连接的Router的 Router ID.

OSPF Router通过Network LSA学习到multi-access network 里面附着的Router。

在同一个区域内的所有OSPF Router的LSDB同步以后,Router 就可以计算出一张完成的区域内路由器连接拓扑图了。到该area内的目的网络的路由,OSPF Router 以自己为根根据不同链路的cost 最后计算出一条到该目的地网络的最短路径。

area 外部但是属于AS内部的目的网络路由,区域内的路由器通过ABR通告的summary LSA 来学习到(ABR就是一个AREA 的出口)

AS外部的路由,AS内部的路由器通过ASBR通告的 AS external LSA 来学习到。ASBR就是一个AS的出口。