OSPF报文格式(OSPF的报文类型)

报文格式

| Eth | IP | OSPF Header | OSPF Payload |

OSPF报文格式(OSPF的报文类型)

OSPF Header

封装在 IP 中,Protocol=89

Version number:OSPF v2 for IPv4:2;OSPF v3 for IPv6;
Router ID:表示生成此报文的路由器的Router ID。
Area ID:表示此报文需要被通告到的区域。
Type:类型字段。Data 部分的类型,即不同的 OSPF 报文;
Packet length:表示整个OSPF报文的长度,单位是字节。
Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部。
Auth Type:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证。
Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同。

OSPF Payload: Hello

报文的主要作用:
1)邻居发现:自动发现邻居路由器;
2)邻居建立:完成 Hello 报文中的参数协商,建立邻居关系;
3)邻居保持:通过周期性发送和接收,检测邻居运行状态;

在以太网链路上,路由器通常以组播形式来发送 Hello 报文:
1)224.0.0.5的组播地址为OSPF设备的预留IP组播地址。
2)224.0.0.6的组播地址为OSPF DR/BDR的预留IP组播地址。
3)对于不支持组播的链路,OSPF 支持采用单播的方式发送 Hello 报文。

OSPF报文格式(OSPF的报文类型)

OSPF_Header.Type = 1

Open Shortest Path First
    OSPF Header
    OSPF Hello Packet
        Network Mask: 255.255.255.0
        Hello Interval [sec]: 10
        Options: 0x02, (E) External Routing
            0... .... = DN: Not set
            .0.. .... = O: Not set
            ..0. .... = (DC) Demand Circuits: Not supported
            ...0 .... = (L) LLS Data block: Not Present
            .... 0... = (N) NSSA: Not supported
            .... .0.. = (MC) Multicast: Not capable
            .... ..1. = (E) External Routing: Capable
            .... ...0 = (MT) Multi-Topology Routing: No
        Router Priority: 1
        Router Dead Interval [sec]: 40
        Designated Router: 10.0.12.2
        Backup Designated Router: 10.0.12.3
        Active Neighbor: 1.1.1.1
        Active Neighbor: 3.3.3.3
        Active Neighbor: 4.4.4.4

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

Hello Interval:发送 Hello 报文的时间间隔;在以太网中,为 10s 时间;

Options
1)E:是否支持外部路由;两端需要同时支持才能建立邻居关系;
2)MC:是否支持转发组播数据包;
3)N/P:是否为 NSSA 区域;

Router Priority:default=1,用于选举 DR(指定路由器),BDR(备份指定路由器)

Router Dead Interval:通常为 Hello Interval * 4 时间;如果该时间未收到 Hello 则认为邻居关系解除,关系进入 Down 状态;

Designated Router:default=0,经过优先级选举之后,才会有值,为接口地址;

Backup Designated Router:default=0,经过优先级选举之后,才会有值,为接口地址;

Active Neighbor:邻居,以 Router ID 标识;

OSPF Payload: Database Description, DD

用途:OSPF_Header.Type = 2,描述本地 LSDB 摘要信息,其他设备将使用该摘要信息来选择要同步的数据(为了避免全量同步);

在 ExStart 中,主从协商的 DD 报文(First DD):

Open Shortest Path First
	OSPF Header
	OSPF DB Description
		Interface MTU: 0
		Options: 0x02, (E) External Routing
			0... .... = DN: Not set
			.0.. .... = O: Not set
			..0. .... = (DC) Demand Circuits: Not supported
			...0 .... = (L) LLS Data block: Not Present
			.... 0... = (N) NSSA: Not supported
			.... .0.. = (MC) Multicast: Not capable
			.... ..1. = (E) External Routing: Capable
			.... ...0 = (MT) Multi-Topology Routing: No
		DB Description: 0x07, (I) Init, (M) More, (MS) Master
			.... 0... = (R) OOBResync: Not set
			.... .1.. = (I) Init: Set
			.... ..1. = (M) More: Set
			.... ...1 = (MS) Master: Yes
		DD Sequence: 52

在 Exchange 中,包含数据摘要的 DD 报文:

Open Shortest Path First
	OSPF Header
	OSPF DB Description
		Interface MTU: 0
		Options: 0x02, (E) External Routing
			0... .... = DN: Not set
			.0.. .... = O: Not set
			..0. .... = (DC) Demand Circuits: Not supported
			...0 .... = (L) LLS Data block: Not Present
			.... 0... = (N) NSSA: Not supported
			.... .0.. = (MC) Multicast: Not capable
			.... ..1. = (E) External Routing: Capable
			.... ...0 = (MT) Multi-Topology Routing: No
		DB Description: 0x00
			.... 0... = (R) OOBResync: Not set
			.... .0.. = (I) Init: Not set
			.... ..0. = (M) More: Not set
			.... ...0 = (MS) Master: No
		DD Sequence: 52
	LSA-type 1 (Router-LSA), len 72
	LSA-type 1 (Router-LSA), len 72

I(Init):当发送连续多个 DD 报文时,如果是首个 DD 报文,则置为 1,否则置为 0;

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

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

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

Interface MTU:指示在不分片的情况下,此接口最大可发出的IP报文长度。在两个邻居发送DD报文中包含MTU参数,如果收到的DD报文中MTU和本端的MTU不相等,则丢弃该DD报文。在缺省情况下,华为设备未开启MTU检查。

Optinons:字段同Hello报文。

OSPF Payload: Link State Request, LSR

解释:OSPF_Header.Type = 3,向对方请求所需要的 LSA 数据(只有当 DD 报文交换成功后,才会向双方发送 LSR 报文)

OSPF Payload: Link State Update, LSU

解释说明

OSPF_Header.Type = 4;是对 LSR 的响应,其包含对方 LSR 要求的 LSA 数据。

报文示例

Internet Protocol Version 4, Src: 10.0.12.1, Dst: 224.0.0.6
Open Shortest Path First
    OSPF Header
    LS Update Packet
        Number of LSAs: 2
        LSA-type 1 (Router-LSA), len 36
        LSA-type 2 (Network-LSA), len 36
            .000 0000 0000 0001 = LS Age (seconds): 1
            0... .... .... .... = Do Not Age Flag: 0
            Options: 0x02, (E) External Routing
                0... .... = DN: Not set
                .0.. .... = O: Not set
                ..0. .... = (DC) Demand Circuits: Not supported
                ...0 .... = (L) LLS Data block: Not Present
                .... 0... = (N) NSSA: Not supported
                .... .0.. = (MC) Multicast: Not capable
                .... ..1. = (E) External Routing: Capable
                .... ...0 = (MT) Multi-Topology Routing: No
            LS Type: Network-LSA (2)
            Link State ID: 10.0.12.3
            Advertising Router: 3.3.3.3
            Sequence Number: 0x80000002
            Checksum: 0xa966
            Length: 36
            Netmask: 255.255.255.0
            Attached Router: 3.3.3.3
            Attached Router: 1.1.1.1
            Attached Router: 4.4.4.4

结构概览

OSPF报文格式(OSPF的报文类型)

Number of LSAs

Number of LSAs:LSA 的数量;

图示未展示出 Number of LSAs 字段,然后才是多个 LSA Header + Payload 结构。
请结合报文示例部分显示的报文结构进行查看。

LSA Header

LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。当 LSA 被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge(缺省值为3600s)时,LSA 不再用于路由计算(当然,路由器默认每 1800s 会重发该 LSA 报文,以刷新数据)。

Options(可选项):每个 bit 都对应 OSPF 所支持的某种特性。

LS Type(链路状态类型):指示该 LSA 的类型,即决定 Payload 部分的数据内容。对于不同的 LSA 类型,具有不同的作用。

Link State ID(链路状态标识):不同的 LSA,对该字段的定义不同。

Advertising Router(通告路由器):产生该LSA的路由器的Router ID。

LS Sequence Number(链路状态序列号):当 LSA 每次有新的实例产生时,序列号就会增加。该字段用于判断LSA的新旧或是否存在重复的实例。序列号范围是0x80000001-0x7FFFFFFF,路由器始发一个LSA,序列号为0x80000001,之后每次更新序列号加1,当LSA达到最大序列号时,重新产生该LSA,并且把序列号设置为0x80000001。

LS Checksum(校验和):用于保证数据的完整性和准确性。

Length(长度):== LSA Header + Payload

LSA Payload

参考 LSA Payload 笔记,获取 LSA 相关的内容;

OSPF Payload: Link State Acknowledgment, LSAck

解释:OSPF_Header.Type = 5,确认已经收到对方的 LSA 报文。

The post 「OSPF」- 报文格式 appeared first on K4NZ BLOG.

本文《OSPF报文格式(OSPF的报文类型)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。

随机文章

SEO小小课堂网
站长导航
搜素引擎算法
网站内容优化
SEO小小课堂网
SEO教程
站长导航
搜素引擎算法

百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:用户投稿,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/161539.html