OSPFv3协议测试实操(信而泰原创文章)
1. OSPFv3协议原理
OSPFv3基本原理
OSPFv3是运行于IPv6的OSPFv3路由协议,它在OSPFv2基础上进行了增强,是一个独立的路由协议。
·OSPFv3在Hello报文、状态机、LSDB、洪泛机制和路由计算等方面的工作原理和OSPFv2保持一致。
·OSPFv3报文封装在IPv6报文内,可以采用单播和组播的形式发送。
·OSPFv3支持多进程,在同一台设备上可以运行多个不同的OSPFv3进程,它们之间互不影响,彼此独立。不同OSPFv3进程之间的路由交互相当于不同路由协议之间的路由交互。
OSPFv3报文类型
|
报文类型 |
报文作用 |
|
Hello报文 |
周期性发送Hello报文,用来发现和维持OSPFv3邻居关系。 |
|
DD报文(Database Description packet) |
描述了本地LSDB的摘要信息,用于两台设备进行数据库同步。 |
|
LSR报文(Link State Request packet) |
用于向对方请求所需的LSA。 设备只有在OSPFv3邻居双方成功交换DD报文后才会向对方发出LSR报文。 |
|
LSU报文(Link State Update packet) |
向对方发送其所需要的LSA。 |
|
LSAck报文(Link State Acknowledgment packet) |
用来对收到的LSA进行确认。 |
|
LSA类型 |
LSA作用 |
|
Router-LSA(Type1) |
设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态和开销,在所属的区域内传播。 |
|
Network-LSA(Type2) |
由DR产生,描述本链路的链路状态,在所属的区域内传播。 |
|
Inter-Area-Prefix-LSA(Type3) |
由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。 |
|
Inter-Area-Router-LSA(Type4) |
由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。 |
|
AS-external-LSA(Type5) |
由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。 |
|
NSSA LSA(Type7) |
由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。 |
|
Link-LSA(Type8) |
每个设备都会为每个链路产生一个Link-LSA,描述到此Link上的link-local地址、IPv6前缀地址,并提供将会在Network-LSA中设置的链路选项,它仅在此链路内传播。 |
|
Intra-Area-Prefix-LSA(Type9) |
每个设备及DR都会产生一个或多个此类LSA,在所属的区域内传播。 设备产生的此类LSA,描述与Route-LSA相关联的IPv6前缀地址。 DR产生的此类LSA,描述与Network-LSA相关联的IPv6前缀地址。 |
LSA类型
路由器类型-1
路由器类型-2
|
路由器类型 |
含义 |
|
区域内路由器(Internal Router) |
该类设备的所有接口都属于同一个OSPFv3区域。 |
|
区域边界路由器ABR(Area Border Router) |
该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。 |
|
ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 |
|
|
骨干路由器(Backbone Router) |
该类设备至少有一个接口属于骨干区域。 因此,所有的ABR和位于Area0的内部设备都是骨干路由器。 |
|
自治系统边界路由器ASBR(AS Boundary Router) |
与其他AS交换路由信息的设备称为ASBR。 ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPFv3设备引入了外部路由的信息,它就成为ASBR。 |
OSPFv3路由类型
AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPFv3将引入的AS外部路由分为Type1和Type2两类。
|
路由类型 |
含义 |
|
Intra Area |
区域内路由。 |
|
Inter Area |
区域间路由。 |
|
第一类外部路由(Type1 External) |
这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPFv3自身路由的开销具有可比性。 到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。 |
|
第二类外部路由(Type2 External) |
这类路由的可信度比较低,所以OSPFv3协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。 所以,OSPFv3计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。 |
区域-1
随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPFv3路由协议时,路由器数量的增多会导致链路状态数据库LSDB(Link-State Database)非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致路由器负担很重。在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,造成网络中会有大量的OSPFv3协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。
OSPFv3协议通过将自治系统划分成不同的区域解决LSDB频繁更新的问题,提高网络的利用率。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPFv3的接口必须指明属于哪一个区域。
OSPFv3的区域类型包括普通区域、Stub区域、NSSA区域。
区域-2
|
区域类型 |
作用 |
说明 |
|
普通区域 |
缺省情况下,OSPFv3区域被定义为普通区域。普通区域包括: 标准区域:最通用的区域,它传输区域内路由,区域间路由和外部路由。 骨干区域:连接所有其他OSPFv3区域的中央区域,通常用Area 0表示。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。 |
骨干区域自身必须保持连通。 所有非骨干区域必须与骨干区域保持连通。 |
|
Stub区域 |
Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,因此这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域,为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。 Totally Stub区域允许ABR发布的Type3缺省路由,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 |
骨干区域不能配置成Stub区域。 Stub区域内不能存在ASBR,因此自治系统外部的路由不能在本区域内传播。 |
|
NSSA(Not-So-Stubby Area)区域 |
NSSA是Stub区域的一个变形,它和Stub区域有许多相似的地方。NSSA区域不允许存在Type5 LSA。NSSA区域允许引入自治系统外部路由,携带这些外部路由信息的Type7 LSA由NSSA的ASBR产生,仅在本NSSA内传播。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,泛洪到整个OSPFv3域中。 Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 |
该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发 |
OSPFv3支持的网络类型
|
网络类型 |
含义 |
|
广播类型(Broadcast) |
当链路层协议是Ethernet、FDDI时,缺省情况下,OSPFv3认为网络类型是Broadcast。 在该类型的网络中: 通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,FF02::5为OSPFv3设备的预留IPv6组播地址;FF02::6为OSPFv3 DR/BDR的预留IPv6组播地址。 以单播形式发送DD报文和LSR报文。 |
|
NBMA类型(Non-broadcast multiple access) |
当链路层协议是X.25时,缺省情况下,OSPFv3认为网络类型是NBMA。 在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 |
|
点到多点P2M类型(Point-to-Multipoint) |
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。 在该类型的网络中: 以组播形式(FF02::5)发送Hello报文; 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。 |
|
点到点P2P类型(point-to-point) |
当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPFv3认为网络类型是P2P。 在该类型的网络中,以组播形式(FF02::5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 |
OSPFv3路由聚合
路由聚合是指将多条具有相同IPv6前缀的路由聚合成一条路由。当大规模部署OSPFv3网络时,可能会出现由于OSPFv3路由表规模过大而降低路由查找速度的现象,为了解决这个问题,可以配置路由聚合,减小路由表的规模,降低管理的复杂度。此外,如果被聚合的IPv6地址范围内的某条链路频繁Up和Down,该变化并不会通告到被聚合的IPv6地址范围外的设备。因此,路由聚合还可以避免网络中的路由振荡,在一定程度上提高了网络的稳定性。
OSPFv3路由聚合过程如下:
•ABR聚合
ABR路由聚合将具有相同前缀的路由信息聚合在一起,只发布一条路由到其它区域。
•ASBR聚合
ASBR路由聚合将具有相同前缀的引入路由聚合在一起,只发布一条路由到其它区域。
OSPFv3和OSPFv2协议比较-相同点
相同点:
•网络类型和接口类型
•接口状态机和邻居状态机
•链路状态数据库LSDB(Link-state Database)
•洪泛机制(Flooding mechanism)
•相同类型的报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
•路由计算基本相同
OSPFv3和OSPFv2协议比较-不同点
不同点:
•OSPFv3仅在更新报文的LSA中携带地址信息
•OSPFv3基于链路,而不是网段
•OSPFv3上移除了IP地址的意义
•OSPFv3的报文及LSA格式发生改变
•OSPFv3的LSA报文里添加LSA的洪泛范围
•OSPFv3支持一个链路上多个进程
•OSPFv3利用IPv6链路本地地址•新增两种LSA
•OSPFv3只通过Router ID来标识邻居
2. 测试用例

测试目的
·验证DUT基本的OSPFv3功能
·验证OSPFv3路由的流量转发功能
测试说明
·测试仪P1模拟OSPFv3, 和DUT的G0/0/9之间建立OSPFv3邻居
·测试仪的P1向DUT发送5条Routes
·测试仪端口P2向5条Routes发送流量, 验证是否能够正常转发
测试步骤
按图连接好拓扑→配置好测试仪和DUT的接口IP地址→在测试仪P1和DUT的G0/0/9之间配置OSPFv3邻居→P1端口向DUT发送5条Routes(2003::1~2003:0:0:4::1/64)→P2向5条Routes发送100M的流量→在测试仪P1上启动OSPFv3→在DUT上查看OSPFv3邻居是否建立→在DUT上查看是否学习到测试仪发送的5条Routes→从测试仪端口P2向5条Routes发送100M的流量
预期结果
·OSPFv3邻居能够正常建立
·DUT能够学习到全部的5条Routes
·测试仪P1端口能够收到P2发送的流量, 没有丢包
三、测试步骤
第一步:占用Ports
步骤1-1: 添加机框

机框IP地址
·在机框显示屏上查看
·默认为192.168.0.180

步骤1-2: 占用Ports

在选中的端口上做测试

第二部:配置IP地址
步骤2-1: 添加Interface
手工添加

还可以通过wizard方式创建Interface

步骤2-2: 修改Interface
修改接口IP地址信息
·网关是DUT的IP
·IPv4地址是本端的IP

学习ARP

查看是否学习到网关的MAC地址

第三步:配置OSPFv3
步骤3-1: 向导创建OSPFv3
打开向导

步骤3-2: 选择端口
选择端口
·只选择需要建立OSPFv3的端口
·选择完成以后, 按Next

步骤3-3: 封装协议
封装协议
·默认IPv6
VLAN配置
·选配
·是否在Interface上加上VLAN
·本例中不需要

步骤3-4: 配置Interface
Interface配置
是否默认学习MAC地址
配置OSPFv3 Router ID

步骤3-5: 配置MAC层信息
MAC层信息
修改Interface的MAC地址

步骤3-6: 配置IP层信息
配置IP信息
·本端的IP地址
·网关地址(DUT地址)

步骤3-7: 配置OSPFv3
配置OSPFv3
·配置Area ID

步骤3-8: 预览配置的OSPFv3

OSPFv3邻居的配置结束

步骤3-9: 查看配置的Interface

![]()
进行ARP学习, 确保DUT MAC能够学习到

步骤3-10: 查看配置的OSPFv3

步骤3-11: 将Interface和OSPFv3关联
Interface和OSPFv3关联
·向导创建 默认关联
·手工创建OSPFv3, 需要手工关联

第四步:发布OSPFv3 Route
步骤4-1: 向导添加OSPFv3 Routes

步骤4-2: 选择OSPFv3接口
选择需要发布的OSPFv3接口

步骤4-2: 配置Topology
配置拓扑
·保持默认配置即可

步骤4-3: 配置路由
配置发布的路由

步骤4-4: 配置路由
选择默认配置

步骤4-5: 配置路由
修改路由数量

步骤4-6: 配置路由
选择默认配置

步骤4-6: 查看配置的OSPFv3 Routes

第五步:配置流量
步骤5-1: Add Binding Stream配置流量

选择端口

步骤5-2: Wizard配置流量
选择流量
·单向流量
·P2接口打向P1

步骤5-2: 配置General
配置General
·配置流名称
·配置帧长度

步骤5-3: 配置Frame格式

步骤5-4: 选择Rx端口
选择流量接收端口
可选

步骤5-5: 查看配置的Stream

六:启用OSPFv3
步骤6-1: 启动OSPFv3
方法1: 启动OSPFv3
·选中
·点击Start OSPFv3
方法2
·右键选中
·点击 Start OSPFv3

步骤6-2: 查看OSPFv3状态
查看状态
·状态变为Running以后, 表明邻居建立成功

第七步:发流验证
步骤7-1: 发流验证
发流验证
·选中流量
·点击start

步骤7-2: 切换Load模式
切换模式
·默认基于端口
·切换到基于Stream

步骤7-3: 修改Load值

修改load值
·在每个Stream上进行修改

步骤7-4: 切换到Stream Block统计
切换统计
·默认基于端口统计
·切换到基于stream Block统计

步骤7-5: 查看统计
查看统计
速率
时延
丢包
….

![]()

华为三层交换机的配置
interface GigabitEthernet0/0/9
undo portswitch
ipv6 enable
ipv6 address 2001::1/64
ospfv3 1 area 0.0.0.1
#
interface GigabitEthernet0/0/10
undo portswitch
ipv6 enable
ipv6 address 2002::1/64
#
#
ospfv3 1
router-id 1.1.1.1
#
三层交换机的状态
DUT状态
·邻居状态为Full
·Routes都学习到


