(考研湖科大教书匠计算机网络)第三章数据链路层-第十一节:虚拟局域网VLAN概述和实现机制

news2024/9/29 17:27:11
  • 获取pdf:密码7281
  • 专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航

文章目录

  • 一:VLAN概述
    • (1)分割广播域
    • (2)虚拟局域网VLAN
  • 二:VLAN实现机制
    • (1)IEEE802.1Q帧
    • (2)交换机端口类型
      • A:Access端口
        • ①:概述
        • ②:应用举例
      • B:Trunk端口
        • ①:概述
        • ②:应用举例
      • C:Hybrid端口

本节对应视频如下

  • 【计算机网络微课堂(有字幕无背景音乐版)】:虚拟局域网VLAN概述:对应“一:VLAN概述”
  • 【计算机网络微课堂(有字幕无背景音乐版)】:虚拟局域网VLAN的实现机制对应:“二:VLAN实现机制”

一:VLAN概述

(1)分割广播域

分割广播域:以太网交换机工作在数据链路层(也包括物理层),使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域相应扩大。巨大的广播域会带来很多弊端

  • 广播风暴:广播风暴会浪费网络资源和各主机的CPU资源
  • 难以管理和维护
  • 潜在的安全问题

在这里插入图片描述

事实上,网络中会频繁出现广播信息

  • TCP/IP协议栈中的很多协议都会使用广播
    • 地址解析协议ARP :已知IP地址,找出其相应的MAC地址
    • 路由信息协议RIP :一种小型的内部路由协议
    • 动态主机配置协议DHCP :用于自动配置IP地址
  • NetBEUI:Widnows下使用的广播型协议
  • IPX/SPX: Novell网络的协议栈
  • Apple Talk:Apple公司的网络协议栈

分割广播域的方法

  • 使用路由器隔离广播域 路由器工作网络层,在默认情况下不会对广播数据包进行转发,因此路由器很自然的可以用来隔离广播域;但是路由器成本较高,所以局域网内部全部使用路由器来隔离广播域是不显示的
    在这里插入图片描述

  • 虚拟局域网技术VLAN应运而生 下面介绍

(2)虚拟局域网VLAN

虚拟局域网VLAN(Virtual Local Area Network):是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求

如下图所示,一、二、三楼分别有一个局域网,可将它们通过另外一个交换机互连成一个更大的局域网,那么原来每一个局域网就成为现在这个局域网的一个网段。网络中的各主机属于同一个广播域,某个主机发送的广播数据包,其他所有数据都可以收到

在这里插入图片描述

根据应用需求,我们将该局域网划分为两个VLAN:VLAN1和VLAN2,此后VLAN1中的广播数据包不会送到VLAN2、VLAN2中的广播数据包也不会送到VLAN1。也就是说,同一个VLAN内部可以通信,不同VLAN之间不能通信

在这里插入图片描述

二:VLAN实现机制

VLAN实现机制:要想实现VLAN,则要求交换机能够实现以下两大功能

  • 能够处理带有VLAN标记的帧(IEEE802.1Q帧)
  • 交换机各端口可以支持不同的端口类型

(1)IEEE802.1Q帧

IEEE802.1Q帧:也称之为Dot One Q帧,它对以太网的MAC帧进行了扩展,插入了4字节的VLAN标记

  • 如下图分别是以太网V2的MAC帧(最大长度为1518字节)和插入VLAN标记后的802.1Q帧(最大长度1522字节)
    在这里插入图片描述

VLAN标记的最后12比特称之为VLAN标识符VID,它唯一地标识了以太网帧属于哪一个VLAN

  • VID取值范围是0~4095
  • 其中0和4095都不用来表示VLAN,因此VLAN有效取值范围是1~4094

需要注意的是,802.1Q帧是由交换机来处理的,而不是用户主机来处理的

  • 打标签:当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧
  • 去标签:当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧

(2)交换机端口类型

交换机端口类型:有以下三种

  • Access
  • Trunk
  • Hybrid(思科交换机没有此端口)

交换机各端口的缺省VLAN ID

  • 在思科交换机. 上称为Native VLAN,即本征VLAN
  • 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID(下面使用PVID进行描述)

A:Access端口

①:概述

Access端口:Access端口一般用于连接用户计算机,只能属于一个VLAN,其PVID值与端口所属VLAN的ID相同(默认为1)

  • Access端口接收处理方法:一般只接受“未打标签”的普通以太网MAC帧。根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。如下图
  • Access端口发送处理方法:若帧中的VID与端口的PVID相等,则“去标签”并转发该帧,否则不转发。如下图

②:应用举例

如下图,我们的应用需求是将主机A和主机B划归到VLAN2、将主机C和主机D划归到VLAN3,这样VLAN2中的广播帧不会传送到VLAN3、VLAN3中的广播帧也不会传送到VLAN2。为实现这样的需求,可以在交换机上创建VLAN2和VLAN3,然后

  • 将端口1和2划归到VLAN2,也即端口1和2的PVID取值为2
  • 将端口3和4划归到VLAN3,也即端口3和4的PVID取值为3

在这里插入图片描述

我们来看一下主机A发送广播帧时的情况

  • 该帧从交换机的端口1进入交换机,由于端口1的类型是Access,所以会对接收到未打标签的普通以太网MAC帧打标签,也即插入4字节的VLAN标记字段

  • 由于端口1的PVID值为2,因此所插入的4字节VLAN标记字段中的VID值也等于2
    在这里插入图片描述

  • 广播帧中的VID取值与端口2的PVID取值都等于2,因此,交换机会从端口2对帧进行去标签转发
    在这里插入图片描述

我们来看一下主机C发送广播帧时的情况

  • 该帧从交换机的端口3进入交换机,由于端口3的类型是Access,所以会对接收到未打标签的普通以太网MAC帧打标签,也即插入4字节的VLAN标记字段

  • 由于端口3的PVID值为3,因此所插入的4字节VLAN标记字段中的VID值也等于3
    在这里插入图片描述

  • 广播帧中的VID取值与端口4的PVID取值都等于3,因此,交换机会从端口4对帧进行去标签转发
    在这里插入图片描述

B:Trunk端口

①:概述

Trunk端口:一般用于交换机之间路由器之间的互连。它可以属于多个VLAN,也就是说Trunk端口可以接收和发送多个VLAN的帧。用户可以设置Trunk端口的PVID值,默认情况下,Trunk端口的PVID取值为1

  • Trunk端口发送处理方法
    • 对VID等于PVID的帧:“去标签” 再转发
    • 对VID不等于PVID的帧:直接转发
  • Trunk端口接收处理方法
    • 接收未打标签的帧:根据接收帧的端口的PVID给帧打标签,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等
    • 接收已打标签的帧

②:应用举例

如下图所示,两台交换机互连而成了一个交换式以太网,我们的应用需求是将主机A、B、E和F划归到VLAN1、将主机C、D、G和H划归到VLAN2

  • 在两个交换机上创建VLAN2,并将它们的端口3和4都划归到VLAN2,其相应的PVID值等于2,两个交换机端口1和2保持默认配置即可
  • 两个交换机互连的端口5,需要将其类型更改为Trunk类型,PVID保持默认的1

在这里插入图片描述

我们来看一下主机A发送广播帧时的情况

  • 该帧从交换机的端口1进入了交换机,由于端口1的类型是Access,所以会对接收到未打标签的普通以太网MAC帧打标签,也即插入4字节的VLAN标记字段

  • 由于端口1的PVID值为1,因此所插入的4字节VLAN标记字段中的VID值也等于1
    在这里插入图片描述

  • 该广播帧中VID的取值与端口2的PVID取值相等,都等于1

  • 端口2的类型是Access,因此,交换机1会从端口2对帧进行去标签转发
    在这里插入图片描述

  • 该广播帧中VID的取值与端口5的PVID取值相等,都等于1

  • 端口5的类型是Trunk,因此,交换机1会从端口5对帧进行去标签转发

  • 很显然,该广播帧会从交换机2的端口5进入交换机
    在这里插入图片描述

  • 交换机2会对接收到的未打标签的普通以太网MAC帧打标签,也即插入4字节的VLAN标记字段

  • 由于端口5的PVID值等于1,因此所插入的4字节VLAN标记字段中的VID值也等于1
    在这里插入图片描述

  • 该广播帧中VID的取值与端口1和2的PVID取值相等,都等于1

  • 端口1和2的类型是Access,因此交换机2会从端口1和2对帧进行去标签转发
    在这里插入图片描述

我们来看一下主机C发送广播帧时的情况

  • 该帧从交换机的端口3进入了交换机,由于端口3的类型是Access,所以会对接收到未打标签的普通以太网MAC帧打标签,也即插入4字节的VLAN标记字段

  • 由于端口3的PVID值为2,因此所插入的4字节VLAN标记字段中的VID值也等于2
    在这里插入图片描述

  • 该广播帧中VID的取值与端口4的PVID取值相等,都等于2

  • 端口4的类型是Access,因此,交换机1会从端口4对帧进行去标签转发
    在这里插入图片描述

  • 该广播帧中VID的取值与端口5的PVID取值不相等,所以会直接转发

  • 很显然,该广播帧会从交换机2的端口5进入交换机
    在这里插入图片描述

  • Trunk端口接收已打标签的802.11Q帧
    在这里插入图片描述

  • 该广播帧中VID的取值与端口3和4的PVID取值相等,都等于2

  • 端口3和4的类型是Access,因此交换机2会从端口3和4对帧进行去标签转发
    在这里插入图片描述

C:Hybrid端口

Hybrid端口:Hybrid端口既可以用于交换机之间或交换机与路由器之间的互连(与Trunk端口相同),也可以用于交换机与用户计算机之间的互连(与Access端口相同),除此之外,Hybrid端口的绝大部分功能与Trunk端口相同,不同在于Hybrid端口的发送处理方法。Hybrid端口会查看帧的VID是否在端口的去标签列表中

  • 若存在:则去标签后再转发
  • 若不存在:则直接转发

如下图,主机A、B、C连接在同一个交换机的不同接口上。利用Hybrid端口的功能实现“A和B都能与C相互通信,但A与B不能相互通信”。我们可以将这三台主机所连接的交换机的三个端口划分到不同VLAN,并且端口类型设置为Hybrid,假设这三个VLAN分别是VLAN10、VLAN20和VLAN30,PVID分别是10、20和30

  • 在端口1的去标签列表中配置VLAN10和VLAN30
  • 在端口2的去标签列表中配置VLAN20和VLAN30
  • 在端口3的去标签列表中配置VLAN10、VLAN20和VLAN30

在这里插入图片描述

主机A给C发送数据帧

  • 该帧从交换机的端口1进入交换机

  • 由于端口1的类型为Hybrid,它会对接受到的未打标签的普通以太网MAC帧打标签,也即插入4字节VLAN标记字段

  • 由于端口1的PVID值为10,所以插入的4字节的VLAN标记字段中VID取值也应该是10
    在这里插入图片描述

  • 该帧将从端口3转发

  • 由于帧中的VID取值在端口3的去标签列表中,因此该帧被去标签转发

  • 这样主机C就可以收到主机A发送的数据帧
    在这里插入图片描述

主机B给C发送数据帧

  • 该帧从交换机的端口2进入交换机
  • 由于端口2的类型为Hybrid,它会对接受到的未打标签的普通以太网MAC帧打标签,也即插入4字节VLAN标记字段
  • 由于端口2的PVID值为20,所以插入的4字节的VLAN标记字段中VID取值也应该是20
  • 该帧将从端口3转发
  • 由于帧中的VID取值在端口3的去标签列表中,因此该帧被去标签转发
  • 这样主机C就可以收到主机B发送的数据帧
    在这里插入图片描述

主机A给B发送数据帧

  • 该帧从交换机的端口1进入交换机

  • 由于端口1的类型为Hybrid,它会对接受到的未打标签的普通以太网MAC帧打标签,也即插入4字节VLAN标记字段

  • 由于端口1的PVID值为10,所以插入的4字节的VLAN标记字段中VID取值也应该是10
    在这里插入图片描述

  • 该帧将从端口2转发

  • 由于帧中VID取值不在端口2的去标签列表中,则直接转发

  • 这样主机B就会收到一个带有标记的802.1Q帧,但主机B无法识别这种帧,只能选择丢弃

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

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

相关文章

LeetCode题目笔记——15. 三数之和

文章目录题目描述题目链接题目难度——中等方法一:暴力(参考)代码/Python 参考方法二:哈希代码/Python参考方法三:排序双指针代码/Python代码/C总结题目描述 龙门阵:这个n个数之和是不是有什么深意啊&#…

Python中的类和对象(6)

文章目录1.多态2.类继承的多态3.自定义函数的多态4.鸭子类型5.思维导图1.多态 多态在编程中是一个非常重要的概念,它是指同一个运算符、函数或对象在不同的场景下,具有不同的作用效果,这么一个技能。 我们知道加号()…

加载sklearn新闻数据集出错 fetch_20newsgroups() HTTPError: HTTP Error 403: Forbidden解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

大数据框架之Hadoop:入门(五)Hadoop编译源码(面试重点)

5.1 前期准备工作 1.CentOS联网 配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的 注意:采用root角色编译,减少文件夹权限出现问题 2.jar包准备(hadoop源码、JDK8、maven、ant 、protobuf) (1)hadoop-2.7.7-sr…

【TCP的拥塞控制】基于窗口的拥塞控制

TCP的拥塞窗口CWND大小和传输轮次n的关系如下所示。(本题10分) cwnd12481632333435363738394041422122232425261248N1234567891011121314151617181920212223242526 问题: (1)慢开始阶段的时间间隔?&#…

NFC enable NFC使能流程

同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。 NFC enable NFC使能流程 认识nfc系统如何工作,最好的方法就是了解nfc的各个流程,…

linux系统下SVN服务器搭建

linux新手,整了好几天才搞好,做下笔记以备后续使用: 1、下载svn服务器 yum -y install subversion 2、创建仓库 svnadmin create /opt/svn/pro/respos1 svnadmin create /opt/svn/pro/respos2 3、配置用户以及权限 1:cd到仓库目录下&#…

py3常用返回规则字符串的函数+ascii与char的转换

文章目录py3常用返回规则字符串的函数字符转ascii以及ascii转字符的方法为:py3常用返回规则字符串的函数 注明原来的网址为:https://docs.python.org/3.8/library/string.html string.ascii_letters 返回所有的大写、小写字母 string.ascii_lowercase 返…

寒假安全作业nginx-host绕过实例复现

1.测试环境搭建 LNMP架构的话,肯定就是linux、nginx、mysql、php四大组件。在后面的复现中我们还会用到https的一部分知识,故这里的nginx就需要使用虚拟主机并且配置https证书,且具有php解析功能。 1.1 基础nginx配置 #1.创建web目录 mkdir …

MySQL-InnoDB行格式浅析

简介 我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时, InnoDB 存储引擎需要一条一条的把记录从磁盘上读出来么? 不,那样会慢死,InnoDB 采取的方式是&#xff1a…

雅思经验(十三)

感觉这篇其实有点小难,我在精听的才发现那是六个实验对象,但是叫做six subjects在精听的时候感觉有些手忙脚乱,像是一团乱麻一样,但是也是没有什么关系。其实这才是查漏补缺,cello player 这是大提琴师violinists 小提…

08- 数据升维 (PolynomialFeatures) (机器学习)

在做数据升维的时候,最常见的手段就是将已知维度进行相乘(或者自乘)来构建新的维度 使用 np.concatenate()进行简单的,幂次合并,注意数据合并的方向axis 1 数据可视化时,注意切片,因为数据升维…

SpringDI自动装配BeanSpring注解配置和Java配置类

依赖注入 上篇博客已经提到了DI注入方式的构造器注入&#xff0c;下面采用set方式进行注入 基于set方法注入 public class User {private String name;private Address address;private String[] books;private List<String> hobbys;private Map<String,String>…

【Linux】多线程编程 - 概念/pthread库调用接口/互斥

目录 一.线程概念 1.Linux中线程如何实现 2.POSIX线程库: pthread第三方线程库 3.线程与进程的数据存放问题 4.线程的"高效"具体体现在哪 5.线程优缺点 二.线程控制 0.关于pthread_t类型 1.线程创建 2.线程终止 3.线程等待 4.线程分离 5.代码验证 三.线…

你期待已久的《动手学深度学习》(PyTorch版)来啦!

《动手学深度学习》全新PyTorch版本&#xff0c;李沐和亚马逊科学家阿斯顿张等大咖作者强强联合之作&#xff0c;机器学习、深度学习领域重磅教程&#xff0c;交互式实战环境&#xff0c;配套资源丰富&#xff01; 面向中文读者的能运行、可讨论的深度学习入门书。 动手学深度…

一个优质软件测试工程师简历的范文(一定要收藏)

很多刚转行软件测试的小伙伴是不是不知道怎么写好一份优质的软件测试工程师的简历。今天呢&#xff0c;就给大家分享一下一个优质软件测试工程师简历的范文。记得收藏起来哦。 下面的案例&#xff1a;2-3年的软件测试工程的简历 姓 名&#xff1a;XXX 学历&#xff1a…

2023备战金三银四,Python自动化软件测试面试宝典合集(五)

接上篇八、抓包与网络协议8.1 抓包工具怎么用 我原来的公司对于抓包这块&#xff0c;在 App 的测试用得比较多。我们会使用 fiddler 抓取数据检查结果&#xff0c;定位问题&#xff0c;测试安全&#xff0c;制造弱网环境;如&#xff1a;抓取数据通过查看请求数据&#xff0c;请…

FPGA实现不同分辨率视频切换输出,串口协议帧控制,提供工程源码和技术支持

目录1、不同分辨率视频切换输出原理2、设计思想和架构详解3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、不同分辨率视频切换输出原理 不同分辨率的视频输出对应不同的时序和时钟&#xff0c;一般情况下是不存在同时或分时输出的&#xff0c;但…

结构体变量

C语言允许用户自己建立由不同类型数据组成的组合型的数据结构&#xff0c;它称为结构体&#xff08;structre&#xff09;。 在程序中建立一个结构体类型&#xff1a; 1.结构体 建立结构体 struct Student { int num; //学号为整型 char name[20]; //姓名为字符串 char se…

基于spring boot +opencv 实现车牌识别、人脸识别、证件识别等功能 附完整代码 毕业设计

界面展示: 这是一个基于spring boot + opencv 实现的项目贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点以学习交流为目的&