计算机网络:数据链路层 —— 虚拟局域网 VLAN

文章目录

    • 局域网
    • 虚拟局域网 VLAN
      • 虚拟局域网 VLAN 概述
      • 实现机制
        • IEEE 802.1Q帧
        • 以太网交换机的接口类型
          • Access 接口
          • Trunk 接口
          • Hybrid 接口
          • 不进行人为的VLAN划分
          • 划分两个不同VLAN
          • Trunk接口去标签后进行转发
          • Trunk接口直接转发

局域网

局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机网络。它通常覆盖一个小的地理范围,如一个学校、一座大楼或一片厂区等。

局域网采用的传输方式为广播式,通信距离短,信号衰减较小,因此误码率较低。主要目的是使这些地理位置相邻的计算机和设备能够互相通信和共享资源。

局域网的特点

  1. 地理范围小:局域网覆盖的地理范围一般不超过几公里。

  2. 高传输速率:相比于广域网(WAN),局域网具有较高的数据传输速率,可以从几兆比特每秒(Mbps)到千兆比特每秒(Gbps)甚至更高。

  3. 低延迟:局域网内的通信通常具有较低的延迟,因为数据不需要经过复杂的路由就能到达目的地。

  4. 易于管理:由于规模较小,局域网更容易进行管理和维护。

  5. 安全性较高:局域网通常属于私有网络,对外部的访问受到严格控制,因此相比公共网络来说安全性更高。

虚拟局域网 VLAN

虚拟局域网 VLAN 概述

虚拟局域网(Virtual LocalArea Network,VLAN )是一种将局域网内的站点划分成与物理位置无关的逻辑组的技术,一个逻辑组就是一个 VLANVLAN 中的各站点具有某些共同的应用需求。

属于同一 VLAN 的站点之间可以直接进行通信,而不同VLAN中的站点之间不能直接通信。连接在同一交换机上的多个站点可以属于不同的 VLAN,而属于同一 VLAN 的多个站点可以连接在不同的交换机上。

VLAN 的划分不受物理位置的限制,网络管理员可对局域网中的各交换机进行配置,根据功能、部门及应用等因素进行逻辑分组,建立多个逻辑上独立的 VLAN

虚拟局域网 VLAN 并不是一种新型网络,它只是局域网能够提供给用户的一种服务

实现机制

虚拟局域网VLAN有多种实现技术,最常见的就是基于以太网交换机的接口来实现VLAN。这就需要以太网交换机能够实现以下两个功能:

  • 能够处理带有 VLAN 标记的帧,也就是IEEE 802.1Q帧

  • 交换机的各接口可以支持不同的接口类型,不同接口类型的接口对帧的处理方式有所不同。

IEEE 802.1Q帧

IEEE 802.1Q 帧也称为 Dot One Q 帧,它对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了 4字节的 VLAN 标签(tag)字段

![[IEEE 802.1Q帧.png]]

802.1Q帧一般不由用户主机处理,而是由以太网交换机来处理

  • 当交换机收到普通的以太网MAC帧时,会给其插入4字节的VLAN标签使之成为802.1Q帧,该处理简称为“打标签

  • 当交换机转发802.1Q帧时,可能会删除其字节的VLAN标签使之成为普通的以太网MAC帧,该处理简称为“去标签”。交换机转发802.1Q帧时也有可能不进行“去标签”处理,是否进行“去标签”处理取决于交换机的接口类型。

以太网交换机的接口类型

根据接口在接收帧和发送帧时对帧的处理方式的不同,以及接口连接对象的不同,以太网交换机的接口类型一般分为 AccessTrunk 两种。

当以太网交换机上电启动后,若之前未对其各接口进行过VLAN的相关设置,则各接口的接口类型默认为Access,并且各接口的缺省 VLAN ID 为1,即各接口默认属于VLAN1

  • 对于思科交换机,接口的缺省 VLAN ID 称为本征VLAN(NativeVLAN)

  • 对于华为交换机,接口的缺省 VLAN ID 称为端口 VLAN ID(PortVLANID),简记为PVID。交换机的每个接口有且仅有一个PVID

Access 接口

Access 接口一般用于连接用户计算机,由于其只能属于一个VLAN,因此 Access 接口的PVID值与其所属VLAN的ID相同,其默认值为1。

  • 接收处理:一般只接受“未打标签”的普通以太网MAC帧,根据接收帧的接口的PVID给帧“打标签”,即插入4字节的VLAN标签字段,VLAN标签字段中的VID取值就是接口的PVID值.

  • 转发处理:若帧中的 VID 值与接口的 PVID 值相等,则给帧“去标签”后再进行转发,否则不转发帧。因此从 Access 接口转发出的帧,是不带VLAN标签的普通以太网MAC帧

Trunk 接口

Trunk 接口一般用于交换机之间的互连Trunk 接口可以属于多个VLAN,即Trunk接口可以通过属于不同 VLAN 的帧。Trunk接口的默认PVID值为1,一般不建议用户修改,若互连的 Trunk 接口的 PVID 值不相等,则可能出现转发错误。

  • 接收处理:既可以接收“未打标签”的普通以太网MAC帧也可以接收“已打标签”的802.1Q帧。

    • 若接收到普通以太网MAC帧时,根据接收帧的接口的PVID给帧“打标签”,这与 Access 接口的处理相同。

    • 如果该帧包含 802.1Q 的VLAN标签,则不改变。

  • 转发处理:从 Trunk 接口转发出的帧,可能是普通以太网MAC帧也可能是 802.1Q 帧。

    • 对于帧的 VID 值等于接口的 PVID 值的 802.1Q 帧,将其“去标签”转发;

    • 对于帧的 VID 值不等于接口的 PVID 值的 802.1Q 帧,将其直接转发。因此,

Hybrid 接口

Hybrid 接口是华为交换机私有的接口类型。Hybrid 接口既可以用于交换机之间的互连(与 Trunk 接口相同),也可用于交换机与用户计算机之间的互连(与 Access 接口相同)。

Hybrid 接口的绝大部分功能与 Trunk 接口相同。不同点在于 Hybrid 接口的转发处理: Hybrid 接口会查看帧的VID值是否在接口的“去标签”列表中,若存在则“去标签”后转发,若不存在则直接转发。

不进行人为的VLAN划分

在一个交换机上不进行人为的 VLAN 划分,在交换机各接口默认属于 VLAN1 且类型为 Access 的情况

![[不进行人为的VLAN划分.png]]

  • 主机 A、B、C 和 D 都连接到交换机的不同端口,这些端口默认情况下都是 Access 端口,且属于 VLAN1。

  • 当主机发送广播帧时,交换机会将该帧打上 VLAN 标签(VID=1),然后转发给其他所有连接在同一交换机上的主机。

  • 接收方收到带有标签的广播帧后,会去掉标签再接收数据,这样保证了不同主机之间可以正常通信。

划分两个不同VLAN

在一个交换机上划分两个不同VLAN的情况:对交换机进行配置(通过界面或配置命令)创建 VLAN2VLAN3;将接口1和2划归到 VLAN2,接口3和4划归到 VLAN3

![[主机2.png]]

  • 在交换机上创建了两个 VLAN:VLAN2VLAN3

  • 将 接口1 和 2 划归到 VLAN2,接口3 和 4 划归到 VLAN3

  • 主机A 和 B 连接在 接口1 和 2 上,属于 VLAN2;主机C 和 D 连接在 接口3 和 4 上,属于 VLAN3

  • 当 主机A 或 B 发送广播时,交换机会将广播帧打上VLAN标签(VID=2),然后只转发给同一 VLAN 内的 主机B,不会转发给 VLAN3 下的 主机C 和 D。

  • 同理,当 主机C 或 D 发送广播时,交换机会将广播帧打上VLAN标签(VID=3),然后只转发给同一 VLAN 内的 主机D,不会转发给 VLAN2 下的 主机A 和 B。

  • 主机A 和 B 之间可以相互通信,主机C 和 D 之间也可以相互通信,但是 主机A 和 B 无法与 主机C 和 D 直接通信,因为它们处于不同的 VLAN 中。

  • 如果要让不同 VLAN 间的主机相互通信,需要通过三层设备(如路由器)进行路由转发

![[主机3.png]]

  • 左侧的 主机A 和 B 连接在交换机的 接口1 和 2 上,这两个接口的 PVID(Port VLAN ID)值均为 2,表明它们属于 VLAN2

  • 右侧的 主机C 和 D 连接在交换机的 接口3 和 4 上,这两个接口的 PVID 值均为3,表明它们属于 VLAN3

  • 当 主机A 或 B 发送广播时,交换机会将广播帧打上 VLAN 标签(VID=2),然后只转发给同一 VLAN 内的 主机B,不会转发给 VLAN3 下的 主机C 和 D。

  • 相反地,当 主机C 或 D 发送广播时,交换机会将广播帧打上 VLAN 标签(VID=3),然后只转发给同一 VLAN 内的 主机D,不会转发给 VLAN2 下的 主机A 和 B。

  • 这种情况下,主机A 和 B 之间可以相互通信,主机C 和 D 之间也可以相互通信,但是 主机A 和 B 无法与 主机C 和 D 直接通信,因为它们处于不同的 VLAN 中。

  • 如果要让不同 VLAN 间的主机相互通信,需要通过三层设备(如路由器)进行路由转发。

Trunk接口去标签后进行转发

两个交换机通过 Trunk 类型的接口互连,Trunk 接口将802.1Q帧“去标签”后进行转发的情况。

![[Trunk接口去标签后进行转发.png]]

  • Trunk 端口收到数据帧时,如果该帧不包含 802.1Q 的 VLAN 标签,将打上该 Trunk 端口的 PVID;如果该帧包含 802.1Q 的 VLAN 标签,则不改变。

  • Trunk 端口发送数据帧时,如果所发送帧的 VLAN ID 与端口的 PVID 不同,则检查是否允许该 VLAN 通过,如果允许则直接转发,不允许则直接丢弃;当该帧的 VLAN ID 与端口的 PVID 相同时,则剥离VLAN标签后转发

Trunk接口直接转发

两个交换机通过 Trunk 类型的接口互连,Trunk 接口将802.1Q帧直接转发的情况。

![[Trunk接口直接转发.png]]

  • 交换机1 和 交换机2 通过 Trunk 接口5 互连,使得 VLAN1 和 VLAN2 的信息可以在两个交换机间传输。

  • 当 主机A 或 B 发送广播时,交换机1 会将广播帧打上 VLAN 标签(VID=1),然后通过 Trunk 接口 5转发给 交换机2。

  • 交换机2 接收到带标签的广播帧后,会识别出其属于 VLAN1,并将该帧转发给主机E和F。

  • 同样地,当 主机G 或 H 发送广播时,交换机2 会将广播帧打上 VLAN 标签(VID=2),然后通过 Trunk 接口5 转发给 交换机1。

  • 交换机1 接收到带标签的广播帧后,会识别出其属于VLAN2,并将该帧转发给主机A和B。

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

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

相关文章

【Vulnhub靶场】DC-6

DC-6靶场下载地址:https://download.vulnhub.com/dc/DC-6.zip​​​​​​ 目标 本机IP:192.168.118.128 靶机IP:192.168.118.0/24 信息收集 主机发现 arp-scan 192.168.118.0/24 根据上图得出目标主机为192.168.118.143 扫描端口&#x…

深入理解Java基础概念的高级应用(1/5)

目录 1. Java内存模型:堆、栈与方法区 示例代码:对象存储位置 2. 类加载器的工作原理 示例代码:自定义类加载器 3. JVM如何执行字节码 字节码指令示例 4. Java基础数据类型的存储与操作 自动装箱与拆箱 示例代码:基础类型…

Python小游戏14——雷霆战机

首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装: bash pip install pygame 代码如下: python import pygame import sys import random # 初始化Pygame pygame.init() # 设置屏幕大小 screen_width 800 scr…

Android在kts中使用navigation及Args

Android在kts中使用navigation及Args 前言: ​ 之前在项目中使用过navigation,但都是以Groory的方式,最近一年多使用kts后忍不住把项目都改成kts的方式,不过其中也遇到不少坑,今天就讲解一下如何在kts中使用navigati…

解决蓝牙键盘按键错乱的问题

最近发现我的蓝牙键盘按下的键盘与实际不符,于是就上网搜索答案,网上的方法都试了一遍 最后想着准备退货,没想到客服直接给我解决了 原因很简单,就是之前误触了键盘的某些按键导致的 每个键盘品牌的按键因该都不同的,可…

VBA技术资料MF220:删除模块内容

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

英伟达GPU算力【自用】

GPU(图形处理单元)算力的提升是驱动当代科技革命的核心力量之一,尤其在人工智能、深度学习、科学计算和超级计算机领域展现出了前所未有的影响力。2024年的GPU技术发展,不仅体现在游戏和图形处理的传统优势上,更在跨行…

ZooKeeper 客户端API操作

文章目录 一、节点信息1、创建节点2、获取子节点并监听节点变化3、判断节点是否存在4、客户端向服务端写入数据写入请求直接发给 Leader 节点写入请求直接发给 follow 节点 二、服务器动态上下线监听1、监听过程2、代码 三、分布式锁1、什么是分布式锁?2、Curator 框架实现分布…

qt 滚动条 美化

qt QScrollBar 滚动条分为竖直与水平滚动条,两者设置上类似,但也有一些不同,下面主要讲述美化及注意事项。 一、竖直滚动条 竖直滚动条分为7个部分: sub-line、 up-arrow 、sub-page、 hanle、 add-line、 dow-arrow、 add-pag…

线性回归模型与检验 6个适用条件

当因变量与自变量间存在线性相关关系时,可以使用线性回归分析方法确定它们之间的相互依赖的定量关系。此处所说的定量关系,并非严格的因果关系,而是自变量X对因变量Y的影响或预测的作用。 例如分析广告费、产品单价、产品满意度、服务满意度…

说它是谁就是谁—Python语言中的鸭子类型

鸭子类型(Duck Typing)是动态类型语言中的一种类型推断风格,尤其在Python语言中得到了广泛的应用。它的核心思想是:“如果它走起路来像鸭子,叫起来像鸭子,那么它就是鸭子”。这句话的意思是,我们…

python_httpstat库

Python httpstat是一个基于Python的命令行工具,用于测量HTTP请求的性能和状态信息。它能够向目标服务器发送HTTP请求,并显示详细的统计信息,包括DNS解析时间、建立连接时间、TLS/SSL握手时间、首字节时间、总时间等。这些信息对于排查网络问题…

详解varint,zigzag编码, 以及在Go标准库中的实现

文章目录 为啥需要varint编码为啥需要zigzag编码varint编码解码 zigzag编码解码 局限性 为啥需要varint编码 当我们用定长数字类型int32来表示整数时,为了传输一个整数1,我们需要传输00000000 00000000 00000000 00000001 32 个 bits,而有价…

SQLite3库增删改查实现数据管理

1. SQLite3简介 SQLite3是一个轻量级的、嵌入式的关系型数据库管理系统,在保存测序数据或结果等时可使用,简单高效,并且有无需服务器、单文件存储数据、支持标准SQL、支持跨平台等优势。 本文以Sqlite3数据库为基础,创建代码示例…

tomcat基本配置

目录 1.java容器简介介绍 2.部署tomcat 2.1上传jdk 2.2创建一个软连接 2.3配置环境变量 2.4读取环境文件并且查看java版本 2.5检查jdk tomcat信息 2.6启动tomcat 2.7检测 3.tomcat 目录结构 3.1总体目录 3.2 bin目录 3.3conf 3.4 logs日志 4.运行代码 4.…

如何确保电子商务网站服务器的正常运行时间

对于电商网站而言,服务器的正常运行时间至关重要。网站宕机会直接影响销售额、客户体验以及品牌声誉。本文将详细探讨如何监控并保障服务器的正常运行时间,确保您的电商网站始终保持在线状态, 为什么监控正常运行时间很重要? 减…

【Oracle实验】字段为空的,无法通过排除判断

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.场景描述 需求:查询不是某个机构的数据。 同事SQL:where substr(bank_code,1,9) not in(014009001); 看SQL似乎没什么问题,分析…

【modbus协议】libmodbus库移植基于linux平台

文章目录 下载库函数源码编译路径添加libmodbus 源码分析核心数据结构常用接口函数 开发 TCP Server 端开发TCP Client 端 下载库函数源码 编译路径添加 libmodbus 源码分析 核心数据结构 modbus_t结构体: 这是 libmodbus 的核心数据结构,代表一个 Mod…

OSPF特殊区域及其他特性

不用的链路这状态信息没必要一直保存,要不路由器承受不了。用OSPF 特殊区域解决 1. Stub区域和Totally Stub区域 R1作为ASBR引入多个外部网段,如果Area 2是普通区域,则R3将向该区域注入5类和4类LSA。 当把Area 2配置为Stub区域后&#xff1a…

node升级package.json中的版本

由于项目使用时间过老,升级对应包版本,可以使用新功能 1.使用npm-check-updates这个工具,先全局安装 npm install -g npm-check-updates2.检查package.json中dependencies的最新版本 ncu3.更新dependencies到新版本 ncu -u也是一样的 npx…