当前位置: 首页 > news >正文

计算机网络-VLAN原理与配置

之前我们学习了以太网的基础知识,了解了网络交换设备的发展,交换机的工作原理,广播域和冲突域。

一、概述

还简单了解了以太网的CSMA/CD通讯机制,以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。CSMA/CD是一种媒体访问控制方法,用于解决网络中多个节点同时发送数据时可能发生的冲突。在CSMA/CD协议中,所有节点在发送数据前都会先侦听信道是否空闲。如果信道空闲,节点会发送数据;如果信道忙碌,节点则会等待一段时间后再次侦听。当两个或更多的节点同时发送数据时,会导致信号发生碰撞。当发生碰撞时,节点会检测到冲突并停止发送数据。其特征是共享通信介质。当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用。

大家可以想象一下多个交换机串联在一起,有几十台或者几百台交换机进行连接时候,那时候所有的广播数据需要整个网络泛洪会出现什么情况?为了解决这个问题出现了VLAN (Virtual Local Area Network)虚拟局域网,用于隔离广播域。

传统以太网现象: 传统以太网

划分VLAN后: 划分VLAN

二、VLAN的定义与数据格式

2.1 VLAN的原理

VLAN (Virtual Local Area Network)虚拟局域网,特点:

  • 不受地域限制。
  • 同一VLAN内的设备才能直接进行二层通信。

其实可以理解为在交换机内部进行分组,打上标签,属于同组的端口才会进行互相通信。数据链路还是需要通过物理链路进行数据传输的,VLAN只是基于端口进行逻辑隔离。

VLAN通信
VLAN通信

VLAN通过标签识别不同VLAN,VLAN标签 (VLAN Tag)。在二层数据帧直接插入一个VLAN标签。 VLAN标签

VLAN数据帧
VLAN数据帧

VLAN的实现:没有Tag的原始数据帧进入交换机端口被依据IEEE 802.1Q标准(也被称为Dot1Q)定义了一个标记。 VLAN实现

2.2 VLAN的划分方式

有多种划分VLAN的方式,一般常用的就是基于交换机的端口进行划分,其他的比较少见。 VLAN划分方式

VLAN的范围:1~4094,交换机的默认VLAN,VLAN 1,默认交换机所有端口都属于VLAN 1,属于同一个广播域。 基于接口的VLAN划分

三、VLAN的接口类型

思考下,两台交换机都有不同的VLAN,然后交换机间通过线缆连接,那两个连接的接口划分什么VLAN才能使不同VLAN通信呢,配置接口为单个VLAN肯定不能实现全部VLAN互通是吧,因此在二层网络VLAN提供了三种不同的接口类型,以实现不同的功能与使用。

VLAN接口类型
VLAN接口类型

3.1 ACCESS接口

VLAN ID,数据帧中携带的VLAN号,PVID,端口的默认VLAN ID。默认为VLAN1。

ACCESS接口仅允许VLAN ID与接口PVID相同的数据帧通过。 ACCESS接口

简单讲就是接口配置了VLAN后,数据帧进入端口会打上PVID,转发数据时,只会从相同PVID接口转发,就是不同VLAN不会转发和泛洪。

注意:数据帧在交换机内部都是带有VLAN Tag的,只有在发出时才会根据PVID进行剥离或者转发。

一般用于连接电脑、服务器等终端设备。

3.2 Trunk接口

对于Trunk接口,除了要配置PVID外,还必须配置允许通过的VLAN ID列表,其中VLAN 1是默认存在的。

Trunk接口
Trunk接口

Trunk口有一个允许通信的VLAN列表,只有在允许列表才允许通过。允许多个VLAN通过,只允许PVID的数据帧剥离为无tag数据。

Trunk接口特点:

  • Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过。
  • Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。

Trunk口一般用于交换机之间,Trunk接口还可以用于连接无线AP实现本地转发,以及通过一些特殊配置实现不同VLAN通信。

3.3 Hybrid接口

交换机Hybrid接口是一种特殊的端口模式,它结合了Access接口和Trunk接口的功能。这种接口模式允许多个VLAN的流量通过,并且可以指定哪些VLAN的数据帧被剥离标签。Hybrid接口的主要特点是它具有高隔离度的波分和复用功能,可以实现多个VLAN之间的灵活通信和访问控制。

Hybrid接口特点:

  • Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过。
  • Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag。
  • 与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过。
Hybrid接口
Hybrid接口

Hybrid接口结合了access和trunk接口的特点,但是好像我实践中用得比较少,一般如果是标准配置上述两个接口也已经足够了。

四、VLAN的最佳实践

结论
结论
access与trunk接口
access与trunk接口
hybrid
hybrid

现实情况下可以灵活使用几种接口实现需求。 配置:

# 创建VLAN
[Huawei] vlan vlan-id# 批量创建vlan
[Huawei] vlan batch { vlan-id1 [ to vlan-id2 ] }# 配置接口类型为ACCESS,必须创建和VLAN才能进行划分VLAN ID
[Huawei-GigabitEthernet0/0/1] port link-type access# 配置Access的默认VLAN
[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id # 配置接口类型Trunk口
[Huawei-GigabitEthernet0/0/1] port link-type trunk# 配置trunk接口放行列表
[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }# 配置trunk的默认VLAN
[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id# 配置接口类型Hybrid
[Huawei-GigabitEthernet0/0/1] port link-type hybrid# 配置接口untagged或者tagged的vlan
[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }# 配置Hybrid接口的缺省VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id# hybrid接口隐含配置
port link_type hybrid
port hybrid pvid vlan 1
port hybrif untagged vlan 1

总结:以太网通过VLAN实现隔离广播域,一般通过接口进行VLAN划分,现实中一般是一个VLAN对应一个子网网段。有三种接口类型,用得较多的是ACCESS用于连接终端,Trunk用于交换机之间互联,Hybrid可以灵活实现复杂的VLAN通信,使用没有那么多。

本文由 mdnice 多平台发布

相关文章:

  • 跟我学c++中级篇——再谈C++20中的协程
  • leetcode07-罗马数字的转换
  • 盛最多水的容器【双指针】
  • 数据结构OJ实验14-哈希查找
  • Redisson依赖冲突记录
  • STC进阶开发(三)蜂鸣器、RTC时钟、I2C总线、外部中断、RTC闹钟设置、RTC计时器设置
  • C语言——指针
  • 百度吉利合作造车生态,极越“智价比”能否带来科技平权?
  • 数据库管理-第127期 LSM Tree(202301225)
  • openFeign服务调用
  • 惊人技术!重新定义人机互动:深入了解神经链接的脑机接口技术
  • Android studio 花式按键
  • 【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器
  • Golang高质量编程与性能调优实战
  • 分类模型评估方法
  • Facebook AccountKit 接入的坑点
  • JSDuck 与 AngularJS 融合技巧
  • js数组之filter
  • linux安装openssl、swoole等扩展的具体步骤
  • python学习笔记 - ThreadLocal
  • React的组件模式
  • React系列之 Redux 架构模式
  • 从重复到重用
  • 翻译--Thinking in React
  • 服务器从安装到部署全过程(二)
  • 观察者模式实现非直接耦合
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 模型微调
  • 数组的操作
  • 小程序button引导用户授权
  • 阿里云服务器购买完整流程
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #在 README.md 中生成项目目录结构
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (二)斐波那契Fabonacci函数
  • (二)学习JVM —— 垃圾回收机制
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (区间dp) (经典例题) 石子合并
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)visual stdio 书签功能介绍
  • (转)Windows2003安全设置/维护
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net core控制台应用程序初识
  • .Net 代码性能 - (1)
  • .NET委托:一个关于C#的睡前故事
  • @Import注解详解
  • @我的前任是个极品 微博分析
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [Angular] 笔记 7:模块