目录
一、OSPF报文详解:
——【{二层帧头}+{IP头部}+【{OSPF头部]+{OSPF数据}】
----【224.0.0.0~~224.0.0.255】这些是组播地址,这些组播地址的TTL都为1
----hello报文:建立和维护OSPF邻居的,形成OSPF邻居表;目的IP地址:224.0.0.5
----IP头部里面:目的IP地址为224.0.0.5,IP优先级默认为6;TTL默认为1;协议号:89
(1)———OSPF头部分析:
——version: 2---IPV4下的OPSF 3---ipv6下的OSPF
——message type: 1--hello 2--LSDBD 3---LSR 4--LSU 5--LSACK
——packet length:数据包大小
——source OSPF router:.发送者的RID 【OSPF邻居之间RID相同,OSPF邻居起不来】
——area id:发送者接口的区域ID【 直连链路,区域ID不一致(两个区域),OSPF邻居起不来】
——packet check:奇偶校验
——auth type: 0--没有认证 1--明文认证﹑2--MD5认证【认证类型和密钥不一致,OSPF邻居起不来】
——auth data:存放的是认证的信息
(2)———hello字段分析:
——接口掩码;接口IP地址的掩码【在以太接口,直连链路之间掩码不一致OSPF邻居无法起来】
——hello发送间隔时间:10/30 【10——广播类型,30——NBMA类型,hello发送间隔和死亡超时时间不一致OSPF邻居起不来】
——可选项:DN O DC L NP MC E MT
——接口优先级:1 如果需要选择DR和BDR,但是接口优先级都为0,邻居起不来
——hello的死亡时间:40/120
——DR的地址:
——BDR的地址:
——邻居ID:
——自己的RID:
——————————————————————————-——-————-—————————-----————————
二、LSA报文——链路状态通告
(1)———简介:
描述哪些接口启用了OSPF,这个接口的OSPF链路类型,网段和掩码, cost值等信息;【可以理解LSA是一个路由代表】
LSA就是代表了一个路由器路由条目,只不过这个路由条目是以数据库方式表示的。
LSA刷新时间 : 这个LSA谁产生的,谁负责每30分钟对这个LSA重新产生一次更新;
LSA老化时间 : LSA在数据库存放的最大时间,1小时,每一秒减去1,一个小时候如果得不到刷新,老化时间变成0,这个LSA会从数据库删除的同时也会泛洪,通知其他OSPF邻居删除这个老化的LSA【路由发生变化】
LSA更新条件: 1、每30分钟刷新一次 2、当我路由器运行OSPF的接口出现了变化,也会触发增量更新,LSA的序列号都会+1(接口刚开始启用OSPF时也会),以代表这是最新的LSA。
LSA组成部分(每个LSA都有相同的LSA头部信息):
(2)———头部信息:
- ——LS age : 老化时间【1800秒(30分钟)~~~3600秒(一小时)】,其中1800是周期的LSA刷新时间,3600是LSA的最大老化时间
- ——Options : 可选项 DN O DC L NP MC E MT
- ——LS Type : 说的是数据部分是几类的LSA
- ——Link State ID : 链路状态ID,是一个变量,根据不同的LSA类型,这个地方的数值也不一样
- ——Advertising Router : 通告路由, 这个LSA是谁产生的,就把这个路由器的RID写在这里
- ——LS Seq Number : LSA的序列号,利用这个序列号确定谁的LSA是最新的,LSA每更新一次,序列号+1
- ——Checksum :奇偶校验和,用于验证数据传输的完整性
- ——Length : 包含了头部信息和数据部分的总长度
- ——Number of Links : 我这台路由器有几个接口启用了OSPF
(3)———数据部分:
LSA-1,LSA-2, LSA-3,LSA-4,LSA-5,LSA-7
---------------------------------------------------------------------------------------------------------------------------------------------------------
五种基本数据包:
HELLO | 邻居的发现、建立、保活 |
---|---|
LSDBD | 数据库描述包 – 数据库目录信息 |
LSR | 链路状态请求 |
LSU | 链路状态更新—携带各种LSA |
LSACK | 链路状态确认 |