OSPF报文与LSA

1. OSPF报文

OSPF报文 Hello 报文、 DD 报文、 LSR 报文、 LSU报文、LSAck 报文

OSPF 头部

OSPF 用 IP来封装协议报文,协议号89,5种OSPF的报文具有相同OSPF 头部。OSPF报文与LSA_第1张图片
OSPF 头部中关注的字段主要有:

  • version: IPv4 OSPFv2 值为2;IPv6 OSPFv3值为3,1Byte;
  • Type:描述为何种OSPF报文,
    1:Hello报文,2:DD报文,3:LSR报文,4:LSU报文,5:LSAck报文,1Byte;
  • Router ID: 发送OSPF 报文的源Router ID,4Byte;
  • Area ID:发送OSPF 报文接口所属的OSPF 区域ID,4Byte;
  • checksum:对除认证字段的OSPF 报文进行校验,2Byte;
  • Auth 类型字段:定义OSPF认证类型,0:不验证;1:简单认证;2:MD5认证,2Byte。
  • Auth 字段:当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。

OSPF Hello报文

Hello 报文周期性发送,用于发现和维护OSPF的邻居关系,在MA网络中用来选取OSPF的DR/BDR。
Hello报文中不携带LSA信息,除Hello报文其他OSPF报文都携带LSA信息。

OSPF Hello报文如下:
OSPF报文与LSA_第2张图片
Hello报文需要关注的字段:

  • netmask:掩码,发送Hello报文的接口所在网络的掩码,在MA网络中判断接口是否在一个网段
  • Hello/Dead interval: Hello报文发送时间间隔,以及dead 时间,缺省dead时间位hello intervall的4倍,不同的网络类型的hello interval并不一定相同。
  • Router Priority: 路由器优先级,用于选举OSPF 的DR/BDR,默认为1,如果为0表示路由器不参与DR/BDR的选举
  • Designated Router: 指定路由器,DR接口的IP地址吗,如果为0.0.0.0表示未选举DR路由器
  • Active Neighbor: 描述OSPF 的邻居路由器的RID列表,表示路由器已经从邻居路由器收到合法的hello报文
  • Option 字段:8个可选项 DN O DC EA N P MC E MT
    DN:用于基于MPLS的三层VPN,Down 比特位
    DC:按需链路
    N/P:N只出现在hello数据包中,N=1表明该路由器支持7类LSA
    P:仅用在NSSA区域的7类LSA头部,用来告诉NSSA区域非末节区域的ABR将七类LSA转换为五类LSA
    E:具有接收外部LSA的能力。当始发路由器具有接收OSPF外部LSA的能力时,该位置位1。在所有5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发于末节区域的LSA中,该位置为0。Hello报文中该位置位表明一个接口具有接收和发送5类LSA的能力。

OSPF DD报文

DD报文:Database Description报文,描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。
OSPF 第一个DD报文不携带LSA信息,只用来协商主从,后续DD报文才会携带LSA 摘要信息。
摘要信息的内容包含:Adv Router、Link State ID、LS Type、Options字段、LSA Age、校验和、序列号;
Adv Router、Link State ID、LS Type三者唯一的标识一类LSA;
LSA Age、校验和、序列号用于区分LSA的新旧;
OSPF DD报文如下:
OSPF报文与LSA_第3张图片
DD报文种需要关注的字段:

  • I:initial,当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0
  • M:more,当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文
  • MS: master/slave:当两台OSPF路由器交换DD报文时,需要进行主从的选举,MS置1表示为主。
  • DD Sequence:DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
  • Interface MTU:接口MTU,华为设备缺省不检查,值为0,VLink中字段为0

OSPF LSR报文

用于向对方请求所需的LSA。
设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。

OSPF LSR报文如下:
OSPF报文与LSA_第4张图片
LSR报文种需要关注的信息:

  • 请求信息:LSA的三要素:LS Type、Link State ID、Adv Router
  • LSR中不携带Options字段。

OSPF LSU报文

用于向对方发送其所需要的LSA

OSPF LSU报文如下:
OSPF报文与LSA_第5张图片

OSPF LSAck报文

用来对收到的LSA进行确认
OSPF报文与LSA_第6张图片

2.OSPF LSA

主要分析OSPF 1类、2类、3类、4类、5类、7类LSA,使能OSPF的路由器会产生一种或多种LSA,收到的LSA的集合形成LSA的数据库LSDB。
LSA的头部报文结构
所有的LSA具有相同的头部
OSPF报文与LSA_第7张图片

  • LS age:lsa产生的时间,以s为单位,缺省情况下没经过一台路由器LSA增加1.
  • Option:与OSPF Hello报文种的一直,注意P选项仅出现在7LSA种,用于7转5,P即通告位,E 表示支持5类LSA的泛洪
  • LS type + Link State ID + Advertising Router 用来标识一个唯一的LSA
  • LS type: 不同类型的LSA
  • Link State ID:不同类型LSA内容不同
  • Adv Router:通告者,为产生此LSA的Router ID
  • LS sequence number:序列号,判断LSA的新旧
  • LS checksum:校验和,还可用于判断LSA新旧

1类LSA Router LSA

  1. 所有运行OSPF协议的设备都会产生,用来描述设备的链路状态和开销
  2. 区域内泛洪
  3. LS type:值为1
  4. Link State ID = Adv Router= 设备的Router ID
  5. Flag位:V E B ,V表示始发路由器是具有邻接关系Vlink的一个端点,E表示始发路由器是一个ASBR,B表示始发路由器是一个ABR
  6. Router LSA中定义了4中link 类型:
    • 点到点 :描述点到点类型链路,Link ID:邻居路由器RID,Link Data:本端接口IP地址
    • TransNet:描述MA类型链路,Link ID:DR接口IP地址,Link Data:自己接口IP地址;TransNet是指向伪节点
    • StubNet:描述末节网络,Link ID:网段信息,Link Data:掩码信息;仅当有 stub link,loopback 接口网络 or P2P link 上的网络号都是以 stubnet形式出现。
    • Vlink:描述虚链路,Link ID:VLink对端的RID,Link Data:本地VLink的接口IP地址
      OSPF报文与LSA_第8张图片

2类LSA Network LSA

  1. MA网络中由DR产生,描述MA(广播与NBMA)网络的链路状态
  2. 区域内泛红
  3. LS type:值为2
  4. Link State ID:DR的接口IP地址
  5. Adv Router:产生2类LSA路由器的RID
  6. Netmask:结合Link State ID即可算出2类LSA的网络号
  7. Attach Router:此MA网络中所有邻居路由器的RID
    OSPF报文与LSA_第9张图片
    OSPF路由器通过1类、2类LSA进行SPT树的逻辑拓扑的计算。

3类LSA Network-summary LSA

  1. 由ABR产生,向其他非骨干区域通告,描述区域内某个网段
  2. LSA3在区域见传递路由,但是泛洪区域为区域内
  3. ABR位为骨干区域内的每条OSPF路由各产生一条3类LSA向其他非骨干区域进行通告
  4. Link State ID:网络号
  5. Adv Router:ABR的RID
  6. 结合Netmask字段与Link State ID即可知道3类LSA携带的网段信息下图为:3.3.3.3/32
  7. Metric:开销,ABR到目的网络的开销值(即ABR1.1.1.1到目的网络3.3.3.3/32的开销值)
    OSPF报文与LSA_第10张图片

4类LSA ASBR-summary LSA

  1. 由ABR产生,描述到ASBR的距离,为5类LSA服务,通告给除ASBR所在区域的其他区域
  2. 区域内泛洪
  3. 报文格式与LSA3相同
  4. Link State ID: ASBR的RID
  5. Adv Router:ABR的RID
  6. Netmask:无意义
  7. Metric:ABR到ASBR的开销
    OSPF报文与LSA_第11张图片

5类LSA AS-external LSA

  1. 由ASBR产生,描述AS外部的路由
  2. 泛洪到所有普通区域(除了STUB(totally)与NSSA区域(totally))
  3. Link State ID:引入外部路由网络号
  4. Adv Router:产生5类LSA的路由器的RID
  5. Netmak:引入外部路由的掩码
  6. Option:E 描述的为外部路由
  7. External Type:外部路由的类型,缺省为2,Type1与Type2的区别:Type2仅考虑外部成本,Type1考虑端到端的成本(ospf内部成本+外部成本),Type2优先级由于Type1.
  8. Metric:ASBR到外部路由的开销
  9. Forwarding Address:可以是0.0.0.0,也可以不是,如果是0.0.0.0,访问外部路由将报文转发给ASBR,如果不是0.0.0.0,报文转发给此非零地址,路由器根据FA地址来决定访问外部路由是通过ASBR还是FA地址。
  10. Tag:用来标记外部路由,缺省为1,可手动配置OSPF报文与LSA_第12张图片

7类LSA NSSA-external LSA

  1. 由ASBR产生,描述AS外部路由
  2. 仅在NSSA区域泛洪,NSSA区域区别与Stub区域,可以引入外部路由
  3. Link State ID:外部路由网络号
  4. Adv Router:产生7类LSA的路由器RID
  5. Netmask:外部路由掩码
  6. Option:P,P置位标识ABR将7类转为5类LSA,产生的此5类LSA 三要素会发生变化,但是FA地址不变(可达的前提下)。
  7. External Type:与5类相同,缺省为type 2
  8. FA地址:缺省情况下7类LSA携带FA地址,目的防止环路与次优路径OSPF报文与LSA_第13张图片

LSA的新旧规则

序列号越大越新
序列号相同,checksum越大越新
序列号与checksum都相同,比较age时间

  • 若 Age时间为3600,为最新,表明该LSA要更新
  • 若两个LSA的age时间间隔大于900s,则age时间小的为新
  • 若两个LSA的age时间间隔在900内,视为相同LSA,保留其中一条LSA

3. LSA的一些场景实践

场景1:同区域内存在几个1类LSA,几个2类LSAOSPF报文与LSA_第14张图片

AR1,AR2,AR3都产生一个一类LSA,AR2与AR3网络类型为广播,DR产生一个二类LSA。
AR1的链路类型为P2P,一类LSA中的Link Type:P2P,Subnet。
AR3的链路类型为广播,一类LSA中的Link Type:Transit。
AR2左侧链路P2P,产生Link Type:P2P,Subnet;右侧链路广播,Link Type:Transit。
如果上述路由器存在loopback口,将在1类LSA中新增Link Type为subnet的信息
区域0的LSDB中包含:3条一类LSA,1条二类LSA。

场景2 不同区域场景

OSPF报文与LSA_第15张图片
三类LSA由ABR产生,
将区域0的一类LSA转换为3类LSA,传递到区域1,同时将区域1的1类、2类LSA转换为三类LSA,传递到区域0.

场景3:AR1引入外部路由1.1.1.1/32

提问:
1,区域1为普通区域,图中哪些路由器产生4类LSA,描述的内容?
2,AR4上可以收到几条4类LSA?
3,如果区域1是NSSA区域,AR2和AR3的角色?
4,AR4上可以收到几条4类LSA?
5,在区域2的AR7上可以收到几条4类LSA?
6,如果在AR2上引入一条外部路由,AR3上是否做7转5,如何选路?AR7上有几条4类LSA?
OSPF报文与LSA_第16张图片
分析:
1.4类LSA只能由ABR产生,通告给除ASBR所在区域的其他区域,图中区域0的ABR有4个,AR2,AR3,AR5,AR6。4类LSA描述的内容为去往ASBR的距离。
2.当区域1为NSSA区域时,缺省为RID大的进行7转5,ABR如果进行7转5产生5类LSA,同样角色为ASBR。
结论:
1,区域1为普通区域,引入外部路由后,在区域0中AR2 AR3 AR5 AR6都是ABR,都会产生4类LSA,在AR4上可以收到2条4类LSA,分别由AR2 AR3产生,内容:Linkstate ID:1.1.1.1,Adv Router:2.2.2.2/3.3.3.3,描述的是到ASBR的开销。AR5与AR6上相同,同样描述的是到ASBR 1.1.1.1的开销,所以在AR7上可以收到两条2类LSA。
2,当区域1为NSSA区域,AR2 AR3的角色ABR,ASBR;由RID大的AR3将7类LSA转为5类LSA,
3,在区域0不会产生4类LSA,因为5类LSA在区域0产生,区域0通往1.1.1.1/32的外部路由是通过去往FA地址的3类LSA,AR5 AR6上可以产生4类LSA,分别指向ASBR,因为在区域0有两个ASBR,判断是否是ASBR是根据一类LSA中V B E位,所以会分别产生指向2.2.2.2/3.3.3.3的4类LSA,即AR5产生两条4类LSA,AR6产生两条4类LSA。AR7共收到4条4类LSA。与一条携带FA地址的5类LSA,AR7访问AR1的外部路由是通过FA地址即3类LSA。
4,在AR2上引入外部路由,在区域1表现为7类LSA,其他区域以5类LSA的方式泛洪,在AR3上会收到一条5类LSA,一条7类LSA,AR3不会进行7转5,因为7类LSA中的NP位没有置位。选路是比较5类和7类的开销来决定。AR7上仍然收到4条4类LSA。3类,5类LSA都是描述的路由信息,每一条路由信息,都会产生一条3类或5类LSA。

你可能感兴趣的:(网络,ospf,网络协议)