OSPF基础@1#20240617

OSPF报文头格式

报文格式

OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。OSPF这五种报文具有相同的报文头格式,长度为24字节。

字段长度含义
Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。
Type1字节类型,OSPF报文的类型,有下面几种类型:
  • 1:Hello报文;
  • 2:DD报文;
  • 3:LSR报文;
  • 4:LSU报文;
  • 5:LSAck报文。
Packet length2字节OSPF报文的总长度,包括报文头在内,单位为字节。
Router ID4字节发送该报文的路由器标识。
Area ID4字节发送该报文的所属区域。
Checksum2字节校验和,包含除了认证字段的整个报文的校验和。
AuType2字节验证类型,值有如下几种表示, 0:不验证;1:简单认证;2:MD5认证。
Authentication8字节

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

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

1.建立邻居关系
down代表还没发现任何存在的邻居。不是接口down
init收到邻居的hello包,但hello中没法发现自己的Routerid,
此时代表你发现了邻居的存在,但并不代表邻居已经发现你。也称为one-way。
two-way收到邻居hello报文,并从hello中发现的自己的routerid
two-way之后,drother之间就只到two-way状态,不会进行LSDB的同步。
2.主/从关系协商、DD报文交换
其他情况会继续进行lsdb的同步,进入到exstart状态,开始发送DBD报文。
exstart发送的DBD报文只做主从选举,而不会携带任何LSDB中LSA的头部信息。
并各自表达自身是初次发送DBD报文,后续还希望继续发送DBD,并自身是master,
随机生成DBD报文序列号,进行主从选举。彼此交换该DBD报文后,根据routerid的大
小完成主从选举。routerid大的成为master,routerid小的成为slave。
主从选举完成后,进入exchage状态,slave路由器开始发送送携带自身LSDB中LSA的头部信息的DBD报文,并使用exstart状态master路由器的序列号
1.1.1.1 I=1 M=1 MS=1 Seq=X
2.2.2.2 I=1 M=1 MS=1 Seq=Y
# I:当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
# M (More)当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
# M/S (Master/Slave)当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
Slave  1.1.1.1 I=0 M=1 MS=0 
Master 2.2.2.2 I=0 M=1 MS=1 Seq=Y+1
Slave  1.1.1.1 I=0 M=0 MS=0 Seq=Y+1
Master 2.2.2.2 I=0 M=0 MS=1 Seq=Y+2
Slave  1.1.1.1 I=0 M=0 MS=0 Seq=Y+2
slave总是用master的序列号向master发送DD报文,master将slave序列号加1向从发送DD报文,实现DD报文的隐式确认。
exchange完成后,邻居根据DBD报文的头部信息和自身LSDB的头部信息做比较,进行LSDB的同步。
同步的规则:交换彼此没有的LSa以及新的LSA替换老旧的LSA,实现邻居LSDB的一致性。
为了实现同步,对Lsa的数据结构做出定义要能实现如下功能:
1、如何实现唯一的区分一条LSA。
2、如果实现LSA的新旧判断。
而这些功能就是LSA的头部信息(摘要信息),DBD报文携带的正是LSA的头部信息,EXStart状态下DBD不携带LSA头部。
LSA通过6个参数来标识自身和新旧程度。

1.如何实现唯一的区分一条LSA
LS type
Link State ID
Adv Router
用于区分一条LSA,这三个参数一致时认为是同一条LSA
如果都有这个条LAS,则需要进一步分析LAS的新旧,用新的同步旧的。
LSA Seq
LSA Checksun
LSA age
1.比较序列号越大越新
2.seq相同比较校验和越大越新
3.校验和相同,比较LSA age是否等于3600S
4.ls age如果都不等于3600s,则判断ls age的差值,大于900s,则Ls age小的的最新,小于900s则认为相同的LSA.

3.LSDB同步(LSA请求、LSA传输、LSA应答)
exchange进入loading状态,发送LSR,LSU,LSAck完成LSA的交换,进入full状态LSDB一致;

LSA的老化机制:

  • LSA每隔半小时周期性更新(谁产生,谁负责更新),seq+1,checksum重新算,ls age置0,ls age到达3600s还没刷新,自己删除老化的lsa.
  • 链路状态变化触发更新,seq+1 checksum重新算,lsage置0



 

LSA基本类型

  Type      : Router          //type-1
  Ls id     : 1.1.1.1         //ls id的取值与type相关,type1的取路由器的router id 
  Adv rtr   : 1.1.1.1         //产生LSA的设备router id
  Ls age    : 13
  Len       : 60
  Options   :  E
  seq#      : 80000005
  chksum    : 0x9a42
  Link count: 3
     Link ID: 2.2.2.2         //邻居的router id
     Data   : 10.1.1.1        //与邻居直连的接口IP地址
     Link Type: P-2-P         //描述P2P/P2MP链路上的邻居,描述拓扑信息
     Metric : 1               //到邻居的ospf的开销
     Link ID: 10.1.1.0
     Data   : 255.255.255.252
     Link Type: StubNet       
     Metric : 1
     Link ID: 11.11.11.11     //直连网络号
     Data   : 255.255.255.255 //直连网络子网掩码
     Link Type: StubNet       //描述直连的路由信息
     Metric : 0               //到直连网络的OSPF的开销

     Link ID: 10.1.1.2      //伪节点的router id,借用DR在该链路的接口IP充当router ID
     Data   : 10.1.1.1      //与伪节点相连的接口IP
     Link Type: TransNet    //描述Broadcast/nbma链路上的邻居,描述是拓扑信息
     Metric : 1             //到伪节点的开销


display ospf lsdb router  
display ospf lsdb network
通过1/2类LSA画出拓扑数据库

广播型链路为啥需要子网掩码一致
广播型/NBMA链路的网络号由2类LSA进行维护,为了避免路由不精确,要求广播型链路接口掩码配置要一致,即该链路各接口属于同一个网段。
广播播型/NBMA链路DD,LSR通过单播发送,如果地址不在同一个网段,导致单播报文发送失败,无法建立邻居。

OSPF报文发送形式:
·点到点P2P类型:当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该
类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报
文、LSAck报文)。
·点到多点P2MP类型(Point-to-Multipoint):没有一种链路层协议会被缺省的认为是Point-to-
Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改
为点到多点的网络。在该类型的网络中以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其
他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
·NBMA类型(Non-broadcastmultipleaccess):当链路层协议是ATM时,缺省情况下,OSPF认为
网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报
文、LSU报文、LSAck报文)。
·广播类型(Broadcast):当链路层协议是Ethermet、FDDI时,缺省情况下,OSPF认为网络类型是
Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,
224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPFDR的预留IP组
播地址。以单播形式发送DD报文和LSR报文。

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值