VLAN技术原理及方案解析.docx
- 文档编号:5322092
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:11
- 大小:44.92KB
VLAN技术原理及方案解析.docx
《VLAN技术原理及方案解析.docx》由会员分享,可在线阅读,更多相关《VLAN技术原理及方案解析.docx(11页珍藏版)》请在冰豆网上搜索。
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描述对比方便,这里还是简单的举个例子。
Figure1-1:
|-------------------------------|
| SW1(EthernetSwitch)|
|-------------------------------|
| |
|port1 |port2
| |
|-------| |-------|
| PC1| | PC2|
|-------| |-------|
简单描述一下PC1pingPC2的过程:
(这里假设,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 PORT1
2).由于ARP请求为广播帧,所以,SW1向除了PORT1之外的所有UP的端口广播。
注意,该帧没有任何变化。
换句话说,交换机没有对帧做任何修改。
这就是传说中的透明传输。
3).PC2收到该ARP请求帧,本地建立ARP表项,同时单播回送ARP应答帧。
目的MAC=MAC_PC1;源MAC=MAC_PC2。
SW1收到该单播帧手,根据帧头中的源MAC地址,学习到了PC2的MAC,建立MAC地址表如下:
MAC地址 端口
MAC_PC1 PORT1
MAC_PC2 PORT2
4).SW1根据帧头中的目的MAC地址(MAC_PC1)将数据帧从PORT1转发。
5).PC1收到ARP响应,ARP交互过程成功。
接下来进行单播PING包交互。
SW1根据数据帧的目的MAC进行透明转发单播帧,同时刷新本地MAC地址表的老化定时器。
2.802.1QVLAN的基本原理
严格来说,802.1QVLAN不是一个协议,因为互连的设备之间没有协议层面的报文交互。
802.1QVLAN只定义了数据帧的封装格式,即,在以太网帧头中插入了4个字节的VLAN字段。
其主要容为VLANTAG,紧随其后的数据类型和802.1p报文优先级的标识。
Figure2-1以太网帧格式
|-----------------------------------------------------------------------------|
|DMAC(6bytes)|SMAC(6bytes)|Ether-Type(2bytes)|DATA|
|-----------------------------------------------------------------------------|
Figure2-2带VLANTAG的以太网帧格式
|-------------------------------------------------------------------------------------------------|
|DMAC(6bytes)|SMAC(6bytes)|Ether-Type(0x8100)|VLAN(4bytes)|DATA|
|-------------------------------------------------------------------------------------------------|
Figure2-3VLANTAG的格式
|---------------------------------------------------------------------------------|
|PRI(3bits)|CFI(1bit)|TAG(12bits)|Ether-Type(2bytes)|DATA|
|---------------------------------------------------------------------------------|
PRI:
帧优先级,就是通常所说的802.1p。
CFI:
规标识位,0为规格式,用于802.3或EthII。
TAG:
就是我们通常说的VLANID
Ether-Type:
标识紧随其后的数据类型。
本人所理解的VLAN技术要点主要有两点:
1.支持VLAN的交换机的部交换原理;2.设备之间(交换机之间,交换机与路由器之间,交换机与主机之间)交互时,VLANTAG的添加和移除。
下面就按照这个思路来描述。
2.1支持VLAN的交换机的交换原理
引入VLAN概念后,数据帧只在相应的VLAN进行交换。
用通俗一点的话来讲,一个交换机被虚拟出了多个逻辑交换机,每一个VLAN的端口都是一个逻辑上的交换机。
用专业一点的话来讲,一个交换机被划分了多个不同的广播域,每一个VLAN的端口,在同一个广播域。
引入VLAN后的交换原理与传统的交换原理相比,并没有本质上的改变,同样遵循‘源MAC学习,目的MAC转发’的基本原则。
唯一不同的是,学习和转发都只在同一个VLAN中进行,数据帧不能跨VLAN交换或转发。
2.1.1数据帧该在哪个VLAN中进行交换?
前面提到,支持VLAN的交换机将数据帧限制在同一个VLAN中进行交换,那么数据帧到底该在哪个VLAN中交换呢?
如果收到的数据帧携带了VLAN信息(通常称为’TAGED数据帧‘,前面已经介绍了带VLANTAG的以太帧格式),该VLAN信息中的VLANTAG就是交换该帧的VLAN。
如果收到的数据帧没有携带VLAN信息(通常称为‘UNTAGED’数据帧),收到该帧的端口的PVID就是交换该帧的VLAN。
该规则在2.2.3节中有详细的描述。
根据上面的原则,也定义了PVID的概念。
当端口收到一个UNTAGED数据帧时,无法确定在哪个VLAN中进行交换,PVID定义了在这种情形下交换该帧的VLAN。
从某种意义上讲,可以把PVID理解为端口的defaultVLAN。
在支持VLAN的交换机中,每个端口都有一个PVID值,该值有一个缺省值,当然你也可以更改它。
2.2.2MAC地址学习和MAC地址表
引入VLAN概念后,MAC地址的学习也在相应的VLAN中进行。
从某种意义上理解,一台交换机有多MAC地址表,每个VLAN一表,在交换数据帧进行查表时,只需要在相应的VLAN中进行查找。
很显然,MAC地址表项中,增加了VLANTAG属性。
VLAN MAC地址 端口
VLAN1 MAC_PC1 PORT1
VLAN1 MAC_PC2 PORT2
VLAN2 MAC_PC1 PORT1
VLAN2 MAC_PC2 PORT2
2.2VLANTAG的添加和移除规则
为了保证设备之间的互联互通,需要理解VLANTAG的添加和移除规则。
也就是说,交换机在转发数据帧时,什么时候应该打TAG,什么时候应该不打TAG,什么时候又会丢弃数据帧。
为什么要有这么‘复杂’(其实也没那么复杂)的规则呢?
为什么不把所有的数据帧都打上TAG呢,这样不是简单多了?
其实,这样做也是为了适应不同设备的工作原理,有些设备是不支持VLANTAG的。
2.2.1典型设备
先介绍一下几种典型的设备:
PC:
大部分的PC(专用的,或用于测试的除外)是工作在应用层的,缺省情况下是不支持(其实也不需要)VLANTAG的。
也就是说,PC发出的都是UNTAGED数据帧。
Router:
路由器是支持VLANTAG的。
也就是说,路由器可以发出TAGED数据帧,也可以发出UNTAGED数据帧。
需要说明的是,路由器是处理数据包的三层信息的,对于二层信息(包括VLAN信息),路由器只是检查其有效性,之后将其剥离。
这个过程就是我们常说的‘终结’,也就是说,路由器会终结掉报文的VLAN信息的。
Switch:
这里的switch是指以太网交换机。
VLAN技术就是主要针对于交换机提出的,所以,在讨论VLAN概念时都是立足于交换机来讨论。
很显然,交换机既支持收发TAGED数据帧,也支持收发UNTAGED数据帧。
从严格意义上讲,引入VLAN后,交换机的行为不再是‘透明传输’,因为数据帧经过交换机后可能发生了变化。
了解了几种典型设备的工作原理后,就应该觉得交换机上TAG的添加和移除原则的必要性了。
2.2.2VLAN中的端口属性
一个VLAN可以包含多个端口,而一个端口也可以属于多个VLAN。
一个端口在一个VLAN中有不同的属性,TAG的添加和移除原则就是根据这个属性而定的。
TAGED:
如果一个端口在一个VLAN中的属性是TAG的,那么,从该端口转发出去的数据帧就是TAGED。
(当然,该数据帧是在该VLAN中交换的)
UNTAGED:
如果一个端口在一个VLAN中的属性是UNTAG的,那么,从该端口转发出去的数据帧就是UNTAGED。
(当然,该数据帧是在该VLAN中交换的)
2.2.3交换机收发数据帧的处理总结
我们分几种情况讨论交换机的接收和发送处理:
接收端口和发送端口在VLAN中属性;收到的数据帧是TAG的还是UNTAG的。
1).端口接收到数据帧
a).如果是TAG的数据帧,检查该接收端口是否在该VLAN(数据帧中所携带的VLANTAG)中
-接收端口在该VLAN中,则在该VLAN中根据交换原理(即,'源MAC学习,目的MAC转发'的原理)交换该数据包
-接收端口不在该VLAN中,丢弃该数据帧
b).如果是UNTAG的数据帧,检查该接收端口是否在某个VLAN中的属性是UNTAG
-接收端口在某个VLAN中的属性是UNTAG的,则在该VLAN中根据交换原理交换该数据包
-接收端口在任何VLAN中的属性都不是UNTAG的,丢弃该数据包
注:
根据这个原理可知,一个端口最多在一个VLAN中的属性是UNTAG的,否则,收到一个UNTAG的数据帧之后,就无法确定在哪个VLAN中进行交换。
其实,端口UNTAG所在的VLAN,就是2.1.1节中所提到的PVID的概念。
2).端口发送数据帧
a).检查该端口在该VLAN(就是交换该数据帧的VLAN)中的属性
-该端口在该VLAN种的属性是TAG的,发送的数据帧为TAG的数据帧
-该端口在该VLAN种的属性是UNTAG的,发送的数据帧为UNTAG的数据帧
注:
由于数据已经被交换到该端口,说明该端口肯定在该VLAN里。
2.2.4典型配置
简单介绍一下,交换机连接不同典型设备时的常用配置。
1).连接PC
上面介绍了在通常情况下,PC只支持收发UNTAG的数据帧,所以,连接PC的端口只需要加入一个VLAN,而且,在该VLAN中的属性为UNTAG。
2).连接Router
路由器既支持收发TAG数据帧,也支持收发UNTAG数据帧。
通常情况下,不同的VLAN数据帧都能通过该端口与路由器互通。
所以连接路由器的端口可以属于多个VLAN,而且,只能在一个VLAN中的属性是UNTAG的,在其他的VLAN中都是TAG的。
3).连接Switch
也就是交换机的级联。
通常情况下是不同性能的交换机进行级联。
这种情况和连接路由器的情况基本相同。
2.2.5思科交换机的端口类型
TAG和UNTAG应该是一般性的说法,但讨论路由交换技术时,不能忽略思科技术,因为它毕竟是这个行业的引导者(你也可以说它是先入为主)。
通常情况下,理解VLAN的概念都是以VLAN为立足点,然后将端口加入该VLAN,并赋予端口某种属性。
这种思路似乎不适用于思科的交换技术。
在思科的交换机上,都是以端口为立足点的,然后配置该端口的类型和所属的VLAN。
这里介绍思科的两种端口类型,Access和Trunk。
理解了这两种类型,也就理解了思科交换的VLAN基本原理。
1).Access端口
思科的Access端口是为了连接PC(终端设备)而设计的。
由于大部分终端设备都不支持(其实也不需要)VLANTAG的,所以连接终端设备的端口只需要在一个VLAN中,而且是UNTAG的。
Access端口就是这样的。
如果将端口配置为Access模式,该端口就只能在一个VLAN中(也就是AccessVLAN),而且该端口在该VLAN中的属性是UNTAG的。
从某种意义上说,该VLAN也就是该端口的PVID。
2).Trunk端口
思科的Trunk端口是为了连接上行设备(路由器,交换机等支持多VLAN的设备)。
通常情况下,上行端口需要汇聚多个VLAN的流量,所以该端口应该属于多个VLAN。
如果将端口配置为Trunk模式,该端口可以属于多个VLAN,在思科技术中,习惯称该端口可以允许多个VLAN通过。
该端口在一个VLAN中是UNTAG的,也就是该端口的PVID,在思科技术中,称为NativeVLAN。
该端口在其他的VLAN中都是TAG的。
可以说,思科在VLAN的一般性原理上多增加了一层开发。
如果理解了其本质原理,可以看出是和2.2.3节完全吻合的。
2.3交换机对VLAN的支持的发展历程
从技术发展为产品总是需要一个过程,在接触过早期交换机的童鞋们应该会知道,当时的交换机对VLAN的支持有两种模式,SVL和IVL。
SVL:
SharedVLANLearning共享式VLAN学习
IVL:
IndependentVLANLearning独立VLAN学习
从通俗而简单的角度来说,IVL就是每个VLAN有一个MAC-端口映射表,同一个MAC可以出现在多个表里面(也就是不同的VLAN里面);而SVL是在交换机建一大表,映射关系是MAC-VLAN-端口,而且,一个MAC在表中只出现一次,只属于一个VLAN。
显然,SVL应该更容易实现一点,看起来是一种打补丁的实现方式,貌似不是真正的VLAN。
早期的VLAN交换机中,有很多是SVL模式的。
我们前面2.1和2.2节所介绍的原理,都是针对IVL来讲的。
从网络上看到一位仁兄从专业的角度上总结了SVL和IVL的工作原理,非常准确而精辟,故我就不再加以润色,直接引用了。
IVL,网上大部分资料都说为每个VLAN建一个表,看起来好像有很多表,其实这里所说的表是指逻辑上的表,实际上在交换机中还是只有一个表,如果将VID相同的记录都提取出来组成一个表,那么就一个物理上的表在逻辑上就可以认为是多个表了。
2.3.1IVL(IndependentVLANLearning)
在MAC表中以MAC+VID为主键进行储存。
这样,同一个MAC就可能由于VID的不同而在MAC表中存在多条记录。
1).根据MAC+VID在MAC表中寻找,找不到转3)
2).向找到的port转发packet,end.
3).向packet携带的vid对应的整个VLAN的port转发,end.
2.3.2SVL(SharedVLANLearning)
在MAC表中以MAC为主键进行储存,也就是说同一个MAC在SVL方式下只能存在一个记录在MAC表中。
1).在MAC中先根据MAC寻找相应的记录,找不到转4)
2).记录中的VID与packet中携带的VID一样,得到相应的port;不一样转5)
3).将packet转发到相应的port,end.
4).向packet携带的vid对应的整个VLAN的port转发,end.
5).drop,end.
这个过程还是需要一点基础的,如果看的有点虚无缥缈,大可以略过该节,因为当今市场上,很少看到SVL的交换机了。
方案解析
使用VLAN设计局域网的特点
通过使用VLAN构建局域网,用户能够不受物理链路的限制而自由地分割广播域。
另外,通过先前提到的路由器与三层交换机提供的VLAN间路由,能够适应灵活多变的网络构成。
但是,由于利用VLAN容易导致网络构成复杂化,因此也会造成整个网络的组成难以把握。
可以这样说,在利用VLAN时,除了有:
网络构成灵活多变
这个优点外,还搭配着:
网络构成复杂化
这个缺点。
下面,就让我们来看看具体的实例。
不使用VLAN的局域网中网络构成的改变
假设有如图所示的由1台路由器、2台交换机构成的“不使用VLAN构建”的网络。
图中的路由器,带有2个LAN接口。
左侧的网络是192.168.1.0/24,右侧是192.168.2.0/24。
现在如果想将192.168.1.0/24这个网络上的计算机A转移到192.168.2.0/24上去,就需要改变物理连接、将A接到右侧的交换机上。
并且,当需要新增一个地址为192.168.3.0/24的网络时,还要在路由器上再占用一个LAN接口并添置一台交换机。
而由于这台路由器上只带了2个LAN接口,因此为了新增网络还必须将路由器升级为带有3个以上LAN接口的产品。
使用VLAN的局域网中网络构成的改变
接下来再假设有一个由1台路由器、2台交换机构成的“使用VLAN”的局域网。
交换机与交换机、交换机与路由器之间均为汇聚链路;并且假设192.168.1.0/24对应红色VLAN、192.168.2.0/24对应蓝色VLAN。
需要将连接在交换机1上192.168.1.0/24这个网段的计算机A转属192.168.2.0/24时,无需更改物理布线。
只要在交换机上生成蓝色VLAN,然后将计算机A所连的端口1加入到蓝色VLAN中去,使它成为访问即可。
然后,根据需要设定计算机A的IP地址、默认网关等信息就可以了。
如果IP地址相关的设定是由DHCP获取的,那么在客户机方面无需进行任何设定修改,就可以在不同网段间移动。
利用VLAN后,我们可以在免于改动任何物理布线的前提下,自由进行网络的逻辑设计。
如果所处的工作环境恰恰需要经常改变网络布局,那么利用VLAN的优势就非常明显了。
并且,当需要新增一个地址为192.168.3.0/24的网段时,也只需要在交换机上新建一个对应192.168.3.0/24的VLAN,并将所需的端口加入它的访问链路就可以了。
如果网络环境中还需要利用外部路由器,则只要在路由器的汇聚端口上新增一个子接口的设定就可以完成全部操作,而不需要消耗更多的物理接口(LAN接口)。
要使用的是三层交换机部的路由模块,则只需要新设一个VLAN接口即可。
网络环境的成长,往往是难以预测的,很可能经常会出现需要分割现有网络或是增加新网络的情况。
而充分活用VLAN后,就可以轻易地解决这些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VLAN 技术 原理 方案 解析