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

news2025/1/17 3:18:01

文章目录

    • 局域网
    • 虚拟局域网 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.coloradmin.cn/o/2225127.html

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

相关文章

工地安全新突破:AI视频监控提升巡检与防护水平

在建筑工地和其他劳动密集型行业,工人的安全一直是管理工作的重中之重。为了确保工地的安全管理更加高效和智能化,AI视频监控卫士。通过人工智能技术,系统不仅能实时监控,还能自动识别工地现场的安全隐患,为工地管理者…

HeterGCL 论文写作分析

HeterGCL 论文写作分析 这篇文章,由于理论证明较少,因此写作风格了polygcl是两种风格的。polygcl偏向理论的写作风格,而hetergcl就是实践派的风格 首先看标题,其的重点是Graph contrastive learning Framework。其重点是framewo…

标准日志插件项目【C/C++】

博客主页:花果山~程序猿-CSDN博客 文章分栏:项目日记_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,项目介…

HTML+CSS实现超酷超炫的3D立方体相册

效果演示 HTML和CSS实现一个简单的3D立方体加载动画的相册。它使用了HTML来构建立方体的结构&#xff0c;并通过CSS来添加样式和动画效果。 HTML <div class"loader3d"><div class"cube"><div class"face"><img src&qu…

LabVIEW偏振调制激光高精度测距系统

在航空航天、汽车制造、桥梁建筑等先进制造领域&#xff0c;许多大型零件的装配精度要求越来越高&#xff0c;传统的测距方法在面对大尺寸、高精度测量时&#xff0c;难以满足工业应用的要求。绝对测距技术在大尺度测量上往往会因受环境影响大、测距精度低而无法满足需求。基于…

社交媒体视频素材平台推荐

在内容创作日益重要的今天&#xff0c;社交媒体视频素材的需求不断增加。适合各种平台的视频素材不仅可以提升内容质量&#xff0c;还能吸引更多观众。以下是一些推荐的社交媒体视频素材平台&#xff0c;帮助你找到适合的资源。 蛙学网 蛙学网 是一个专注于社交媒体视频素材的平…

Sora高端制造业WordPress外贸主题

Sora是一款专为高端制造业设计的WordPress主题&#xff0c;由国内知名wordpress开发团队简站wordpress主题开发&#xff0c;它以红色为主色调&#xff0c;适合外贸企业出海建独立站的模板。这个主题适用于WordPress 6.0及以上版本&#xff0c;并且只服务于真正有需要的用户。主…

C++ | Leetcode C++题解之第504题七进制数

题目&#xff1a; 题解&#xff1a; class Solution { public:string convertToBase7(int num) {if (num 0) {return "0";}bool negative num < 0;num abs(num);string digits;while (num > 0) {digits.push_back(num % 7 0);num / 7;}if (negative) {dig…

论文阅读(二十六):Dual Attention Network for Scene Segmentation

文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文&#xff1a;Dual Attention Network for Scene Segmentation   论文链接&#xff1a;Dual Attention Network for Scene Segmentation   代码链接&#xff1a;Github 1.Intr…

Vue3 学习笔记(五)Vue3 模板语法详解

在 Vue3 的世界里&#xff0c;模板语法是我们构建用户界面的基石。今天&#xff0c;让我们一起深入了解 Vue3 的模板语法&#xff0c;我将用通俗易懂的语言和实用的例子&#xff0c;带你掌握这项必备技能。 1、文本插值&#xff1a;最基础的开始 想在页面上显示数据&#xff1f…

深度学习模型入门教程:从基础到应用

深度学习模型入门教程&#xff1a;从基础到应用 前言 在人工智能的浪潮中&#xff0c;深度学习作为一种强大的技术&#xff0c;正在各行各业中发挥着越来越重要的作用。从图像识别到自然语言处理&#xff0c;深度学习正在改变我们的生活和工作方式。本文将带您深入了解深度学…

OpenCV视觉分析之运动分析(3)背景减除类:BackgroundSubtractorKNN的一系列get函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 BackgroundSubtractorKNN类有一系列的get函数&#xff0c;下面我们一一列举他们的名字和用法。 一系列函数 函数getDetectShadows() getDetec…

CSS伪元素以及伪类和CSS特性

伪元素&#xff1a;可以理解为假标签。 有2个伪元素 &#xff08;1&#xff09;::before &#xff08;2&#xff09;::after ::before <!DOCTYPE html> <html> <head><title></title><style type"text/css">body::before{con…

使用Python Pillow库生成九宫格图片

相信很多人看到过九宫格图片&#xff0c;一张完整的大图被分割成九张小图&#xff0c;在朋友圈和微博里一度成为流行。 相比完整的大图&#xff0c;九宫格图文增添了一丝趣味和精致&#xff0c;也显得更有创意。 制作九宫格图片的工具有很多&#xff0c;下文用Python的PIL库来…

Puppeteer 与浏览器版本兼容性:自动化测试的最佳实践

Puppeteer 支持的浏览器版本映射&#xff1a;从 v20.0.0 到 v23.6.0 自 Puppeteer v20.0.0 起&#xff0c;这个强大的自动化库开始支持与 Chrome 浏览器的无头模式和有头模式共享相同代码路径&#xff0c;为自动化测试带来了更多便利。从 v23.0.0 开始&#xff0c;Puppeteer 进…

vue3完整Demo(数据绑定,数据显示,数据修改,数据提交)

需要引入的的依赖&#xff1a;jquery&#xff08;用于异步请求&#xff09; 一、数据显示的前端页面 条件查询数据并显示&#xff0c;下拉框使用的model双向绑定 二、js代码&#xff08;list页面的数据请求&#xff09; 后端传来的时间数据需要转换可以使用new Intl.DateTim…

【NOIP提高组】加分二叉树

【NOIP提高组】加分二叉树 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 设一个n个节点的二叉树tree的中序遍历为&#xff08;l,2,3,…,n&#xff09;&#xff0c;其中数字1,2,3,…,n为节点编号。每个节点都有一个分数&#xff08;均为正整…

【Java并发编程】信号量Semaphore详解

一、简介 Semaphore&#xff08;信号量&#xff09;&#xff1a;是用来控制同时访问特定资源的线程数量&#xff0c;它通过协调各个线程&#xff0c;以保证合理的使用公共资源。 Semaphore 一般用于流量的控制&#xff0c;特别是公共资源有限的应用场景。例如数据库的连接&am…

redis详细教程(2.List教程)

List是一种可以存储多个有序字符串的数据类型&#xff0c;其中的元素按照顺序排列&#xff08;可以重复出现&#xff09;&#xff0c;可以通过数字索引来访问列表中的元素&#xff0c;索引可以从左到右或者从右到左。 Redis 列表可以通过两种方式实现&#xff1a;压缩列表&…

力扣283-- 移动零

开始做梦的地方 力扣283 &#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 何解&#xff1f; 1&#xff0c;暴力枚举&#xff1a…