MA网络

MA网络,multiple access 网络的简称,中文意思是多路访问。 MA网络是指一条链路上有多个访问点,一般分为两种:广播式多路访问网络、非广播式多路访问网络。 解释一下这两种网络:

  1. 广播式多路访问网络(BMA)一般指的是以太网,这种网络是支持广播发送的,正常情况下,DR只在多路访问时选取;
  2. 非广播式多路访问网络(NBMA),一般常见的有帧中继, ATM等网络,在这种网络 上广播是无法发送的。

条件匹配:

指定路由器(DR)和MA网络中其他所有设备建立邻接关系

备份指定路由器(BDR)和MA网络中其他所有设备建立邻接关系

在DR和BDR都存在的情况下,一个MA网络至少需要四台设备才能看到邻居关系

DR和BDR虽然叫指定路由器(备份指定路由器),但其工作范围还是在一个MA网络中,故其实质是接口的概念

条件匹配含义:在MA网络中若所有设备均为邻接关系,则将出现大量的重复更新,故需进行DR/BDR的选举,所有DRother之间仅维持邻居关系

DR/BDR选举规则:

  1. 比较接口的优先级,最大的为DR、次大的为BDR
    优先级的默认值为1,若将一个接口的优先级修改为0则代表该接口放弃DR/BDR选举 [r1-GigabitEthernet0/0/0]ospf dr-priority ? //优先级取值范围0-255 INTEGER<0-255> Router priority value
  2. 当优先级相同时,比较RID。RID大的路由器其所对应的接口为DR、次大的为BDR
  1. DR/BDR的选举 --- 非抢占模式的选举 --- 选举时间等同于死亡时间<r1>reset ospf 1 process ---重启OSPF进程

OSPF的数据包

OSPF协议号 --- 89

分析OSPF报头内容(报头为5个数据包的公共部分):

ospf数据包传输过程 ospf五个数据包_OSPF

 版本——OSPF协议版本——OSPFv2版本字段为2

类型——OSPF数据包的类型,OSPF五个包分别对应编号为

  • hello——1
  • DBD——2
  • LSR——3
  • LSU——4
  • LSack——5
    报文长度——整OSPF数据报文的长度,单位为字节
    RID——表示发出该数据包的路由器的ID
    区域ID——表示发出该数据包的接口所在的区域(area)ID
    认证类型和认证数据——OSPF在进行认证时,OSPF在进行认证时,需先比对认证类型,认证类型相同才比对认证数据,若不相同则不比对认证数据,即该OSPF数据包失效
    认证类型:
  • null——空认证 -- 0
  • simple——明文认证 -- 1
  • MD5——比对摘要值认证 -- 2

分析OSPF的5个数据包:

hello包:

周期发现 功能:建立以及保活邻居关系

DR/BDR选举也使用hello包进行选举

ospf数据包传输过程 ospf五个数据包_ospf数据包传输过程_02

  • 网络掩码——发出hello包接口的IP地址对应的掩码信息

华为设备规定建立邻居关系双方子网掩码必须相同,否则无法建立邻居关系(该条对P2P网络不生效)

  • hello时间和死亡时间——邻居双方hello时间和死亡时间必须相同,否则会导致邻居关系建立失败
  • 可选项——8位即代表有8个标记位,若当前标记位为1,则代表符合OSPF协议的某种特性(当前标记位所对应的特性)
    可选项中存在OSPF特殊区域的标记位,邻居双方如果特殊区域的标记位不同,将无法正常建立邻居关系
  • 路由器优先级——发出该数据包的接口的DR/BDR选举优先级
  • 指定路由器和备份路由器——携带的是DR/BDR接口的IP地址
    若此处为0.0.0.0,则表示发送此hello包时,DR/BDR还没有选举出来
  • 邻居——本地已知的邻居的RID

总结:hello中限制邻居关系建立的参数

  1. 子网掩码,双方不相同无法建立邻居关系(华为设备)
  2. hello时间
  3. 死亡时间
  4. OSPF特殊区域的标记
  5. 认证

DBD包:

DBD包被称为数据库描述报文携带的数据为LSA的头部

DBD包有两种类型:

  1. 使用未携带数据的DBD包进行主从关系的选举(主从关系未选出之前所有设备都认为自己是主)
  2. 使用携带数据的DBD包进行目录共享

ospf数据包传输过程 ospf五个数据包_ospf数据包传输过程_03

  • 接口最大传输单元(MTU):华为设备默认不开启MTU值的检测功能
    开启MTU值的检查命令:在对应接口中——[r1-Serial4/0/0]ospf mtu-enable如果两边都开启了MTU值检查功能,则双方值必须相同,若不同则停留在exstart状态,无法向下一状态进行
  • 可选项中
  • i(init)—— 该位置为1时,代表这个BDB包是进行主从关系选举的数据包(即未携带数据的DBD包),故该数据包后面不包含LSA头部
  • M(more)—— 该位置为1时,代表后面还有其他DBD包要发送
  • M(master)—— 该位置为1时,代表发送该数据包的设备为主
  • DD序列号
    在DBD包发送过程中,会逐次加1,用于确保DBD报文传输的有序性和可靠性

LSR包:

LSR称为链路状态请求报文——基于DBD包请求本地未知的LSA信息

ospf数据包传输过程 ospf五个数据包_网络_04

链路状态类型,链路状态ID,通告路由器——被称为LSA三元组,通过这三个参数可以唯一的标识出一条LSA

LSU:

LSU称为链路状态更新报文,该包是真正携带LSA信息的数据包

ospf数据包传输过程 ospf五个数据包_网络协议_05

LSACK:

LSACK称为链路状态确认报文

ospf数据包传输过程 ospf五个数据包_网络_06

OSPF接口的网络类型

  • P2P网络
  • MA网络
  • BMA——广播式多路访问网络
  • NBMA——非广播式多路访问网络

为什么要区分OSPF接口的网络类型?

OSPF接口在不同的网络类型下默认的工作方式不同

[r2]display ospf interface GigabitEthernet 0/0/0---查看OSPF的接口网络类型

网络类型

OSPF接口的网络类型(工作方式)

BMA(以太网)

Broadcast,可以建立多个邻居关系。需要进行DR和BDR选举,hello 10s,dead time 40s

NBMA(帧中继)

NBMA网络,可以建立多个邻居关系,需要进行DR和BDR选举,hello 30s,dead time 120s,无法自动建立邻居关系

P2P网络(HDLC、CPPP)

P2P只能建立一个邻居关系,不需要进行DR和BDR选举,hello 10S,dead time 40s

环回接口(虚拟接口)

P2P,华为设备定义环回接口为P2P网络类型,但实际上无数据收发,环回接口默认学习32位主机路由

串口和tunnel接口的传输速率:

  • OSPF的开销值:参考带宽(100Mbps)/ 实际带宽

T1载波,该线路的传输速率是1.544Mbps

E1载波,该线路的传输速率是2.048Mbps(华为设备的串口默认遵循E1载波标准)

华为设备将环回接口的开销值定义为0,不会受外界影响,也不受参考带宽变化的影响

如果想要还原环回接口真实的掩码长度,可以将环回接口的网络类型修改为broadcast。

华为设备将tunnel接口的传输速率定义为64Kbps ----华为设备这样设计主要目的是为了让隧道接口的开销值变大,使数据尽可能的避免从隧道接口发出,因为走隧道接口的数据,真实还是从物理接口发出,但是会增加复杂的封装和解封装的过程,加大资源的浪费。

LSA介绍:

SPF——最短路径优先算法

LSA(Link State Advertisement )又称为链路状态通知,作用:OSPF协议携带信息的载体

注意:OSPF协议在不同网络环境下所产生的携带信息不同

LSDB——链路状态数据库

ospf数据包传输过程 ospf五个数据包_网络协议_07

  • Type:LSA的类型,在OSPFv2版本中,需掌握的LSA信息有6种
  • LinkState ID:链路状态标识符——用来标记一条LSA信息(相当于是一条LSA信息的名字)
  • AdvRouter:通告路由器——发送该条LSA信息的设备的RID

链路状态类型、链路状态ID、通告路由器,一起被称为LSA三元组(即通过这三个参数可以唯一的标识出一条LSA信息)

LSA报文头部:

  • LSA三元组
  • Age:LSA的老化时间,单位为s。当一条LSA信息被路由器产生时从0开始计时,且整个LSA在网络中传递的过程中计时不中断
  • 注意:老化时间应该小于1800s(30分钟),(因为OSPF每隔1800s进行一次周期更新)。
    为了防止老化时间无限增长,我们设置了一个最大老化时间 MAX age——3600s(1h),当一条LSA信息的老化时间到达了最大老化时间时,将被认定为失效,将从LSDB中删除
  • OSPF的周期更新是按照每条LSA的老化时间进行计时的,当一条LSA信息的老化时间到达1800s时,将进行一次周期更新,重新发送这条LSA信息。当一台设备发出的LSA老化时间接近但不相同时,则需要分别进行周期更新,导致资源浪费。
  • 优化机制:组部调计算器
    当一条LSA信息老化时间到达1800s后,将不再进行周期更新,而是再等300s,到达2100s后,将一次性将所有老化时间在1800s-2100s之间的LSA信息一起进行周期更新
  • Seq(序列号):由32位二进制,由8位十六进制表示
    一台路由器每发送同一条LSA信息时会携带一个Seq,并且Seq依次加1
    序列号空间:
  • 1,直线型序列空间---从最小值开始一直到最大值,依次加1,新旧关系容易判断,但是数量有限。若超出上限,则将无序号可用,导致新旧关系无法判断。
  • 2,循环型序列空间---序号可以循环使用,不会出现序号使用完的情况,但是若两个序号差值比较大的时候,可能会导致新旧关系无法判断。
  • 3,棒棒糖型序列空间--- OSPF使用的就是这种序列空间,但是,其进入循环部分后,依旧会面临循环型序列空间的问题,所以,OSPF要求其不能进行循环,相当于是一个直线型序列空间,其取值0X80000001 - 0X7FFFFFFE。

OSPF刷新序列号空间的方法:

当一条LSA信息的序列号达到0x7FFFFFFE是,发出的路由器会将他的老化时间改为3600s,其他设备收到这条LSA信息后,会根据序号判断这是一条最新的LSA信息,将该信息刷新到本地LSDB中。之后,因为这条LSA信息的老化时间达到3600s,则将这条LSA信息删除掉。始发的路由器会再发送一条相同的LSA信息,其序列号使用Ox80000001,其他设备收到后将会把最新的LSA信息刷新到LSDB中,进而刷新了序列号空间。

  • chksum(校验和):确保LSA数据完整性,校验和也会参与LSA的新旧比较。当两台“LSA三元组”相同并且序列号也相同时,则可以使用校验和来比较新旧关系,校验和大的为新。

不同网络环境下的LSA:

Type-类型

LinkState ID-链路状态ID

AdvRouter-通告者

作用范围

携带信息

Type - 1LSA

Router

通告者的RID

区域内所有运行OSPF协议的路由器的RID

单区域

本地接口的直连拓扑

Type-2 LSA

Network

DR接口的IP地址

单个MA网络中DR所在路由器的RID

单区域

单个MA网络拓扑信息的补充

Type-3 LSA

Sum-Net (summary )

路由信息的目标网络号

ABR在通过下一个ABR设备时将会被修改为新的ABR设备(所通告的下一个ABR)

ABR相邻的区域

区域间的路由信息(无类别路由信息)

Type-5 LSA

External (ase)

  • Type-1LSA
    网络中所有设备都会发送,并且只发送一条一类(一类指Type-1LSA)LSA信息。
    一类LSA信息的参数:
  • link:用来描述路由器连接情况,一个接口可以使用多条link描述
  • link-type 这个类型主要和接口的网络类型有关,它会根据接口的网络类型判断这个接口运行在一个什么样的网络当中

ospf数据包传输过程 ospf五个数据包_OSPF_08

  • Type-2LSA
    在MA网络中,仅依靠一类LSA可能会出现信息描述不完整情况,故需要通告二类LSA补充缺失的信息
    注意:因为二类LSA提供的都是公用信息,所以并不需要所有设备都发,在一个MA网络中,只需要一台设备发送即可

所有携带路由信息的LSA都需要通过一类LSA和二类LSA进行验算

验算:所谓验算就是传递路由信息的通告者的位置信息需要通过一类LSA和二类LSA所携带的信息计算出来

  • Type-3LSA
    三类LSA传递的是域间路由信息,主要携带的是目标网段信息和开销值。目标网段信息是通过LinkState ID来进行携带,因为OSPF是无类别宣告,故里面也会包含其子网掩码。其中的开销值指的是通告者到达目标网段的开销值。