【ensp】VLAN间通信的解决办法
目录
VLAN间通信简介
VLAN间通信的两种方式
借助三层设备路由器进行VLAN间的通信(也就是单臂路由)
在端口上创建子接口之后为什么需要开启arp广播,是因为他是子接口吗?
拓扑图
交换机配置
路由器配置
查看路由器配置
测试能否实现不同VLAN之间的通信
通过抓包软件我们得到以下信息,我们可以看到在发送数据包时,先发送了一个ARP包,获取Mac地址,,呼应了开头我说的数据发送过程;
通过三层交换机的虚拟接口(vlanif)进行VLAN三层通信
实验拓扑图
交换机配置
抓包软件抓包
分析抓包结果
为什么需要知道目标地址的Mac地址?
花有重开日,朝暮皆为少年之时。
VLAN间通信简介
VLAN间三层通信是指在VLAN网络中,不同VLAN之间进行通信的过程。
我们知道VLAN是虚拟局域网,在一个局域网内我们是通过Mac地址进行通信(Mac地址是每台计算机或设备在网络中的唯一标识符,通过Mac地址可以确定设备的身份并进行通信。),在局域网与局域网之间通过IP地址来通信,大致过程如下:
主机在发出数据包前,先会查看数据包中的目的IP地址,如果目的IP地址和本机IP地址在同一个网段上(也就是同一个局域网内,属于局域网内部通信),主机会直接泛洪个ARP请求数据包(只泛洪到本网段中除自己以外的端口,如果是目的IP则reply,不是则抛弃)来请求对方主机的MAC地址,请求到目的Mac地址以后封装数据包,继而发送该数据包。但如果目的IP地址与本机IP地址不在同一个网段(也就是局域网与局域网之间通信),那么主机同样也会发出一个ARP数据包请求网关的MAC地址,收到网关ARP回复后,继而封装数据包后发送给网关,让网关去处理数据(也就是路由器)。
这个过程称为ARP解析;
VLAN(虚拟局域网)是一种逻辑上划分网络的技术,他将一个网络划分成一个个的小网络也就是逻辑网络,每个逻辑网络称为一个VLAN。VLAN会隔离广播域,提高网络的安全性和性能。
隔离广播域的意思就是说隔离广播帧,让广播帧只在虚拟局域网内部泛洪,这样有效的防止了广播风暴;
但是,由于VLAN是工作在第二层的,只能实现同一个VLAN内的主机之间的通信。为了实现不同VLAN之间的通信,需要借助三层设备通信,即通过路由器或三层交换机实现不同VLAN之间的通信。
原理就是:通过配置路由器或三层交换机的接口,使它们在不同的VLAN之间进行数据转发和路由选择,从而实现VLAN之间的通信。
实现不同VLAN之间的通信的确有多种方式,包括使用路由器进行路由、通过交换机端口连接、三层交换机实现VLAN间路由、使用VPN技术,以及VLAN的配置和管理等手段。这些方式提供了灵活的选择,使得网络管理员可以根据实际需求来进行合适的部署和配置。下面我们只记录两种常用的简单的方式;
VLAN间通信的两种方式
借助三层设备路由器进行VLAN间的通信(也就是单臂路由)
这种方式下,在路由器上为不同的VLAN划分不同的子接口,并将每个接口分配相应的网络地址。被配置用于接收来自不同VLAN的数据包,并将其路由到正确的目标VLAN。
主要配置命令如下:
[Huawei]interface g0/0/0.10
[Huawei-GigabitEthernet0/0/0.10]dot1q termination vid 10
[Huawei-GigabitEthernet0/0/0.10]ip add 192.168.10.254 24
[Huawei-GigabitEthernet0/0/0.10]arp broadcast enableinterface g0/0/0.20
dot1q termination vid 20
ip add 192.168.20.254 24
arp broadcast enable
这行命令是针对华为交换机的配置命令,它用于配置交换机端口的VLAN终结信息。具体解释如下:
dot1q是IEEE 802.1Q标准中定义的一种虚拟局域网(VLAN)标记协议,该协议允许在以太网帧的帧头添加VLAN标记,用来标识数据包所属的VLAN。
termination是终结的意思,这个命令告诉交换机对于接收到的带有VLAN 10标记的数据进行 VLAN 终结处理,也就是识别并处理携带 VLAN 10 标记的数据包。
vid 10表示 VLAN ID 为 10,这就是将 VLAN 10 的标记应用到这个接口上,使得该接口能够处理属于 VLAN 10 的数据。
因此,这行命令的含义是,配置了接口GigabitEthernet0/0/0的子接口VLAN 10,使其能够接收和处理属于 VLAN 10 的数据包。
在端口上创建子接口之后为什么需要开启arp广播,是因为他是子接口吗?
是的,开启 ARP 广播是因为在子接口中,通常需要单独处理 ARP。在 VLAN 的子接口中,由于每个子接口代表一个不同的 VLAN,因此需要独立处理每个子接口的 ARP 广播。
当你在子接口上配置 IP 地址时,通常需要开启 ARP 广播。ARP(地址解析协议)用于将 IP 地址解析为物理 MAC 地址,在以太网中,这些解析请求和应答通常都是通过广播来完成的。
因此,在子接口上开启 ARP 广播可以保证该子接口能够正常地解析IP地址并将数据正确地发送到目标设备。
拓扑图

交换机配置
路由器配置

查看路由器配置
测试能否实现不同VLAN之间的通信
通过抓包软件我们得到以下信息,我们可以看到在发送数据包时,先发送了一个ARP包,获取Mac地址,,呼应了开头我说的数据发送过程;
通过三层交换机的虚拟接口(vlanif)进行VLAN三层通信
三层交换机具备网络层的功能,可以像路由器一样实现VLAN三层通信,在这种情况下,需要在三层交换机上配置虚拟接口来接受来自不同VLAN的数据包,并使用IP地址和路由表将它们转发到相应的目标VLAN。
为什么会有三层交换机?
我认为:为了解决局域网中VLAN之间必须依赖于路由器进行通信和管理的问题;
总之:三层交换机通过结合交换机和路由器功能,解决了网络中数据转发、VLAN通信、网络设计和复杂环境下的需求等多方面的问题,提高了网络性能和管理效率。
实现VLAN间通信的原理是:利用三层交换机的路由功能,通过识别数据包的IP地址,查找路由表进行路由转发。三层交换机给接口配置IP地址,采用SVI(交换虚,拟接口)的方式实现VLAN间互连。在交换机中为每个VLAN创建一个虚拟接口,并且配置IP地址,该IP地址会成为连接隶属于当前VLAN的终端的默认网关地址;
SVI是Switched Virtual Interface的缩写,表示交换虚拟接口。SVI是在交换机上创建的虚拟接口,用于与特定VLAN相关联。通过配置SVI,可以为每个VLAN提供一个虚拟接口,从而实现不同VLAN之间的通信和管理。SVI通常用于配置交换机上的Layer 3(三层)功能,如IP地址、路由、ACL等。
实验拓扑图

交换机配置


抓包软件抓包
分析抓包结果
当PC1需要与PC2通信时,首先会发送ARP(Address Resolution Protocol)包。ARP包的作用是将目标IP地址解析为对应的MAC地址,以便在数据链路层上进行通信。具体步骤如下:
- PC1知道PC2的IP地址,但不知道PC2的MAC地址。
- PC1发送ARP请求广播包到局域网中,询问“谁拥有IP地址为PC2的设备的MAC地址?”。
- PC2收到ARP请求后,会回复一个ARP响应包,包含自己的MAC地址。
- PC1收到PC2的MAC地址后,就可以构建ICMP包(ping包)并发送给PC2进行通信。
因此,ARP包在PC1与PC2通信时起到了解析目标MAC地址的作用,确保数据包能够正确地到达目标设备。只有获得了目标设备的MAC地址,PC1才能发送ICMP包进行通信。
为什么需要知道目标地址的Mac地址?
每个网络设备都有唯一的MAC地址,通过MAC地址可以准确地识别和定位网络中的设备。
在局域网中,数据包是通过MAC地址来识别目标设备的。数据帧中包含了源MAC地址和目标MAC地址,以确保数据包能够准确传输到目标设备。
相关文章:
【ensp】VLAN间通信的解决办法
目录 VLAN间通信简介 VLAN间通信的两种方式 借助三层设备路由器进行VLAN间的通信(也就是单臂路由) 在端口上创建子接口之后为什么需要开启arp广播,是因为他是子接口吗? 拓扑图 交换机配置 路由器配置 查看路由器配置 测试能否实现…...
接口测试框架搭建D22
整体架构和分层设计 run.py 运行测试用例,生成测试报告 test_cases/ 登录用例 注册用例 其他业务用例... data/ 测试数据 libs 第三方插件,比如HTMLTestRunnerNew config config.yaml 静态配置数据 config.py 动态配置数据 reports 测试报告…...
CASA模型教程
原文链接:CASA模型教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247600635&idx6&sna655a8de570edcaa435d6e917b66d9b3&chksmfa82081ccdf5810a33a778e8771bb116bde9e5a1f795daa4894e5b74de17b03ebe86d7cdcfe3&token1464653739&…...
算法思路-遥感语义分割与变化检测
遥感影像存在的问题 1.不同季节影像的差异 2. 影像云雾遮挡 3.影像由于传感器、地物反射、地物高度差等导致的畸变 抛开数据,目前语义分割任务面临的问题 1. 单一任务模型很难具有通用性 结合自然语言的大模型是否会是一个新的启发点 首先需要考虑根据影像我…...
动态规划专练( 231.打家劫舍Ⅱ)
231.打家劫舍Ⅱ 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间…...
K-means和逻辑回归
逻辑回归 一个事件的几率是该事件发生的概率/该事件不发生的概率:P/(1-P) 对数几率是:log(P/(1-P)) **考虑对输入x分类的模型:**log(P/(1-P))wx 则 Pexp(wx)/(exp(w*x)…...
3.2 iHRM人力资源 - 组织架构 - 编辑及删除
iHRM人力资源 - 组织架构 文章目录 iHRM人力资源 - 组织架构一、编辑功能1.1 表单弹层并数据回显1.2 编辑校验1.3 编辑 二、删除功能 一、编辑功能 编辑功能和新增功能用的组件其实是一个,结构几乎是一样的,其实是复用了组件,我们也省去了很…...
支付系统核心逻辑 — — 状态机(JavaGolang版本)
支付系统核心逻辑 — — 状态机 代码地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/state_machine_demo 1 概念:FSM(有限状态机),模式之间转换 状态机,也叫有限状态机(…...
rest_framework_mongoengine实现后端的增删改查
rest_framework_mongoengine实现后端增删改查 一、增删改查 1. 继承ModelViewSet实现增删改查 父urls.py path("api/testapp/", include("apps.testapp.urls")), # 测试子urls.py # -*- coding: utf-8 -*- from django.urls import path from res…...
【精读文献】Scientific data|2017-2021年中国10米玉米农田变化制图
论文名称:Mapping annual 10-m maize cropland changes in China during 2017–2021 第一作者及通讯作者:Xingang Li, Ying Qu 第一作者单位及通讯作者单位:北京师范大学地理学部 文章发表期刊:《Scientific data》(…...
高光谱图像修复笔记
目录 RetinexFormer 也有MST-plus-plus代码,分辨率可以调 MST-plus-plus github地址: WACV2023 DSTrans RetinexFormer GitHub - caiyuanhao1998/Retinexformer: "Retinexformer: One-stage Retinex-based Transformer for Low-light Image E…...
GPS定位原理及应用分析
一.定位原理 1.卫星定位(GPS,北斗导航) ①.硬件构成(24颗卫星,可构建一套导航系统) 为何是24颗卫星? 可以做到全球覆盖,同一地点地球上空可观测到4颗卫星。 …...
Java面试篇9——并发编程
并发编程知识梳理 提示,此仅为面试,若想对线程有跟完整了解,请点击这里 提示:直接翻到最后面看面试真题,上面的为详解 面试考点 文档说明 在文档中对所有的面试题都进行了难易程度和出现频率的等级说明 星数越多代表…...
[RK3399 Linux] 使用busybox 1.36.1制作rootfs
一、 编译、安装、配置 busybox 1.1 下载源码 根文件系统是根据busybox来制作的。 下载地址:https://busybox.net/downloads/。 这里就以1.36.1版本为例进行编译安装介绍: 注意:编译linux内核与文件系统中的所有程序要使用相同的交叉编译器。 下载完成后解压: mkdir …...
JavaScript入门--循环
JavaScript入门--循环 一、for循环二、for in语句三、break语句四、continue语句五、while循环六、do-while语句一、for循环 先来看一个循环案例: for (i = 0; i < 5; i++) {...
【Delphi 爬虫库 1】GET和POST方法
文章目录 1.最简单的Get方法实现2.可自定义请求头、自定义Cookie的Get方法实现3.提取响应协议头4.Post方法实现单词翻译 爬虫的基本原理是根据需求获取信息并返回。就像当我们感到饥饿时,可以选择自己烹饪食物、外出就餐,或者订外卖一样。在编程中&#…...
[leetcode] 快乐数 E
:::details 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1…...
Lobe UI - 基于 AntDesign 开发的 AIGC Web 应用的开源 UI 组件库
今天推荐一个可以快速开发 ChatGPT UI 界面的组件库,质量很高,拿来就能用。 Lobe UI 是由 lobehub 团队开发的一套 web UI 组件库,和我之前推荐的很多通用型的 UI 组件库不同,Lobe UI 是专门为目前火热的 AIGC 应用开发而打造&am…...
Java常用类 -- Random类
该类实例用于生成伪随机数的流 伪随机数:通过算法算出来的数,是假的随机数 (一)具体使用 public static void main(String[] args) { Random r new Random(); System.out.println("随机出int类型的数据" r.nextIn…...
Docker安装Kong网关
文章目录 一、kong是什么?二、搭建步骤1.搭建PostgreSQL2.搭建Kong网关2.1、制作镜像2.2、数据库初始化2.3、启动Kong网关一、kong是什么? Github地址:https://github.com/Kong/kong Kong是一个可扩展、开源的云原生API网关,可以在分布式环境中管理、监控和安全地发布API…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...




