【ensp】VLAN间通信的解决办法

news2024/11/23 23:06:42

目录

VLAN间通信简介

VLAN间通信的两种方式

借助三层设备路由器进行VLAN间的通信(也就是单臂路由)

在端口上创建子接口之后为什么需要开启arp广播,是因为他是子接口吗?

拓扑图 

交换机配置

路由器配置

查看路由器配置

测试能否实现不同VLAN之间的通信

通过抓包软件我们得到以下信息,我们可以看到在发送数据包时,先发送了一个ARP包,获取Mac地址,,呼应了开头我说的数据发送过程;

通过三层交换机的虚拟接口(vlanif)进行VLAN三层通信

实验拓扑图 

交换机配置 

抓包软件抓包

分析抓包结果

为什么需要知道目标地址的Mac地址?


花有重开日,朝暮皆为少年之时。 


VLAN间通信简介

VLAN间三层通信是指在VLAN网络中,不同VLAN之间进行通信的过程。

我们知道VLAN是虚拟局域网,在一个局域网内我们是通过Mac地址进行通信,在局域网与局域网之间通过IP地址来通信,大致过程如下:

主机在发出数据包前,先会查看数据包中的目的IP地址,如果目的IP地址和本机IP地址在同一个网段上(也就是同一个局域网内,属于局域网内部通信),主机会直接发出一个ARP请求数据包来请求对方主机的MAC地址,封装数据包,继而发送该数据包。但如果目的IP地址与本机IP地址不在同一个网段(也就是局域网与局域网之间通信),那么主机也会发出一个ARP数据包请求网关的MAC地址,收到网关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 enable

interface g0/0/0.20
dot1q termination vid 20
ip add 192.168.20.254 24
arp broadcast enable

这行命令是针对华为交换机的配置命令,它用于配置交换机端口的VLAN终结信息。具体解释如下:

  1. dot1q是IEEE 802.1Q标准中定义的一种虚拟局域网(VLAN)标记协议,该协议允许在以太网帧的帧头添加VLAN标记,用来标识数据包所属的VLAN。

  2. termination是终结的意思,这个命令告诉交换机对于接收到的带有VLAN 10标记的数据进行 VLAN 终结处理,也就是识别并处理携带 VLAN 10 标记的数据包。

  3. 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地址,以便在数据链路层上进行通信。具体步骤如下:

  1. PC1知道PC2的IP地址,但不知道PC2的MAC地址。
  2. PC1发送ARP请求广播包到局域网中,询问“谁拥有IP地址为PC2的设备的MAC地址?”。
  3. PC2收到ARP请求后,会回复一个ARP响应包,包含自己的MAC地址。
  4. PC1收到PC2的MAC地址后,就可以构建ICMP包(ping包)并发送给PC2进行通信。

因此,ARP包在PC1与PC2通信时起到了解析目标MAC地址的作用,确保数据包能够正确地到达目标设备。只有获得了目标设备的MAC地址,PC1才能发送ICMP包进行通信。

 为什么需要知道目标地址的Mac地址?

每个网络设备都有唯一的MAC地址,通过MAC地址可以准确地识别和定位网络中的设备。

在局域网中,数据包是通过MAC地址来识别目标设备的。数据帧中包含了源MAC地址和目标MAC地址,以确保数据包能够准确传输到目标设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1581490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQLite数据库在Linux系统上的使用

SQLite是一个轻量级的数据库解决方案,它是一个嵌入式的数据库管理系统。SQLite的特点是无需独立的服务器进程,可以直接嵌入到使用它的应用程序中。由于其配置简单、支持跨平台、服务器零管理,以及不需要复杂的设置和操作,SQLite非…

【数据结构与算法】递推法和递归法解题(递归递推算法典型例题)

目录 【算法】递推法和递归法递推算法递推算法的特点 递归算法递归算法的特点 递归法与递推法的算法设计例题例题一:斐波那契数列(递归递推两种方法 以及 改进算法)例题二:数字三角形问题例题三:扑克牌42点问题 更多算…

Redis 八种常用数据类型常用命令和应用场景

5 种基础数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。 3 种特殊数据类型:HyperLogLog&#xff0…

Jpegli 简介:Google 开源的新一代 JPEG 编码库

互联网改变了我们的生活、工作和交流方式。然而,当页面加载缓慢时,它可能会变成令人沮丧的根源。这个问题的核心在于图像的编码。 为了改进这一点,Google 推出了 Jpegli,这是一种先进的 JPEG 编码库,它保持了高度的向…

OpenAI曾转录100万小时视频数据,训练GPT-4

4月7日,纽约时报在官网发布了一篇名为《科技巨头如何挖空心思,为AI收集数据》的技术文章。 纽约时报表示,OpenAI曾在2021年几乎消耗尽了互联网有用的文本数据源。为了缓解训练数据短缺的难题,便开发了知名开源语音识别模型Whispe…

系统架构最佳实践 -- 智慧图书管理系统架构设计

随着数字化时代的到来,智慧图书管理系统在图书馆和机构中扮演着重要的角色。一个优秀的图书管理系统不仅需要满足基本的借阅管理需求,还需要具备高效的性能、良好的扩展性和稳定的安全性。本文将讨论智慧图书管理系统的架构设计与实现,以满足…

spring Cache的基本使用

一、spring Cache基本介绍(其实是通过代理对象来进行操作的) Spring Cache 是 Spring 框架提供的一个缓存抽象,它能够轻松地集成到 Spring 应用程序中,为方法调用的结果提供缓存支持,从而提高应用程序的性能和响应速度…

基于拉格朗日分布算法的电动汽车充放电调度MATLAB程序

微❤关注“电气仔推送”获得资料(专享优惠) 程序简介 该模型主要做的是基于拉格朗日分布算法的电动汽车充放电调度模型。利用蒙特卡洛模拟法模拟出电动汽车负荷曲线,并求解出无序充电功率曲线和有序充电曲线,该模型在电动汽车个…

合并单元格的excel文件转换成json数据格式

github地址: https://github.com/CodeWang-Ay/DataProcess 类型1 需求1: 类似于数据格式: https://blog.csdn.net/qq_44072222/article/details/120884158 目标json格式 {"位置": 1, "名称": "nba球员", "国家": "美国"…

C++设计模式:原型模式(八)

1、定义与动机 定义:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 动机: 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变…

登录压力测试

目录 一、准备测试数据 1.1数据库存储过程添加数据 1.2导出为csv作为测试数据(账号、密码) 二、使用fiddler抓包查看接口 2.1.抓到相关接口信息 2.2添加线程组和http请求 2.3将前面接口需要的参数去json格式化 ​2.4填写相关信息 ​ 2.5添加http…

顺序表(C语言实现)

什么是顺序表 顺序表和数组的区别 顺序表本质就是数组 结构体初阶进阶 系统化的学习-CSDN博客 简单解释一下,就像大家去吃饭,然后左边是苍蝇馆子,右边是修饰过的苍蝇馆子,但是那个好看的苍蝇馆子一看,这不行啊&a…

Web前端-Ajax

Ajax 概念:Asynchronous JavaScript And XML,异步的JavaScript和XML。 作用: 1.数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。 2.异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等等…

「44」直播间换脸,揭开神秘的面纱……

「44」换脸神器 让你瞬间秒变「明星脸」带货 DeepFace是Facebook的人脸识别系统之一,旨在在照片和视频中准确识别和标识人脸。它使用深度学习和神经网络技术来进行高度精确的人脸匹配和验证。 DeepFace利用了大量的训练数据和先进的人脸识别算法,能够…

Redis中的集群(二)

节点 集群数据结构 redisClient结构和clusterLink结构的相同和不同之处 redisClient结构和clusterLink结构都有自己的套接字描述符和输入、输出缓冲区,这两个结构的区别在于,redisClient结构中的套接字和缓冲区是用于连接客户端的,而clust…

使用Vivado Design Suite进行功率优化

功率优化是一个可选步骤,它通过使用时钟门控来优化动态功率。它既可以在Project模式下使用,也可以在Non-Project模式下使用,并且可以在逻辑优化之后或布局之后运行,以减少设计中的功率需求。功率优化包括Xilinx的智能时钟门控解决…

git分支-分支工作流

分支工作流 现在已经掌握了分支和合并的基础知识,可以或应该如何使用它们?在本节中,我们将介绍一些常见的工作流程,这种轻量级的分支使得这些工作流程成为可能,因此我们可以决定是否要将它们纳入到自己的开发周期中。…

每天五分钟深度学习:如何理解逻辑回归算法的假设函数?

本文重点 我们在机器学习专栏中已经学习了逻辑回归算法,本次课程我们将重温逻辑回归算法,该算法适用于二分类的问题,本文主要介绍逻辑回归的假设函数。我们在学习线性回归算法的时候,我们已经知道了线性回归算法的假设hθ(x)=θTX(参数θ的转置*X),但是对于逻辑回归而言…

使用wget下载Github代码文件

前言 使用wget无法直接从Github链接直接下载代码文件,下文介绍解决方案。 解决方案 确保要下载的代码文件是公开文件,否则无法通过wget下载。 进入Github并找到要下载的代码文件,例如: 进入文件后,点击文件右侧的…

Windows完全卸载MySQL后再下载安装(附安装包)

目录 友情提醒第一章:如何完全卸载干净mysql教程(三个步骤完全卸载)1)步骤一:卸载程序2)步骤二:删除文件3)步骤三:删除注册表信息 第二章:下载软件两种方式1&…