最近公司一个switch产品中需要用到VLAN上东西,原来也是不很明白其中的东东,抽空整理了一下,给需要的人看看,省点时间。

下面言归正传。


1.vlan的由来

传统的以太网是广播型网络,网络中的所有主机通过HUB或交换机相连,处在同一个广播域中。HUB和交换机作为网络连接的基本设备,在转发功能方面有一定的局限性:

A.     HUB是物理层设备,没有交换功能,接收到的报文会向除接收端口外的所有端口转发;

B.     交换机是数据链路层设备,具备根据报文的目的MAC地址进行转发的能力,但在收到广播报文或未知单播报文(报文的目的MAC地址不在交换机MAC地址表中)时,也会向除接收端口之外的所有端口转发。上述情况会造成以下的网络问题:

C.      网络中可能存在着大量广播和未知单播报文,浪费网络资源。

D.     网络中的主机收到大量并非以自身为目的地的报文,并且报文无法进行有效监控,造成了严重的安全隐患。

解决以上网络问题的根本方法就是隔离广播域。传统的方法是使用路由器,因为路由器是依据目的IP地址对报文进行转发,不会转发链路层的广播报文。但是路由器的成本较高,而且端口较少,无法细致地划分网络,所以使用路由器隔离广播域有很大的局限性。


2. 什么是VLAN

为了解决上述问题VLAN技术应运而生。VLAN的全称是Virtual Local Area Network,虚拟局域网。它是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚拟工作组的技术。IEEE在1999年颁布了用以标准化VLAN实现方案的802.1Q协议标准草案。

VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同的广播域(或称虚拟LAN,即VLAN),每一个VLAN都包含一组有着相同需求的计算机工作站,与物理上形成的LAN有着相同的属性。并且这种逻辑定义方法可以延伸到多个交换机上面。由于它是逻辑地而不是物理地划分,所以同一个VLAN内的各个工作站无须被放置在同一个物理空间里,即使这些工作站不一定属于同一个物理LAN网段。一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。


3. VLAN的优点

采用VLAN进行局域网部署时,可以有效避免传统以太网的确定,能够进行有效的广播域范围控制,提高网络安全性,对网络资源进行有效的管理。

l  控制广播域的范围:

通过划分VLAN,局域网的广播报文被限制在一个VLAN内,节省了网络带宽资源,提高了网络处理能力。 规避了广播风暴的影响。

l  增强了局域网的安全性:

由于报文在数据链路层被VLAN划分的广播域所隔离,因此各个VLAN内的主机间不能直接通信,需要通过路由器或三层交换机等网络层设备对报文进行三层转发。方便网管人员定义设备的接入,同时有效的对网络设备进行监控。

l  方便的创建虚拟工作组

使用VLAN可以创建跨物理网络范围的虚拟工作组,当用户的物理位置在虚拟工作组范围内移动时,不需要更改网络配置即可以正常访问网络。同时做到了节省网络建设成本。


4. VLAN的类型

基于端口划分的VLAN
基于网络层协议划分VLAN

根据IP组播划分VLAN

基于MAC地址划分VLAN


5. VLAN原理


使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。由于交换机工作在OSI模型的数据链路层,只能对报文的数据链路层封装进行识别。因此,识别字段需要添加到数据链路层封装中。IEEE于1999年颁布了用以标准化VLAN实现方案的IEEE 802.1Q协议标准草案,对带有VLAN Tag的报文结构进行了统一规定。

传统的以太网数据帧在目的MAC地址和源MAC地址之后封装上层协议的类型字段。如下图所示。

其中DA表示目的MAC地址,SA表示源MAC地址,Type表示上层协议的类型字段。

IEEE 802.1Q协议规定,在目的MAC地址和源MAC地址之后封装4个字节的VLAN Tag,用以标识VLAN的相关信息。

为什么vlan对用户是透明的 vlan产生原因_封装

如上图所示,VLAN Tag包含四个字段,分别是TPID(TagProtocol Identifier,标签协议标识符)、Priority、CFI(CanonicalFormat Indicator,标准格式指示位)和VLAN ID。VLANID取值范围为0~4095。由于0和4095通常不使用,所以VLAN ID的取值范围一般为1~4094。

在通常的两端为PC的VLAN报文交互流程如下图所示:接入端口收到一个没有包含VLAN标签的数据帧。一旦帧进入接入端口,会给帧加入VLAN标签。

当帧在交换机里面的时候,附着进入接入端口时被附上的VLAN标签。当帧通过目的接入端口离开交换机的时候,VLAN标签就被去除了。这样一来传输设备和接收设备并不知道收到的帧曾经被加过VLAN标签。

当然上面所说的仅仅是通常最常见的情况。对于交换机级联等复杂场景中,报文的tag如何处理有协议均有特殊的说明。


6. VLAN 类型及收发数据区别

为什么vlan对用户是透明的 vlan产生原因_为什么vlan对用户是透明的_02


以太网端口有三种链路类型:Access、Hybrid和Trunk。Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。再罗嗦些关于这三种类型的东西:

这里的trunk并不是端口干路的概念,即端口汇聚或者链路聚合,而是允许vlan透传的一个概念。