zoukankan      html  css  js  c++  java
  • 网络-路由交换-路由基础-华为-OSPF报文

    3.2 OSPF报头及各种报文格式

       3.2.1 OSPF协议报头格式

    OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

    OSPF这五种报文具有相同的报文头格式,长度为24字节。

    图1 OSPF报文头格式 

    字段

    长度

    含义

    Version

    1字节

    版本,OSPF的版本号。对于OSPFv2来说,其值为2。

    Type

    1字节

    类型,OSPF报文的类型,有下面几种类型:

    • 1:Hello报文;
    • 2:DD报文;
    • 3:LSR报文;
    • 4:LSU报文;
    • 5:LSAck报文。

    Packet length

    2字节

    OSPF报文的总长度,包括报文头在内,单位为字节。

    Router ID

    4字节

    发送该报文的路由器标识。

    Area ID

    4字节

    发送该报文的所属区域。

    Checksum

    2字节

    校验和,包含除了认证字段的整个报文的校验和。

    AuType

    2字节

    验证类型,值有如下几种表示, 0:不验证;1:简单认证;2:MD5认证。

    Authentication

    8字节

    鉴定字段,其数值根据验证类型而定。当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。

    MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。

       3.2.2 OSPF hello报文及格式

             建立和维护相邻邻居路由器之间的邻接关系。

             内容:定时器设置、DR、BDR及路由器已知的邻居路由器。

             P2P和广播类型网络中,hello包以组播(224.0.0.5)形式HelloInterval周期(默认10S)一次;P2MP和NBMA网络中,以PollInterval为周期(默认60S),单播方式向状态为Down的邻居发送一个Hello报文(其他类型的网络时不会把Hello报文发送给状态为Down的路由器)。如果在设定的DeadInterval时间(通常至少是4*Hello时间)内没有收到对端发送的Hello报文,本地路由器会认为对端路由器无效。

    图1 OSPF Hello报文格式 

    字段

    长度

    含义

    Network Mask

    32比特

    发送Hello报文的接口所在网络的掩码。

    HelloInterval

    16比特

    发送Hello报文的时间间隔。

    Options

    8比特

    可选项:

    • E:允许Flood AS-External-LSAs
    • MC:转发IP组播报文
    • N/P:处理Type-7 LSAs
    • DC:处理按需链路

    Rtr Pri

    8比特

    DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。

    RouterDeadInterval

    32比特

    失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。

    Designated Router

    32比特

    DR的接口地址。

    Backup Designated Router

    32比特

    BDR的接口地址。

    Neighbor

    32比特

    邻居,以Router ID标识。

    图2 OSPF Hello 

       3.2.3 OSPF DD报文及格式

             描述本地路由器的链路状态数据库(LSDB),即本地LSDB中包含哪些LSA。在两个路由器初始化连接时要交换DD报文,以便数据库同步。

             报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。

    图1 DD报文格式 

    字段

    长度

    含义

    Interface MTU

    16比特

    在不分片的情况下,此接口最大可发出的IP报文长度。

    Options

    8比特

    可选项:

    • E:允许Flood AS-External-LSAs;
    • MC:转发IP组播报文;
    • N/P:处理Type-7 LSAs;
    • DC:处理按需链路。

    I

    1比特

    当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。

    M (More)

    1比特

    当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。

    M/S (Master/Slave)

    1比特

    当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。

    DD sequence number

    32比特

    DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。

    LSA Headers

    可变

    该DD报文中所包含的LSA的头部信息。

    报文示例

    图2 OSPF DD报文 

       3.2.4 OSPF LSA报文及格式

             LSR报文用于请求相邻路由器链路状态数据库中的一部分数据。交换完DD报文后,指导对端路由器有哪些LSA是本地LSDB没有的,移机哪些LSA是已经失效的,需要一个LSR报文,向对方请求所需的LSA。

             LSR报文内容包括所需的LSA摘要:其中LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。

     

    字段

    长度

    含义

    LS type

    32比特

    LSA的类型号。

    Link State ID

    32比特

    根据LSA中的LS Type和LSA description在路由域中描述一个LSA。

    Advertising Router

    32比特

    产生此LSA的路由器的Router ID。

    报文示例

    图1 OSPF LSR 

       3.2.5 OSPF LSU报文及格式

             LSU报文是LSR请求报文的应答报文,用来向对端路由器发送所需的真正LSA内容或者泛洪自己更新的LSA,可以是多条LSA完整内容的集合。LSU报文内容部分包括此次一共发送的LSA熟料和每条LSA的完整内容。

             内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。

     

    字段

    长度

    含义

    Number of LSAs

    32比特

    LSA的数量。

    常用的LSA共有5种,分别为:Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA和AS-External-LSA。

    所有的LSA都有相同的报文头:

     

    字段

    长度

    含义

    LS age

    16比特

    LSA产生后所经过的时间,以秒为单位。无论LSA是在链路上传送,还是保存在LSDB中,其值都会在不停的增长。

    Options

    8比特

    可选项:

    • E:允许泛洪AS-External-LSA;
    • MC:转发IP组播报文;
    • N/P:处理Type-7 LSA;
    • DC:处理按需链路。

    LS type

    8比特

    LSA的类型:

    • Type1:Router-LSA
    • Type2:Network-LSA
    • Type3:Network-summary-LSA
    • Type4:ASBR-summary-LSA
    • Type5:AS-External-LSA
    • Type7:NSSA-LSA

    Link State ID

    32比特

    与LSA中的LS Type和LSA description一起在路由域中描述一个LSA。

    Advertising Router

    32比特

    产生此LSA的路由器的Router ID。

    LS sequence number

    32比特

    LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。

    LS checksum

    16比特

    除了LS age外其它各域的校验和。

    length

    16比特

    LSA的总长度,包括LSA Header,以字节为单位。

    Router-LSA

    Router-LSA(Type1):每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。

    图1 Router-LSA格式 

    字段

    长度

    含义

    Link State ID

    32比特

    生成LSA的Router ID。

    V (Virtual Link)

    1比特

    如果产生此LSA的路由器是虚连接的端点,则置为1。

    E (External)

    1比特

    如果产生此LSA的路由器是ASBR,则置为1。

    B (Border)

    1比特

    如果产生此LSA的路由器是ABR,则置为1。

    # links

    16比特

    LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。

    Link ID

    32比特

    路由器所接入的目标,其值取决于连接的类型:

    • 1:Router ID;
    • 2:DR的接口IP地址;
    • 3:网段/子网号;
    • 4:虚连接中对端的Router ID。

    Link Data

    32比特

    连接数据,其值取决于连接的类型:

    • unnumbered P2P:接口的索引值;
    • stub网络:子网掩码;
    • 其它连接:路由器接口的IP地址。

    Type

    8比特

    路由器连接的基本描述:

    • 1:点到点连接到另一台路由器;
    • 2:连接到传输网络;
    • 3:连接到stub网络;
    • 4:虚拟链路。

    # TOS

    8比特

    连接不同的TOS数量。

    metric

    16比特

    链路的开销值。

    TOS

    8比特

    服务类型。

    TOS metric

    16比特

    和指定TOS值相关联的度量。

    Network-LSA

    Network-LSA(Type2):由广播网或NBMA网络中的DR产生,Network-LSA中记录了这一网络上所有路由器的Router ID,描述本网段的链路状态,在所属的区域内传播。

    图2 Network-LSA格式 

    字段

    长度

    含义

    Link State ID

    32比特

    DR的接口IP地址。

    Network Mask

    32比特

    该广播网或NBMA网络地址的掩码。

    Attached Router

    32比特

    连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。

    Summary-LSA格式

    Network-summary-LSA(Type3):描述区域内所有网段的路由,并通告给其他相关区域。

    ASBR-summary-LSA(Type4):描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

    Type3和Type4的LSA有相同的格式,它们都是由ABR产生。

    图3 Summary-LSA格式 

    字段

    长度

    含义

    Link State ID

    32比特

    通告的网络地址。如果是ASBR Summary LSA,此字段表示ASBR的Router ID。

    Network Mask

    32比特

    该广播网或NBMA网络地址的掩码。如果是ASBR Summary LSA,此字段无意义,设置为0.0.0.0。

    metric

    24比特

    到目的地址的路由开销。

    TOS

    8比特

    服务类型。

    TOS metric

    24比特

    和指定TOS值相关联的度量。

    通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。

    AS-External-LSA

    AS-External-LSA(Type5):由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA。

    图4 AS-External-LSA格式 

    字段

    长度

    含义

    Link State ID

    32比特

    通告的网络地址。

    Network Mask

    32比特

    通告的目的地址的掩码。

    E

    1比特

    外部度量值类型:

    • 0:第一类外部路由;
    • 1:第二类外部路由。

    metric

    24比特

    到目的地址的路由开销。

    Forwarding Address

    32比特

    到所通告的目的地址的报文将被转发到这个地址。

    External Route Tag

    32比特

    添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。

    TOS

    8比特

    服务类型。

    TOS metric

    24比特

    TOS附加距离信息。

    Type5的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。

    报文示例

    图5 Network-LSA 

    图6 Router-LSA 

    图7 Summary-LSA 

       3.2.5 OSPF LSAck报文及格式

             LSAck报文是路由器在收到对端发来的LSU报文后发送出的确认报文,内容是需要确认的LSA头部(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送。

     

    图1 OSPF LSAck报文格式 

    字段

    长度

    含义

    LSAs Headers

    可变

    通过LSA的头部信息确认收到该LSA。

     

    LSA报头格式

     

    报文示例

    图2 OSPF LSAck 

  • 相关阅读:
    面试题-JAVA算法题
    分布式
    linux中文件描述符fd和struct file结构体的释放
    Linux字符设备驱动
    Linux内存地址管理概述
    mnist卷积网络实现
    【TensorFlow官方文档】MNIST机器学习入门
    FCN笔记
    datetime.timedelta
    tensorflow中的函数获取Tensor维度的两种方法:
  • 原文地址:https://www.cnblogs.com/laixufie2046/p/10339673.html
Copyright © 2011-2022 走看看