当前位置:文档之家› VLAN技术原理及方案解析

VLAN技术原理及方案解析

Vlan技术原理在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN。

而且,通常情况下,VLAN在这些设备中是基本功能。

所以不管是刚迈进这个行业的新生,还是已经在这个行业打拼了很多年的前辈,都要熟悉这个技术。

在论坛上经常看到讨论各种各样的关于VLAN的问题,在工作中也经常被问起关于VLAN的这样或那样的问题,所以,有了想写一点东西的冲动。

大部分童鞋接触交换这门技术都是从思科技术开始的,讨论的时候也脱离不了思科的影子。

值得说明的是,VLAN是一种标准技术,思科在实现VLAN的时候加入了自己的专有名词,这些名词可能不是通用的,尽管它们已经深深印在各位童鞋们的脑海里。

本文的描述是从基本原理开始的,有些说法会和思科技术有些出入,当然,也会讲到思科交换中的VLAN。

1. 以太网交换原理VLAN的概念是基于以太网交换的,所以,为了保持连贯性,还是先从交换原理讲起。

不过,这里没有长篇累牍的举例和配置,都是一些最基本的原理。

本节所说的以太网交换原理,是针对‘传统’的以太网交换机来说的。

所谓‘传统’,是指不支持VLAN。

简单的讲,以太网交换原理可以概括为‘源地址学习,目的地址转发’。

考虑到IP层也涉及到地址问题,为了避免混淆,可以修改为‘源MAC学习,目的MAC转发’。

从语文的语法角度来讲,可能还有些问题,就再修改一下‘根据源MAC进行学习,根据目的MAC 进行转发’。

总之,根据个人习惯了。

本人比较喜欢‘源MAC学习,目的MAC转发’的口诀。

稍微解释一下。

所谓的‘源MAC学习’,是指交换机根据收到的以太网帧的帧头中的源MAC地址来建立自己的MAC地址表,‘学习’是业内的习惯说法,就如同在淘宝上买东西都叫‘宝贝’一样。

所谓的‘目的MAC转发’,是指交换机根据收到的以太网帧的帧头中的目的MAC地址和本地的MAC地址表来决定如何转发,确定的说,是如何交换。

这个过程大家应该是耳熟能详了。

但为了与后面的VLAN描述对比方便,这里还是简单的举个例子。

Figure 1-1:|-------------------------------|| SW1 (Ethernet Switch) ||-------------------------------|| ||port1 |port 2| ||-------| |-------|| PC1| | PC2||-------| |-------|简单描述一下PC1 ping PC2的过程:(这里假设,PC1和PC2位于同一个IP网段,IP地址分别为IP_PC1和IP_PC2,MAC地址分别为MAC_PC1和MAC_PC2)1). PC1首先发送ARP请求,请求PC2的MAC。

目的MAC=FF:FF:FF:FF:FF:FF(广播);源MAC=MAC_PC1。

SW1收到该广播数据帧后,根据帧头中的源MAC地址,首先学习到了PC1的MAC,建立MAC地址表如下:MAC地址端口MAC_PC1 PORT 12). 由于ARP请求为广播帧,所以,SW1向除了PORT1之外的所有UP的端口广播。

注意,该帧没有任何变化。

换句话说,交换机没有对帧做任何修改。

这就是传说中的透明传输。

3). PC2收到该ARP请求帧,本地建立ARP表项,同时单播回送ARP应答帧。

目的MAC=MAC_PC1;源MAC=MAC_PC2。

SW1收到该单播帧手,根据帧头中的源MAC地址,学习到了PC2的MAC,建立MAC 地址表如下:MAC地址端口MAC_PC1 PORT 1MAC_PC2 PORT 24). SW1根据帧头中的目的MAC地址(MAC_PC1)将数据帧从PORT 1转发。

5). PC1收到ARP响应,ARP交互过程成功。

接下来进行单播PING包交互。

SW1根据数据帧的目的MAC进行透明转发单播帧,同时刷新本地MAC地址表的老化定时器。

2. 802.1Q VLAN的基本原理严格来说,802.1Q VLAN不是一个协议,因为互连的设备之间没有协议层面的报文交互。

802.1Q VLAN只定义了数据帧的封装格式,即,在以太网帧头中插入了4个字节的VLAN 字段。

其主要内容为VLAN TAG,紧随其后的数据类型和802.1p报文优先级的标识。

Figure 2-1 以太网帧格式|-----------------------------------------------------------------------------|| DMAC(6bytes) | SMAC(6bytes) | Ether-Type(2bytes) | DATA ||-----------------------------------------------------------------------------|Figure 2-2 带VLAN TAG的以太网帧格式|-------------------------------------------------------------------------------------------------|| DMAC(6bytes) | SMAC(6bytes) | Ether-Type(0x8100) | VLAN(4bytes) | DATA ||-------------------------------------------------------------------------------------------------|Figure 2-3 VLAN TAG的格式|---------------------------------------------------------------------------------|| PRI(3bits) | CFI(1bit) | TAG(12bits) | Ether-Type(2bytes) | DATA ||---------------------------------------------------------------------------------|PRI:帧优先级,就是通常所说的802.1p。

CFI:规范标识位,0为规范格式,用于802.3或EthII。

TAG:就是我们通常说的VLAN IDEther-Type:标识紧随其后的数据类型。

本人所理解的VLAN技术要点主要有两点:1.支持VLAN的交换机的内部交换原理;2.设备之间(交换机之间,交换机与路由器之间,交换机与主机之间)交互时,VLAN TAG的添加和移除。

下面就按照这个思路来描述。

2.1 支持VLAN的交换机的交换原理引入VLAN概念后,数据帧只在相应的VLAN进行交换。

用通俗一点的话来讲,一个交换机被虚拟出了多个逻辑交换机,每一个VLAN内的端口都是一个逻辑上的交换机。

用专业一点的话来讲,一个交换机被划分了多个不同的广播域,每一个VLAN内的端口,在同一个广播域内。

引入VLAN后的交换原理与传统的交换原理相比,并没有本质上的改变,同样遵循‘源MAC学习,目的MAC转发’的基本原则。

唯一不同的是,学习和转发都只在同一个VLAN 中进行,数据帧不能跨VLAN交换或转发。

2.1.1 数据帧该在哪个VLAN中进行交换?前面提到,支持VLAN的交换机将数据帧限制在同一个VLAN中进行交换,那么数据帧到底该在哪个VLAN中交换呢?如果收到的数据帧携带了VLAN信息(通常称为’TAGED数据帧‘,前面已经介绍了带VLAN TAG的以太帧格式),该VLAN信息中的VLAN TAG就是交换该帧的VLAN。

如果收到的数据帧没有携带VLAN信息(通常称为‘UNTAGED’数据帧),收到该帧的端口的PVID就是交换该帧的VLAN。

该规则在2.2.3节中有详细的描述。

根据上面的原则,也定义了PVID的概念。

当端口收到一个UNTAGED数据帧时,无法确定在哪个VLAN中进行交换,PVID定义了在这种情形下交换该帧的VLAN。

从某种意义上讲,可以把PVID理解为端口的default VLAN。

在支持VLAN的交换机中,每个端口都有一个PVID值,该值有一个缺省值,当然你也可以更改它。

2.2.2 MAC地址学习和MAC地址表引入VLAN概念后,MAC地址的学习也在相应的VLAN中进行。

从某种意义上理解,一台交换机有多张MAC地址表,每个VLAN一张表,在交换数据帧进行查表时,只需要在相应的VLAN中进行查找。

很显然,MAC地址表项中,增加了VLAN TAG属性。

VLAN MAC地址端口VLAN1 MAC_PC1 PORT 1VLAN1 MAC_PC2 PORT 2VLAN2 MAC_PC1 PORT 1VLAN2 MAC_PC2 PORT 22.2 VLAN TAG的添加和移除规则为了保证设备之间的互联互通,需要理解VLAN TAG的添加和移除规则。

也就是说,交换机在转发数据帧时,什么时候应该打TAG,什么时候应该不打TAG,什么时候又会丢弃数据帧。

为什么要有这么‘复杂’(其实也没那么复杂)的规则呢?为什么不把所有的数据帧都打上TAG呢,这样不是简单多了?其实,这样做也是为了适应不同设备的工作原理,有些设备是不支持VLAN TAG的。

2.2.1 典型设备先介绍一下几种典型的设备:PC:大部分的PC(专用的,或用于测试的除外)是工作在应用层的,缺省情况下是不支持(其实也不需要)VLAN TAG的。

也就是说,PC发出的都是UNTAGED数据帧。

Router:路由器是支持VLAN TAG的。

也就是说,路由器可以发出TAGED数据帧,也可以发出UNTAGED数据帧。

需要说明的是,路由器是处理数据包的三层信息的,对于二层信息(包括VLAN信息),路由器只是检查其有效性,之后将其剥离。

这个过程就是我们常说的‘终结’,也就是说,路由器会终结掉报文的VLAN信息的。

Switch:这里的switch是指以太网交换机。

VLAN技术就是主要针对于交换机提出的,所以,在讨论VLAN概念时都是立足于交换机来讨论。

很显然,交换机既支持收发TAGED数据帧,也支持收发UNTAGED数据帧。

从严格意义上讲,引入VLAN后,交换机的行为不再是‘透明传输’,因为数据帧经过交换机后可能发生了变化。

了解了几种典型设备的工作原理后,就应该觉得交换机上TAG的添加和移除原则的必要性了。

2.2.2 VLAN中的端口属性一个VLAN可以包含多个端口,而一个端口也可以属于多个VLAN。

一个端口在一个VLAN中有不同的属性,TAG的添加和移除原则就是根据这个属性而定的。

TAGED:如果一个端口在一个VLAN中的属性是TAG的,那么,从该端口转发出去的数据帧就是TAGED。

相关主题