数据通信网络之OSPFv3基础
文章及资源归档至【AIShareLab】,回复 通信系统与网络 可获取。
文章目录
- 一、目的
- 二、拓扑
- 三、需求
- 四、步骤
一、目的
- 掌握路由器的IPv6 基础配置。
- 掌握OSPFv3(单区域)的基础配置。
二、拓扑
如图1 所示,三台路由器R1、R2 和R3 分别通过相应物理接口进行连接,其中,R1 及
R3 各自下联一个网段,简单起见,此处只体现了这些网段中的两台计算机PC1 和PC2,PC1
与PC2 分别使用R1 及R3 作为自己的默认网关。其中,路由器R1、R2 和R3 推荐使用
AR2220 及以上设备。
图1 OSPFv3 基础实验拓扑图
三、需求
在R1、R2 及R3 上完成OSPFv3 配置(三台路由器都属于Area 0),使得PC1 与PC2
所在网段能够相互通信。
四、步骤
(1)完成R1、R2 及R3 的基础配置
①在R1 上完成如下配置:
<Huawei> system-view
[Huawei] sysname R1
[R1] ipv6
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ipv6 enable
[R1-GigabitEthernet0/0/0] ipv6 address fc00:12::1 64
[R1-GigabitEthernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ipv6 enable
[R1-GigabitEthernet0/0/1] ipv6 address FC00:1::FFFF 64
[R1-GigabitEthernet0/0/1] quit
图2 R1配置过程
② 在R2 上完成如下配置:
<Huawei> system-view
[Huawei] sysname R2
[R2] ipv6
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ipv6 enable
[R2-GigabitEthernet0/0/0] ipv6 address fc00:12::2 64
[R2-GigabitEthernet0/0/0] quit
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ipv6 enable
[R2-GigabitEthernet0/0/1] ipv6 address fc00:23::2 64
[R2-GigabitEthernet0/0/1] quit
图3 R2配置过程
③ 在 R3 上完成如下配置:
<Huawei> system-view
[Huawei] sysname R3
[R3] ipv6
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ipv6 enable
[R3-GigabitEthernet0/0/0] ipv6 address fc00:23::3 64
[R3-GigabitEthernet0/0/0] quit
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ipv6 enable
[R3-GigabitEthernet0/0/1] ipv6 address FC00:2::FFFF 64
[R3-GigabitEthernet0/0/1] quit
图4 R3配置过程
(2)在R1、R2 及R3 上完成OSPFv3 配置
①启动抓包:在R1 的GE0/0/0 接口上单击鼠标右键,按图2 所示开始抓包,以试图捕获R1
的GE0/0/0 接口上的入向与出向数据包。
②在R1 上完成如下配置:
[R1] ospfv3 1 #系统视图下使用的命令,其作用是创建OSPFv3进程,并进入
OSPFv3视图,其中,1是进程标识符,进程标识符仅具有本地意义。
[R1-ospfv3-1] router-id 1.1.1.1 #OSPFv3视图下使用的命令,其作用是为
运行的OSPFv3协议配置一个唯一的、以IPv4地址格式表示的路由器标识符,这里,1.1.1.1
是IPv4地址格式表示的路由器标识符。
[R1-ospfv3-1] quit
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ospfv3 1 area 0 #接口视图下使用的命令,其
作用是在指定接口(这里是接口GigabitEthernet 0/0/0)启动OSPFv3路由协议,并指定接
口所属的区域,这里,1是进程标识符,在创建OSPFv3进程时指定,0是区域标识符,
表示指定接口属于区域0。注意,接口只有在启动IPv6功能后,才能使用该命令。
[R1-GigabitEthernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ospfv3 1 area 0
图5 R1配置过程
③在R2 上完成如下配置:
[R2] ospfv3 1
[R2-ospfv3-1] router-id 2.2.2.2
[R2-ospfv3-1] quit
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ospfv3 1 area 0
[R2-GigabitEthernet0/0/0] quit
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ospfv3 1 area 0
图6 R2配置过程
④ 在R3 上完成如下配置:
[R3] ospfv3 1
[R3-ospfv3-1] router-id 3.3.3.3
[R3-ospfv3-1] quit
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ospfv3 1 area 0
[R3-GigabitEthernet0/0/0] quit
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ospfv3 1 area 0
完成上述配置后,三台路由器即开始启动OSPFv3 协议报文交互,并进行路由计算。
图6 R3配置过程
阶段性验证:
⑴在R1 上查看OSPFv3 邻居关系,具体命令格式为display ospfv3 peer,验证R1 是否已与
R2 建立邻接关系。
备注:运行结果示例如下:
display ospfv3 peer
OSPFv3 Process (1)
OSPFv3 Area (0.0.0.0)
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 1 Full/Backup 00:00:38 GE0/0/0 0
以上输出的内容是R1 的OSPFv3 邻居表,从表中可以看出R1 发现了邻居R2,并且当前该
邻居的状态为“Full”,这意味着两者以建立全毗邻的邻接关系。
图7 R1 OSPFv3 邻居关系
验证可知, R1 已与R2 建立邻接关系。
⑶ 在R2 上查看OSPFv3 邻居关系,具体命令格式为display ospfv3 peer,验证R2 是否已与R1 和R3 建立邻接关系。
图8 R2 已与R1 和R3 建立邻接关系
⑷ 在R3 上查看OSPFv3 邻居关系,具体命令格式为display ospfv3 peer,验证R3 是否已与R2 建立邻接关系。
图9 R2 已与R3 建立邻接关系
(4)在R1 上查看路由表,具体命令格式为display ipv6 routing-table,验证R1 是否已通过
OSPFv3 学习到了去往远端网络的路由。
图10 R1 已通过OSPFv3 学习到了去往远端网络的路由
由上图可知, R1 通过 OSPFv3 学习到了去往 FC00:23::/64 及 FC00:2::/64 的路由, 这两条路由的“Protocol”字段都为“OSPFv3”,这表示路由是通过 OSPFv3 获知。
⑸在 R2 上查看路由表,具体命令格式为 display ipv6 routing-table,验证 R2 是否已通过 OSPFv3 学习到了去往远端网络的路由并标明相应的表项, R2已通过 OSPFv3 学习到了去往远端网络的路由。
图11 R2路由表
⑹在 R3 上查看路由表,具体命令格式为 display ipv6 routing-table,验证 R3 是否已通过 OSPFv3 学习到了去往远端网络的路由并标明相应的表项,如图12所示,R2已通过 OSPFv3 学习到了去往远端网络的路由。
图12 R3路由表
(3)观察OSPF 报文交互过程
①捕获数据包,查看协议栈。
在Wireshark 界面中,查看前面开启抓包后所捕获的信息,如图3 所示,R1、R2 和R3
配置完成后网络中产生了多个OSPF 报文交互。
图13 R1、R2 和R3 接口OSPFv3 配置完成后,R1 GE 0/0/0 所捕获的数据包
以实际捕获数据为准,回答下列问题:
结合捕获信息,说明OSPF 数据包自下而上的协议栈及封装结构。
OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在单一自治系统(AS)中的路由器之间交换路由信息。OSPF 数据包在传输过程中会经过自下而上的协议栈,并在每一层添加特定的头部和尾部,以实现数据的封装和解封装。OSPF 数据包自下而上的协议栈及封装结构如下:
数据链路层(Data Link Layer):OSPF 数据包在数据链路层使用的协议通常是以太网(Ethernet)。在这一层,OSPF 数据包会添加以太网帧头和帧尾。以太网帧头包括源地址和目标地址等信息,帧尾包括校验和等信息。
网络层(Network Layer):OSPF 数据包在网络层使用的协议为 IP(Internet Protocol)。在这一层,OSPF 数据包会添加 IP 数据包头和尾。IP 数据包头包括源 IP 地址和目标 IP 地址等信息,IP数据包尾包括校验和等信息。
OSPF 层:OSPF 数据包在 OSPF 层使用 OSPF 协议。在这一层,OSPF 数据包会添加 OSPF 报文头和尾。OSPF 报文头包括版本号、报文类型、区域 ID 等信息,报文尾包括校验和等信息。OSPF 报文类型包括:Hello 报文、数据库描述报文、链路状态请求报文和链路状态更新报文。
应用层(Application Layer):OSPF 数据包在应用层没有特定的协议。但是,OSPF 数据包中包含 OSPF 路由信息,这些信息可以被路由器的路由表使用,以决定最佳的路由路径。
综上所述,OSPF 数据包自下而上的协议栈及封装结构包括以太网帧头和帧尾、IP 数据包头和尾、OSPF 报文头和尾等。在每一层,都会添加相应的协议头和尾,以实现数据的封装和解封装。
备注:OSPF 是IETF 组织开发的一个基于链路状态的内部网关协议。目前,针对IPv4 使用的是OSPF Version 2 (OSPFv2),针对IPv6 协议使用OSPF Version 3 (OSPFv3)。OSPFv3 在OSPFv2 基础上进行了增强,是一个独立的路由协议。OSPFv3 具有如下特点:在区域划分、状态机、泛洪机制、支持的网络类型(Broadcast、NBMA、P2P 和P2MP)、报文类型(Hello报文、DD 报文、LSR 报文、LSU 报文和LSAck 报文)和路由计算等方面的工作原理与OSPFv2 保持一致;把自治系统划分成逻辑意义上的一个或多个区域,通过LSA(Link StateAdvertisement)的形式发布路由;依靠区域内各设备间交互OSPFv3 报文来达到路由信息的统一;OSPFv3 报文封装在IPv6 数据报内,可以采用单播和组播的形式发送;OSPFv3 基于链路运行,设备只要在同一链路,则可以建立邻居关系;链路支持多实例,具体的,一个OSPFv3 物理接口可以与多个实例绑定,并用不同的实例标识(Instance ID 区分),即OSPFv3的单个链路支持运行多个OSPFv3 实例,运行在同一条物理链路上的多个OSPFv3 实例,分别和链路对端设备建立邻居及发送报文,且互不干扰;OSPFv3 报文和LSA 报文中去掉了IP地址的意义,且重构了报文格式和LSA 格式;OSPFv3 通过Router ID 标识网络设备,Router ID 是一个OSPFv3 设备在自治系统中的唯一标识,其长度为32 位,作为本地标识符,与IPv6 地址无关,用点分十进制表示法表示;OSPFv3 使用链路本地地址(FE80::/10)作为发送报文的源地址和路由的下一跳。OSPFv3 主要包含五种报文类型,相应的名称和作用如表1 所示。
表1 OSPFv3 报文类型
②分析单一数据包格式。
以实际捕获数据为准,回答下列问题:
a.在实际捕获结果中出现的OSPF 报文分别是什么,共有多少类型?与表1 所列的OSPF 报
文类型是否一致?
答: 在实际捕获结果中出现的OSPF 报文分别是Hello报文、DD报文、LSR报文、LSU报文、LSA报文,共有5种类型,与表1所列的 OSPF 报文类型一致.
b.查看各OSPF 报文,包含不同OSPF 报文的IPv6 数据报中,Next Header 取值是多少?不
同报文中该字段是否相同?
答:如图14所示, 包含不同OSPF 报文的IPv6 数据报中,Next Header 取值OSPF IGP (89), 不同报文中该字段相同.
图14 OSPF 报文
c.选中一个Hello Packet 报文并查看,包含该报文的IPv6 数据报源地址和目的地址分别是
多少?包含该报文的以太网帧源地址和目的地址分别是多少?
答: 如图15所示,选中一个Hello Packet 报文并查看,包含该报文的IPv6 数据报源地址fe80: :2e0:fcff:fec7 :6622 和目的地址ff02: :5, 包含该报文的以太网帧源地址HuaweiTe_ c7:66:22 (00:e0:fc:c7:66:22) 和目的地址IPv6mcast 05 (33:33: 00: 00:00:05).
图15 Hello Packet 报文
d. 选中一个LS Acknowledge 报文并查看,包含该报文的IPv6 数据报源地址和目的地址分
别是多少?包含该报文的以太网帧源地址和目的地址分别是多少?报文中是否包含发送者
的IPv6 地址?
答: 如图16,选中一个LS Acknowledge 报文并查看,包含该报文的IPv6 数据报源地址fe80: :2e0: fcff:fec7:6622 和目的地址ff02::5, 包含该报文的以太网帧源地址 HuaweiTe_ c7:66:22 (00:e0:fc:c7:66:22) 和目的地址IPv6mcast_ 05 (33: 33:00: 00:00:05), 报文中包含发送者的IPv6 地址.
图16 LS Acknowledge 报文
(4)在PC1 及PC2 上完成配置
①静态配置PC1 的IPv6 地址、前缀长度和网关信息,具体的参数如图17所示。
图16 LS Acknowledge 报文
(4)在PC1 及PC2 上完成配置
①静态配置PC1 的IPv6 地址、前缀长度和网关信息,具体的参数如图17 所示。
图17 PC1 的IPv6 静态地址配置
②静态配置PC2 的IPv6 地址、前缀长度和网关信息,具体的参数如图18所示。
图18 PC2 的IPv6 静态地址配置
(5)联通性测试
在PC1 上ping PC2,具体命令格式为ping PC2 的IPv6 地址 -6,验证PC1 是否可与
PC2 成功通信。
图19 PC1 可与 PC2 成功通信
如图19,PC1可与 PC2 成功通信.
相关文章:

数据通信网络之OSPFv3基础
文章及资源归档至【AIShareLab】,回复 通信系统与网络 可获取。 文章目录 一、目的二、拓扑三、需求四、步骤 一、目的 掌握路由器的IPv6 基础配置。掌握OSPFv3(单区域)的基础配置。 二、拓扑 如图1 所示,三台路由器R1、R2 和R…...
FPGA-结合协议时序实现UART收发器(五):串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive
FPGA-结合协议时序实现UART收发器(五):串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive 串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive,功能实现。 文章目录 FPGA-结合协议时序实现UART收发器(五&…...

我学编程全靠B站了,真香-国外篇(第三期)
你好,我是Martin。 今天来点猛料,给大家推荐点我的压箱收藏-国外知名大学的公开课。 我推荐的不多,本着少就是多的原则,只给大家推荐我看过最好的五门视频,主要是来自两所国外高校:MIT美国麻省理工、CMU卡…...
c++ 变量常量指针练习题
Q1:在win32 x86模式下,int *p; int **pp; double *q; 请说明p、pp、q各占几个字节的内存单元。 p 占 4 个字节 pp 占 4 个字节 q 占 4 个字节 Q2常量1、1.0、“1”的数据类型是什么? 1 是 整形 int 1.0 是 浮点型 double “1” 是 const char * Q3 语句&…...

Linux底层基础知识
一.汇编,C语言,C,JAVA之间的关系 汇编,C语言,C可以通过不同的编译器,编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统,Java虚拟机是由汇编,C,…...

JUC并发编程--------线程安全篇
目录 什么是线程安全性问题? 如何实现线程安全? 1、线程封闭 2、无状态的类 3、让类不可变 4、加锁和CAS 并发环境下的线程安全问题有哪些? 1、死锁 2、活锁 3、线程饥饿 什么是线程安全性问题? 我们可以这么理解&#…...

机器视觉之Basler工业相机使用和配置方法(C++)
basler工业相机做双目视觉用,出现很多问题记录一下: 首先是多看手册:https://zh.docs.baslerweb.com/software 手册内有所有的源码和参考示例,实际上在使用过程中,大部分都是这些源码,具体项目选择对应的…...

Centos nginx配置文档
1、安装nginx: yum install nginx 2、Nginx常用命令 查看版本:nginx -v 启动:nginx -c /etc/nginx/nginx.conf 重新加载配置:nginx -s reload 停止:nginx -s stop 3、Nginx反向代理配置 nginx配置详解 1、Nginx配置图 详情可以查看:http://nginx.org/ru/docs/example…...

2023/9/14 -- C++/QT
作业: 仿照Vector实现MyVector,最主要实现二倍扩容 #include <iostream>using namespace std;template <typename T> class MyVector { private:T *data;size_t size;size_t V_capacity; public://无参构造MyVector():data(nullptr),size(…...
golang在goland编译时获取环境变量失效
在golang中, 我们通常使用os包来获取环境变量,如: os.Getenv() os.LookupEnv() 等。 但如果我们使用goland编译器,在编译是,这时操作环境变量,会发现os包读取到的环境变量值不变: 新增后&am…...

一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了
一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了。 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的…...

蓝桥杯 题库 简单 每日十题 day3
01 约数个数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 1200000 有多少个约数(只计算正约数)。 解题思路 枚举,从1开始一直到1200000本身都作为1200000的除数,…...

基于SSM+Vue的高校实验室管理系统的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

C语言天花板——指针(初阶)
🌠🌠🌠 大家在刚刚接触C语言的时候就肯定听说过,指针的重要性以及难度等级,以至于经常“谈虎色变”,但是今天我来带大家走进指针的奇妙世界。🎇🎇🎇 一、什么是指针&…...

关于第一届全球电子纸创新应用金奖征集评选及报名指南
重要通知 |关于第一届全球电子纸创新应用金奖征集评选及报名指南https://mp.weixin.qq.com/s/RWsZtmJ20-NZXMG0k0rwPA?wxwork_useridEPIA 从2004年,Sony推出全球首款电纸书阅读器至今20载,这期间,到底诞生了多少种创新产品&#…...
idea搭建项目找不到Tomcat
idea搭建项目找不到Tomcat_idea没有tomcat配置项_ZYRL的博客-CSDN博客...

类和对象三大特性之继承
全文目录 继承的概念定义格式继承关系和访问限定符final 基类和派生类对象赋值转换继承中的作用域派生类的六个默认成员函数构造函数拷贝构造函数operator析构函数 友元和静态成员友元静态成员 各种继承形式菱形继承虚继承菱形虚拟继承对象模型 继承和组合 继承的概念 通过继承…...

Debian 12安装Docker
1.更新系统包 #apt update 2.安装依赖包 #apt install apt-transport-https ca-certificates curl gnupg lsb-release 3.添加Docker源 (1)添加Docker 官方GPG密钥 #curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/s…...

小谈设计模式(4)—单一职责原则
小谈设计模式(4)—单一职责原则 专栏介绍专栏地址专栏介绍 单一职责原则核心思想职责的划分单一变化原则高内聚性低耦合性核心总结 举例图书类(Book)用户类(User)图书管理类(Library)…...

ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估
安全之安全(security)博客目录导读 ATF(TF-A) 威胁模型汇总 目录 一、简介 二、评估目标 1、数据流图 三、威胁分析 1、信任边界 2、资产 3、威胁代理 4、威胁类型 5、威胁评估 5.1 端点在直接请求/响应调用中模拟发送方FF-A ID 5.2 端点在直接请求/响应调用中模拟…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...