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

VLAN协议简介

VLAN简介

定义

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。

目的

以太网是目前应用最普遍的局域网技术,它是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过交换机实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。

经典以太网

交换式以太网

在这种情况下出现了VLAN技术,这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文就被限制在一个VLAN内。

作用

  • 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
  • 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
  • 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

标准协议协议

  • IEEE 802.1q协议,由IEEE于1999年颁布,是VLAN实现方案的标准协议,允许多个网桥(Bridge)在信息不被外泄的情况下公开的共享同一个实体网上。IEEE 802.1q-英文缩写写为dot1q。
  • IEEE 802.1p协议,是IEEE 802.1Q(VLAN标签技术)标准的扩展协议,两者共同运作,使第二层网上交换器能够提供流量优先级和动态多播过滤服务。
  • IEEE 802.1ad协议,或称为QinQ、vlan stacking,是一种以802.1Q为基础衍生出来的通讯协定。原始802.1Q为允许加入单一Vlan header。QinQ允许两个Vlan header被放置在同一个frame中。

VLAN的基本概念

VLAN标签

要使设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。

VLAN帧格式

单层VLAN数据帧

图:VLAN数据帧格式

字段解释:

TPID字段,长度为2Byte

含义:Tag Protocol Identifier(标签协议标识符),表示数据帧类型。

取值:表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。 各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。

PRI字段,长度为3bit

含义:Priority,表示数据帧的802.1Q优先级。

取值:取值范围为0~7,值越大优先级越高。当网络阻塞时,设备优先发送优先级高的数据帧。

CFI字段,长度为1bit

含义:Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。

取值:CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。

VID字段,长度12bit

含义:VLAN ID,表示该数据帧所属VLAN的编号。

取值:VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。设备利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内。

双层VLAN数据帧

  • 内层 VLAN Tag:为用户的私网 VLAN Tag,Customer VLAN Tag (简称 CVLAN)。设备依靠该 Tag 在私网中传送报文。
  • 外层 VLAN Tag:为运营商分配给用户的公网 VLAN Tag, Service VLAN Tag(简称 SVLAN)。设备依靠该 Tag 在公网中传送 QinQ 报文。

以太网帧类型

在一个VLAN交换网络中,以太网帧主要有以下两种类型:

  • 有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
  • 无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。

接口类型

在以太网中,有些设备如路由器交换机可以处理Tagged帧和Untagged帧,有些设备如电脑手机等只能处理Untagged帧,要使这些设备交互,就需要接口能够识别Untagged帧并在收发时给帧添加、剥除VLAN标签。同时,现网中属于同一个VLAN的用户可能会被连接在不同的设备上,且跨越设备的VLAN可能不止一个,如果需要用户间的互通,就需要设备间的接口能够同时识别和发送多个VLAN的数据帧。

为了适应不同的连接和组网,设备定义了Access接口、Trunk接口和Hybrid接口3种接口类型。

Access接口

Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。它只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag。

Trunk接口

Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的终端。它可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。

Hybrid接口

Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等)和网络设备(如Hub),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。

缺省VLAN

缺省VLAN又称PVID(Port Default VLAN ID)。当设备收到Untagged帧时,就需要给该帧添加Tag,添加什么Tag,就由接口上的缺省VLAN决定。

接口收发数据帧时,对Tag的添加或剥除过程。

  • 对于Access接口,缺省VLAN就是它允许通过的VLAN,修改缺省VLAN即可更改接口允许通过的VLAN。
  • 对于Trunk接口和Hybrid接口,一个接口可以允许多个VLAN通过,但是只能有一个缺省VLAN。接口的缺省VLAN和允许通过的VLAN需要分别配置,互不影响。

典型应用场景

单台交换机VLAN内互访

组网需求:

  • PC1和PC2之间可以互相访问;
  • PC3和PC4之间可以互相访问;
  • 其他PC之间禁止互相访问

配置说明

  • E0/1:Access端口,untag加入vlan1;
  • E0/2:Access端口,untag加入vlan1;
  • E0/3:Access端口,untag加入vlan2;
  • E0/4:Access端口,untag加入vlan2;

多台交换机VLAN内互访

组网需求:

  • PC1和PC2之间可以互相访问;
  • PC3和PC4之间可以互相访问;
  • 其他PC之间禁止互相访问

配置说明

SwtichA:

  • E0/1:Access端口,untag加入vlan1;
  • E0/3:Access端口,untag加入vlan2;
  • G2/1:Trunk端口,tag加入vlan1和vlan2

SwtichB:

  • E0/2:Access端口,untag加入vlan1;
  • E0/4:Access端口,untag加入vlan2;
  • G2/1:Trunk端口,tag加入vlan1和vlan2

单台交换机VLAN间互访

组网需求:

  • PC1和PC2之间可以互相访问;
  • PC1和PC3之间可以互相访问;
  • PC1、PC2、PC3和Server之间可以互相访问
  • 其他PC之间禁止互相访问

配置说明

  • E0/1:Hybrid端口,归属v10,同时untag加入v20,v30,v100
  • E0/2:Hybrid端口,归属v20,同时untag加入v10,v100
  • E0/3:Hybrid端口,归属v30,同时untag加入v10,v100
  • G2/1: Hybrid端口,归属v100,同时untag加入v10,v20,v30

多台交换机VLAN间互访

组网需求:

  • PC1和PC3之间可以互访;
  • PC2和PC3之间可以互访;
  • PC1和PC4之间可以互访;
  • PC2和PC5之间可以互访;
  • 其余PC之间均禁止互相访问。

配置说明:

SwithA:

  • E0/1:Hybrid端口,加入v10,同时untag加入v30
  • E0/2:Hybrid端口,加入v20,同时untag加入v30
  • E0/3:Hybrid端口,加入v30,同时untag加入v10,v20
  • G2/1:Hybrid端口,tag加入v10,v20

SwitchB:

  • E0/1:Access端口,加入v10
  • E0/1:Access端口,加入v10
  • G1/1:Hybrid端口,tag加入v10,v20.

注:交换机间的Hybrid端口,等价于Trunk端口

QinQ网络拓扑

用户网络A和B的私网VLAN分别为VLAN 1~10 和VLAN 1~20。运营商为用户网络A和B分配的公网VLAN分别为VLAN 3 和VLAN 4。

  • 当用户网络 A 和 B 中带私网 VLAN Tag 的报文进入运营商网络时,报文外面就会被分别封装上 VLAN 3 和 VLAN 4 的公网 VLAN Tag。
  • 来自不同用户网络的报文在运营商网络中传输时被隔离,即使这些用户网络各自的 VLAN 范围存在重叠,因为分配到的公网 VLAN 不同,在运营商网络中传输时也不会产生冲突。
  • 当报文穿过运营商网络,到达运营商网络另一侧 PE(Provider Edge,服务提供商网络边缘)设备后,报文被剥离公网 VLAN Tag,然后再传送给用户网络的 CE(Customer Edge,用户网络边缘)设备。

原创不易,你的支持是我最大的动力,欢迎大家点赞,收藏,关注!

http://www.dtcms.com/a/548551.html

相关文章:

  • 递归专题1 - 递归基础与思维方法
  • 黄金分割与对数螺线
  • Vue 数据绑定深入浅出:从 v-bind 到 v-model 的实战指南
  • python - day10
  • MySQL 中的 行锁(Record Lock) 和 间隙锁(Gap Lock)
  • 【Docker】P1 Docker 基础入门指南
  • 【OD刷题笔记】- API集群负载统计
  • 韩城市网站建设wordpress 手工网站
  • Java—常见API(String、ArrayList)
  • 【STM32项目开源】STM32单片机医疗点滴控制系统
  • 游戏类网站备案需要前置审批吗怎么制作图片表格
  • AWS EC2 服务器弹性伸缩:基于 CPU 使用率创建伸缩组,实现资源动态调整
  • srt服务器,推拉流
  • Rust API 设计中的零成本抽象原则:从原理到实践的平衡艺术
  • Work-Stealing 调度算法:Rust 异步运行时的核心引擎
  • 服务器恶意进程排查:从 top 命令定位到病毒文件删除的实战步骤
  • 【案例实战】初探鸿蒙开放能力:从好奇到实战的技术发现之旅
  • 服务器启动的时候就一个对外的端口,如何同时连接多个客户端?
  • LVS负载均衡集群理论详解
  • 三维重建【0-E】3D Gaussian Splatting:相机标定原理与步骤
  • Flutter---ListTile列表项组件
  • Spring Boot入门篇:快速搭建你的第一个Spring Boot应用
  • 《算法通关指南数据结构和算法篇(1)--- 顺序表相关算法题》
  • ReentrantLock 加锁与解锁流程详解(源码分析,小白易懂)
  • 鸿蒙Flutter三方库适配指南:06.插件适配原理
  • Linux 防火墙实战:用 firewalld 配置 External/Internal 区域,实现 NAT 内网共享上网
  • Java 学习29:方法
  • Kafka 全方位详细介绍:从架构原理到实践优化
  • Obsidian 入门教程(二)
  • [测试工具] 如何把离线的项目加入成为git项目的新分支