1.前言

在网络通信术语会经常出现Virtual一词,如Virtual Local Area Network(VLAN),Virtual Private Network(VPN),Virtual Router Redundancy Protocol(VRRP)等。本篇要介绍的是VLAN,即虚拟局域网。

在网络中,我们把一个广播帧所能到达的整个范围称为二层广播域,简称为广播域。显然,一个交换网络其实就是一个广播域。同样的会产生相应的问题,如网络安全问题和垃圾流量的问题。简单解释一下:

【1】网络安全问题:如果你想简单的发送数据到PC1,网络中有一部分交换机没有到达PC1的MAC地址表,那就会执行防洪操作,即将你的数据进行广播发送出去,这样就有非PC1的主机收到你的数据。这将产生安全问题。

【2】垃圾流量问题:和前面的问题一致,就是本来就需要一条通道可以到达目的,结果出现了很多并且无用的通道来传输数据,那么网络就有很多垃圾流量。这会浪费网络的带宽资料以及计算机的处理资源。

2. VLAN的简单介绍

(1)所以我们引入了VLAN技术,可以将一个规模较大的广播域在逻辑上划分成若干个不同的,规模较小的广播域,这将有效提升网络的安全性,同时减少垃圾流量,节约网络资料。

(2)我们通常把划分前的,规模较大的广播域称为LAN,而把划分后,规模较小的每一个广播域称为一个 Virtual LAN或VLAN。例如,当我们把一个规模较大的广播域划分成4个规模较小的广播域,就可以说是把一个LAN划分成4个VLAN。

(3)二层通信和三层通信(简单介绍)
二层通信:是指源PC机与目的PC在同一个VLAN内部,PC间的通信就是二层通信;即目的计算机所接收的帧和源计算机发出的帧是一模一样的(帧的目的MAC地址,源MAC地址,类型值,数据载荷等等),二层通信可能会通过交换机,但是不会经过路由器(或者三层交换机)进行三层转发。

三层通信:是指源PC机与目的PC在不同的VLAN中,即目的计算机所接收的帧和源计算机发出的帧是不一样的(帧的目的MAC地址,源MAC地址,类型值,数据载荷等等),三层通信是要经过路由器(或者三层交换机)的转发。

很好的理解就是:二层通信不需要用到路由器(三层交换机)的转发功能,而三层通信需要用到路由器(三层交换机)的转发功能。

3. VLAN的基本原理

(1)PC无VLAN的概念,交换机才能够处理相关的VLAN配置。

(2)一台PC机发送广播帧后,只有同一个VLAN才会接收到,不同VLAN不会接收到;即如果PC1和PC3在VLAN 10,PC2和PC4在VLAN 20,那么PC1发送的广播帧,只有PC3收到PC1的广播帧,PC2和PC4是不能接收到PC1的广播帧。

(3)一台PC机发送单播帧,在同一个VLAN会寻找目的MAC地址,然后将单播帧发送给目的PC。不是目的PC机的均会执行丢弃操作。

(4)不同的VLAN间无法进行通信。

(5)交换机可以配置多个VLAN,并且交换机可以识别哪些端口属于哪些VLAN。

(6)不同的交换机之间VLAN是可以进行通信的。

(7)不同VLAN之间是不能通信的。即即如果PC1和PC3在VLAN 10,PC2和PC4在VLAN 20,那么PC1想和PC2通信,因为在不同的VLAN,所以交换机在VLAN 10中根本寻找不到PC2的MAC地址,所以PC1和PC2之间无法通信。

4. VLAN的帧格式

pvlan的功能及应用场合_路由器


802.1Q Tag中各个字段的含义:

pvlan的功能及应用场合_网络_02


关于802.1Q帧封装VLAN的介绍会单独拿出来讲解,这里先大致了解一下。

5. VLAN的类型

(1)基于端口的VLAN(Port-based VLAN):

【1】划分原则:将VLAN的编号(VLAN ID)配置映射到交换机的物理端口上,从某一个物理端口进入到交换机的,由终端计算机发送的Untagged帧(在VLAN帧格式进行讲解)都会被划分到该端口的VLAN ID所表明的那个VLAN。

【2】这种原则简单而直观,实现容易,并且比较安全可靠。通常称为物理层VLAN,或者一层VLAN。

(2)基于MAC地址的VLAN(MAC-based VLAN):

【1】划分原则:交换机内部建立和维护一个MAC地址与VLAN ID的对应表,当交换机接收到计算机发送的Untagged帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址和VLAN ID的对应表,并且根据对应关系把这个帧划分到相应的VLAN 中。

【2】这种原则实现较为复杂,灵活性得到提高,但是安全性不高(恶意计算机可以伪装其他主机的MAC地址),通常称为二层VLAN。

(3)基于协议的VLAN(Protocol-based VLAN):

【1】划分原则:交换机根据计算机发送的Untagged 帧中的帧类型字段的值来决定帧的VLAN的归属。例如:可以将类型值为0x0800(IP)的帧划分到一个VLAN,将类型值为0x86DD(IPv6)的帧划分到另一个VLAN。

【2】基于协议的VLAN通常称为三层VLAN。

在现实应用中,基于端口的VLAN应用最为广泛。

6. 链路类型和端口类型

(图为)
(1)Access链路(Access Link):交换机与终端计算机直接相连的链路;

(2)Access端口(Access Port):把Access链路上交换机一侧的端口即为Access端口;

(3)Trunk链路(Trunk Link):交换机之间直接相连的链路;

(4)Trunk端口(Trunk Port):把Trunk链路上两侧的端口即为Trunk端口;一个Trunk端口可以同时属于多个VLAN,并且可以让属于不同的VLAN的帧通过。

【1】Untagged:在一条Access链路上运动的帧只能是(或者说应该是)Untagged帧,并且这些帧只能属于某个特定的VLAN。

【2】Tagged:在一条Trunk链路上运动的帧只能是(或者说应该是)Tagged帧,并且这些帧是属于不同的VLAN,并且只能让属于这个特定VLAN的帧通过

pvlan的功能及应用场合_路由器_03

7. PVID的介绍

每一个交换机的端口(无论是Access端口还是Trunk端口)都应该配置一个PVID(Port VLAN ID),到达这个端口的Untagged 帧将一律被交换机划分到PVID所指代的VLAN。例如,如果一个端口的PVID被配置为5,则所有到达这个端口的Untagged 帧都将认定为属于VLAN 5的帧。默认情况下,PVID的值为1。
总结:
【1】链路(线路)上运动的帧,可能是Tagged帧,也可能是Untagged帧。

【2】但是一台交换机内部不同端口之间运动的帧一定是(或者说应该是)Tagged帧。