当前位置: 首页 > news >正文

【学网攻】 第(28)节 -- OSPF虚链路

系列文章目录

目录

系列文章目录

   文章目录

前言

一、什么是OSPF虚链路?

二、实验

1.引入

实验目标

实验背景

技术原理

实验步骤

实验设备

实验拓扑图

实验配置

扩展

实验拓扑图

实验配置

实验验证


 文章目录

  • 【学网攻】 第(1)节 -- 认识网络
  • 【学网攻】 第(2)节 -- 交换机认识及使用
  • 【学网攻】 第(3)节 -- 交换机配置聚合端口
  • 【学网攻】 第(4)节 -- 交换机划分Vlan
  • 【学网攻】 第(5)节 -- Cisco VTP的使用​​​​​​
  • 【学网攻】 第(6)节 -- 三层交换机实现VLAN间路由
  • 【学网攻】 第(7)节 -- 生成树配置
  • 【学网攻】 第(8)节 -- 端口安全
  • 【学网攻】 第(9)节 -- 路由器使用以及原理
  • 【学网攻】 第(10)节 -- 路由器单臂路由配置
  • 【学网攻】 第(11)节 -- 静态路由及默认路由
  • 【学网攻】 第(12)节 -- 动态路由(RIP)
  • 【学网攻】 第(13)节 -- 动态路由(OSPF)
  • 【学网攻】 第(14)节 -- 动态路由(EIGRP)
  • 【学网攻】 第(15)节 -- 标准ACL访问控制列表
  • 【学网攻】 第(16)节 -- 扩展ACL访问控制列表
  • 【学网攻】 第(17)节 -- 命名ACL访问控制列表
  • 【学网攻】 第(18)节 -- 网络地址转换静态NAT
  • 【学网攻】 第(19)节 -- 网络地址转换动态NAT
  • 【学网攻】 第(20)节 -- 网络端口地址转换NAPT配置
  • 【学网攻】 第(21)节 -- DHCP配置
  • 【学网攻】 第(22)节 -- DHCP中继配置
  • 【学网攻】 第(23)节 -- PPP协议
  • 【学网攻】 第(24)节 -- 帧中继(点对点)
  • 【学网攻】 第(25)节 -- 帧中继(多对一)
  • 【学网攻】 第(26)节 -- 综合网络实验一
  • 【学网攻】 第(27)节 -- HSRP(热备份路由器协议)


前言

网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展,我们可以通过网络学习、工作、娱乐,甚至是社交。因此,学习网络知识和技能已经成为了每个人都需要掌握的重要能力。

本课程博主将带领读者深入了解网络的基本原理、结构和运作方式,帮助读者建立起对网络的全面理解。我们将介绍网络的发展历程、网络的分类和组成、网络的安全和隐私保护等内容,帮助读者掌握网络知识,提高网络素养。

通过学习本篇博客,读者将能够更好地利用网络资源,提高工作效率,拓展人际关系,甚至是保护自己的网络安全。网络世界充满了无限的可能,希望本课程能够帮助读者更好地驾驭网络,享受网络带来的便利和乐趣。


一、什么是OSPF虚链路?

在OSPF(开放式最短路径优先)协议中,虚链路是一种特殊的链路,用于连接不能直接通信的两个不同自治系统(AS)。虚链路允许在不改变现有网络拓扑的情况下,OSPF路由器能够跨越多个AS通告路由信息。

在配置虚链路时,需要指定一个虚链路的传输接口,并为该接口指定一个虚拟的网络号(IP地址),这个IP地址将作为目的AS内的一个路由器的直接连接接口的IP地址。

二、实验

1.引入

实验目标

理解OSPF虚链路的原理及功能;

掌握OSPF虚链路的配置方法;

实验背景

你是某公司的网络管理员,公司现在扩展业务,在保证原有网络拓扑的情况下添加新业务(人事部),现在请你帮忙想办法实验这个功能,

一楼是公司总部,二楼是公司业务部,三楼是公司办公室,四楼是公司人事部

技术原理

虚链路技术是Open Shortest Path First (OSPF)路由协议中的一个特性,它允许在不改变网络拓扑的情况下,将一个路由器虚拟接入到另一个区域。

虚链路的工作原理是:在区域边界路由器(ABR)上配置一个目标区域和一个传输区域,ABR会创建一个虚拟接口,用于在这两个区域之间传递路由信息。

实验步骤

新建Packet Tracer拓扑图

(1)公司中的两台路由器与交换机连接,与外网的路由器连接并进行配置公网IP

(2)配置路由器接口IP地址。

(3)验证主机之间的互通性。

实验设备

Route 2811 4台 ,交叉线

实验拓扑图

实验配置

R1,R2,R3,R4基础配置

R1:
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#h R1
R1(config)#int f0/0
R1(config-if)#ip add 10.0.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#route ospf 10
R1(config-router)#net 10.0.1.0 0.0.0.255 area 0R2:
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#h R2
R2(config)#int f0/0
R2(config-if)#ip add 10.0.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int f0/1
R2(config-if)#ip add 10.0.2.1 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)#route ospf 10
R2(config-router)#net 10.0.1.0 0.0.0.255 area 0
R2(config-router)#net 10.0.2.0 0.0.0.255 area 1R3:
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#h R3
R3(config)#int f0/0
R3(config-if)#ip add 10.0.2.2 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#int f0/1
R3(config-if)#ip add 10.0.3.1 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#route ospf 10
R3(config-router)#net 10.0.3.0 0.0.0.255 area 2
R3(config-router)#net 10.0.2.0 0.0.0.255 area 1R4:
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#h R4
R4(config)#int f0/0
R4(config-if)#ip add 10.0.3.2 255.255.255.0
R4(config-if)#no shut
R4(config-if)#exit
R4(config)#route ospf 10
R4(config-router)#net 10.0.3.0 0.0.0.255 area 2

show ip route R1,R2,R3,R4

R1:
R1(config-router)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGPi - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area* - candidate default, U - per-user static route, o - ODRP - periodic downloaded static routeGateway of last resort is not set10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C       10.0.1.0/24 is directly connected, FastEthernet0/0
L       10.0.1.1/32 is directly connected, FastEthernet0/0
O IA    10.0.2.0/24 [110/2] via 10.0.1.2, 00:03:01, FastEthernet0/0R2:
R2(config-if)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGPi - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area* - candidate default, U - per-user static route, o - ODRP - periodic downloaded static routeGateway of last resort is not set10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C       10.0.1.0/24 is directly connected, FastEthernet0/0
L       10.0.1.2/32 is directly connected, FastEthernet0/0
C       10.0.2.0/24 is directly connected, FastEthernet0/1
L       10.0.2.1/32 is directly connected, FastEthernet0/1R3:
R3(config-router)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGPi - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area* - candidate default, U - per-user static route, o - ODRP - periodic downloaded static routeGateway of last resort is not set10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
O IA    10.0.1.0/24 [110/2] via 10.0.2.1, 00:02:19, FastEthernet0/0
C       10.0.2.0/24 is directly connected, FastEthernet0/0
L       10.0.2.2/32 is directly connected, FastEthernet0/0
C       10.0.3.0/24 is directly connected, FastEthernet0/1
L       10.0.3.1/32 is directly connected, FastEthernet0/1R4(config)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGPi - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area* - candidate default, U - per-user static route, o - ODRP - periodic downloaded static routeGateway of last resort is not set10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.0.3.0/24 is directly connected, FastEthernet0/0
L       10.0.3.2/32 is directly connected, FastEthernet0/0

可以观察到,R1学不到R3与R4之间的IP,这是因为OSPF中area区域,0是骨干,默认的需要与骨干区域相连才可以学习到相应的IP地址,因此我们引入了OSPF虚链路来帮助我们应对这种问题的发生.

OSPF虚链路的配置

R1:
R1(config)#int loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config-if)#route ospf 10
R1(config-router)#router-id 1.1.1.1R2:
R2(config)#int loopback 0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R2(config-if)#exit
R2(config)#route ospf 10
R2(config-router)#router-id 2.2.2.2
R2(config-router)#area 1 virtual-link  3.3.3.3R3:
R3(config)#int loopback 0
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#route ospf 10
R3(config-router)#router-id 3.3.3.3
R3(config-router)#area 1 vir 2.2.2.2R4:
R4(config)#int loopback 0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config-if)#route ospf 10
R4(config-router)#router-id 4.4.4.4如果没有学习到在特权模式下使用命令
R1#clear ip os p
Reset ALL OSPF processes? [no]: y

R1 Ping R4

观察到可以ping通了

扩展

你是某公司的网络管理员,公司现在扩展业务,在保证原有网络拓扑的情况下添加新业务(人事部),公司突然宣布五楼要加入财务部,希望再添加一层

一楼是公司总部,二楼是公司业务部,三楼是公司办公室,四楼是公司人事部,五楼是公司财务部

实验拓扑图

实验配置

R4,R5基础配置

R4:
R4(config)#int f0/1
R4(config-if)#ip add 10.0.4.1 255.255.255.0
R4(config-if)#exit
R4(config)#route ospf 10
R4(config-router)#net 10.0.4.0 0.0.0.255 area 3R5:
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#h R5
R5(config)#int f0/0
R5(config-if)#no shut
R5(config-if)#ip add 10.0.4.0 255.255.255.0
R5(config-if)#exit
R5(config)#int l 0
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config)#route ospf 10
R5(config-router)#net 10.0.4.0 0.0.0.255 area 3
R5(config-router)#router-id 5.5.5.5

Show ip route R1

R1:
R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGPi - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area* - candidate default, U - per-user static route, o - ODRP - periodic downloaded static routeGateway of last resort is not set1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1/32 is directly connected, Loopback010.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C       10.0.1.0/24 is directly connected, FastEthernet0/0
L       10.0.1.1/32 is directly connected, FastEthernet0/0
O IA    10.0.2.0/24 [110/2] via 10.0.1.2, 00:13:53, FastEthernet0/0
O IA    10.0.3.0/24 [110/3] via 10.0.1.2, 00:13:43, FastEthernet0/0
O IA    10.0.4.0/24 [110/4] via 10.0.1.2, 00:00:11, FastEthernet0/0

 

OSPF虚链路的配置

R3:
R3(config)#router ospf 10
R3(config-router)#area 2 vir 4.4.4.4R4:
R4(config)#route ospf 10
R4(config-router)#area 2 vir 3.3.3.3

实验验证

R1 Ping R5 

相关文章:

【学网攻】 第(28)节 -- OSPF虚链路

系列文章目录 目录 系列文章目录 文章目录 前言 一、什么是OSPF虚链路? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 扩展 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻…...

百面嵌入式专栏(面试题)驱动开发面试题汇总1.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux驱动程序的功能是什么? 对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数? 答案:kmalloc()、kzalloc()、vm…...

Starknet 的 JavaScript 库:Starknet.js、get-starknet和starknet-react

文章目录 Starknet 的 JavaScript 库Starknet.jsget-starknetstarknet-reactStarknet 的 JavaScript 库Starknet.js 官方:https://www.starknetjs.com/ Starknet.js 是一个与 Starknet 交互的 JavaScript 库,通常以脚本或去中心化形式进行交互应用程序。 Starknet.js 的灵感…...

debian11 安装 k8s,containerd ,阿里云镜像(已成功)

1. 环境准备 系统要求:至少 2GB RAM(建议 4GB 或更多),网络连接。 节点准备:至少 3 台机器,1 台作为 Master 节点,2 台作为 Worker 节点。 安装sudo apt update apt install sudo设置主机名&a…...

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发…...

【设计模式】23中设计模式笔记

设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法,和大量抽象的方法,具体的方法是为外界提供服务的点,具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A,希望A的a方法被修饰 …...

类加载过程介绍

一、类的生命周期 类被加载到jvm虚拟机内存开始,到卸载出内存为止,他的生命周期可以分为:加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中&#xf…...

pytorch创建模型方式

1.继承自nn.Module的方式 from torch import nn import torch.nn.functional as F 继承自nn.Moduleclass LModel(nn.Module):def __init__(self):super().__init__()self.L1 nn.Linear(10,10)self.L2 nn.Linear(10,64)self.L3 nn.Linear(64,10)self.L4 nn.Linear(10,5)se…...

MySQL 基础知识(五)之数据增删改

目录 1 插入数据 2 删除数据 3 更改数据 创建 goods 表 drop table if exists goods; create table goods ( id int(10) primary key auto_increment, name varchar(14) unique, stockdate date )charsetutf8; 1 插入数据 当要插入的数据为日期/时间类型时,如果…...

紫微斗数双星组合:廉贞天府在辰戌

文章目录 前言内容总结 前言 紫微斗数双星组合:廉贞天府在辰戌 内容 紫微斗数双星组合:廉贞天府在辰戌 性格分析 廉贞天府同坐辰、戌宫,若无煞星冲破,为“天府朝垣格”,也为“府相朝垣格”,富贵双全&am…...

人工智能|深度学习——基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统

代码下载: 基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统.zip资源-CSDN文库 1.研究的背景 水下场景目标检测是水下机器人、水下无人机和水下监控等领域中的重要任务之一。然而,由于水下环境的复杂性和特殊性,水下目标检测面临着许多挑…...

使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU

👉🏻 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc 本节实现一个最简的 CPU ,最终能够解析 add 和 addi 两个指令。如果对计算机组成原理已经有所了…...

顺序表、链表(ArrayList、LinkedList)

目录 前言: 顺序表(ArrayList): 顺序表的原理: ArrayList源码: 的含义:​编辑 ArrayList的相关方法:​编辑 向上转型List: 练习题(杨辉三角&#x…...

第11讲投票创建后端实现

投票创建页面实现 文件选择上传组件 uni-file-picker 扩展组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-file-picker 日期选择器uni-datetime-picker组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-datetime-picker iconfont小图标 https://www.iconfont…...

SNMP 简单网络管理协议、网络管理

目录 1 网络管理 1.1 网络管理的五大功能 1.2 网络管理的一般模型 1.3 网络管理模型中的主要构件 1.4 被管对象 (Managed Object) 1.5 代理 (agent) 1.6 网络管理协议 1.6.1 简单网络管理协议 SNMP 1.6.2 SNMP 的指导思想 1.6.3 SNMP 的管理站和委托代理 1.6.4 SNMP…...

计算机设计大赛 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0…...

OpenCV-36 多边形逼近与凸包

目录 一、多边形的逼近 二、凸包 一、多边形的逼近 findContours后的轮廓信息countours可能过于复杂不平滑,可以用approxPolyDP函数对该多边形曲线做适当近似,这就是轮廓的多边形逼近。 apporxPolyDP就是以多边形去逼近轮廓,采用的是Doug…...

transformer中的QKV是如何得到的?

多头自注意力机制:...

console.log导致内存泄露 打包时自动去掉console.log方法

webpack通过工具:terser 使用前需要先安装一下 vue.config.js const { defineConfig } require(vue/cli-servise); module.exports defineConfig({transpileDependencies:true,terser:{terserOptions:{compress:{drop_console:true,drop_debugger:true,},},},}…...

《合成孔径雷达成像算法与实现》FIgure6.20

% rho_r c/(2*Fr)而不是rho_r c/(2*Bw) % Hsrcf exp函数里忘记乘pi了 clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; …...

保姆级移植教程:将正点原子ATK-IMU901官方例程从STM32 HAL库迁移到MSPM0G3507

跨平台传感器驱动移植实战:从STM32 HAL到MSPM0的代码重构方法论 当我们需要将成熟的传感器驱动迁移到新硬件平台时,往往面临底层接口差异带来的适配难题。本文将以正点原子ATK-IMU901十轴陀螺仪模块为例,详解如何将其官方STM32 HAL驱动移植到…...

OpenClaw技能扩展:基于百川2-13B开发自定义文件处理器

OpenClaw技能扩展:基于百川2-13B开发自定义文件处理器 1. 为什么需要自定义文件处理技能 上周我在整理项目文档时,发现一个重复性痛点:每天需要手动将同事发来的各种格式文件(PDF、Word、Markdown)按内容分类存储。当…...

告别AP离线!深入浅出解析神州数码AC/AP注册机制:二层发现 vs. DHCP Option 43实战选型

神州数码无线网络部署实战:AC与AP注册机制深度解析 在企业无线网络部署中,AC(无线控制器)与AP(无线接入点)的注册机制是构建稳定无线网络的基础环节。神州数码作为国内领先的网络设备提供商,其A…...

智能风扇管家:FanControl如何让你的电脑安静又高效

智能风扇管家:FanControl如何让你的电脑安静又高效 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

自然语言生成:为AI原生应用注入新活力

自然语言生成:为AI原生应用注入新活力 关键词:自然语言生成(NLG)、AI原生应用、大语言模型、文本生成、多模态交互 摘要:自然语言生成(NLG)是AI领域的“语言魔法”,能让机器像人类一…...

Anlogic FD工具深度体验:如何用eMCU软核实现SF1芯片的PSRAM控制器设计

Anlogic FD工具实战:基于eMCU软核的PSRAM控制器设计进阶指南 当FPGA工程师需要在资源受限的SF1芯片上实现高性能存储控制时,Anlogic Future Dynasty(FD)工具链中的eMCU软核与PSRAM控制器组合提供了绝佳的解决方案。不同于基础教程…...

论文省心了!2026年实力出众的专业AI论文写作工具

2026年AI论文写作工具已从“内容生成”进化为多维度学术支持系统,核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言适配能力。本次测评覆盖6款主流工具,涵盖中文与英文场景,支持全流程与专项功能&#xff0c…...

Simple Form终极测试覆盖率指南:如何达成团队质量目标

Simple Form终极测试覆盖率指南:如何达成团队质量目标 【免费下载链接】simple_form Forms made easy for Rails! Its tied to a simple DSL, with no opinion on markup. 项目地址: https://gitcode.com/gh_mirrors/si/simple_form Simple Form作为Rails生态…...

从‘飞到红色建筑左边’说起:拆解无人机视觉语言导航(VLN)背后的三大工程难题

从"飞到红色建筑左边"说起:拆解无人机视觉语言导航的工程化困局 当你在测试场地对无人机说出"飞到红色建筑左边"时,这个看似简单的指令背后,是一场跨越模态鸿沟的复杂解码过程。不同于实验室里的完美演示,真实…...

基于CLIP-GmP-ViT-L-14的智能教学辅助:自动化作业批改场景构想

基于CLIP-GmP-ViT-L-14的智能教学辅助:自动化作业批改场景构想 最近和几位做教师的朋友聊天,他们都在抱怨同一件事:批改作业,尤其是那种需要看图说话的作业,实在太费时间了。一个班几十个学生,每个学生交上…...