数据链路层-第十一节:虚拟局域网VLAN概述和实现机制
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层-第十一节:虚拟局域网VLAN概述和实现机制相关的知识,希望对你有一定的参考价值。
文章目录
本节对应视频如下
- 【计算机网络微课堂(有字幕无背景音乐版)】:虚拟局域网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无法识别这种帧,只能选择丢弃
以上是关于数据链路层-第十一节:虚拟局域网VLAN概述和实现机制的主要内容,如果未能解决你的问题,请参考以下文章