资源描述
VLAN(Virtual Local Area Network )技术的基本概念和应用
1.什么是VLAN?
² VLAN是虚拟局域网的英文缩写,是基于一个广播域的交换机端口的集合。IEEE 802.1Q标准定义了VLAN的基本概念和实现原理。
² VLAN的主要作用是隔离广播域。将一个物理网络划分成多个逻辑上的VLAN,可以将一个广播域划分成多个小的广播域,每个VLAN对应一个小的广播域,一个VLAN中的广播不能传播到其他的VLAN,这样有效地控制广播风暴的发生。
² VLAN可分为:基于端口的VLAN、基于MAC地址的VLAN、基于IP地址的VLAN、基于IP子网的VLAN、基于协议的VLAN和用户自定义的VLAN。其中最常用的也是最基本的是:基于端口的VLAN,它按照接收端口来确定一个数据包的VLAN属性。
² VLAN的属性是指:当一个交换机端口接收到一个数据包时,确定这个数据包属于哪个VLAN。
2.VLAN的主要功能
² 通过VLAN可以非常灵活地将一个物理网络按照需求划分成多个逻辑子网。例如,某公司由于各部门的业务不同以及安全的需求,可以按照市场部、工程部、财务部将公司的网络划分成三个不同的VLAN,各部门不能直接访问,下面是一个使用cisco交换机组网的例子:
在这个网络中,一个部门网络的成员可以在不同的楼层,可以与不同的交换机端口相连,组网方式非常灵活。通过把公司网络划分成三个VLAN,广播报文只限制在一个VLAN内传播,大大提高了网络的使用效率。
² 简化端站的移动、增加与更换。当一台终端站被移动到新的物理位置,它的属性可以从一台管理工作站上通过简单网络管理协议(SNMP)或用户接口菜单重新分配。若端站在同一VLAN中移动,在新的位置它将保持原有的属性。若端站移动到不同的VLAN,那它将被赋予新的VLAN的属性。
² 网络安全。把一个物理网络划分成若干个VLANs,每个VLAN中的广播只能在本VLAN所属的交换机端口传播,提高整个网络的安全性。
3.VLAN的实现
² IEEE 802.1Q标准定义了动态实现VLAN的机制。这里不作介绍。
² 为了实现VLAN,IEEE 802.1Q标准定义了一种新的帧格式。它在标准的以太网帧的源MAC地址后面加入了一个Tag header(4字节),此格式用下图表示:
DA
SA
Type
Data
CRC
标准以太网帧
DA
SA
Tag
Type
Data
CRC
0x8100
Priority
CFI
VLAN ID
IEEE 802.1Q标准帧格式
其中:
DA—目的MAC地址;
SA—源MAC地址;
Data—帧中所携带的用户数据;
CRC—循环冗余校验;
Priority—用户优先级;
VLAN ID—用来标识一个VLAN的ID号,取值范围:1~4094。
在帧中加入tag的目的是为了携带VLAN信息,表明这个数据帧属于哪个
VLAN,即确定数据帧的属性。
² VLAN中端口成员的确定:
VLAN端口成员的确定与VLAN的类型有关。分为基于端口的VLAN
和基于策略的VLAN。基于策略的VLAN又分为基于MAC地址的VLAN、
基于协议的VLAN、基于IP子网的VLAN、用户自定义VLAN。
对于基于端口的VLAN,属于这个VLAN的端口都被网络管理软件明确
配置为这个VLAN的成员。
对于基于策略的VLAN,VLAN中的成员端口既可以由软件明确指定某
一端口固定属于某一VLAN,也可以由软件将某一端口设为该VLAN的潜在
的成员。对于潜在的成员,需根据该VLAN的类型确定一些具体的策略。路
由交换机监视从该端口进入的数据包,如果数据包满足策略要求的条件,则
该端口成为该VLAN的临时成员。路由交换机继续监视该端口,如果在一定
时间内没有收到满足该条件的数据包。将该端口从VLAN中删除。对于基于
MAC地址的VLAN,路由交换机需要保持一个对该VLAN的MAC地址表。
对于其它几种类型的VLAN,路由交换机也需要根据具体VLAN类型确定该
种VLAN所需策略。
² 确定数据包的VLAN属性
对于带有802.1Q Tag的数据包,则直接根据数据包中所带标记确定其
VLAN属性。对于未带有Tag的数据包,则交换机根据数据包内容和各VLAN
具体规则确定其所属VLAN。
² VLAN成员端口属性
VLAN成员端口分为带标记(tagged)与不带标记(untagged)。
可以通过网管来设置端口为带标记端口。一般当端口连接的设备支持802.1Q标准时将端口设置为带标记端口;否则当端口连接的设备不支持802.1Q时,设置端口为不带标记端口。
1) 带标记端口
带标记端口即从该端口发出的所有数据包都必须带有该数据包所属VLAN标记。可设置该端口在接收数据包时是否丢弃不带标记的数据包或按各VLAN具体规则确定其所属VLAN。同时判断从本端口收发的数据包所属VLAN是否为本端口所属VLAN,若不是,则需决定是否丢弃该数据包。
2) 不带标记端口
不带标记端口即从该端口发出的所有数据包都不能带有该数据包所属VLAN标记。可设置该端口在接收数据包时是否丢弃带标记的数据包或按标记确定其VLAN属性。同时判断从本端口收发的数据包所属VLAN是否为本端口所属VLAN,若不是,则需决定是否丢弃该数据包。
4.下面通过张宏的组网方案来进一步说明VLAN的功能及应用中须注意的问题。
5.VLAN Routing的概念和基本原理
1) VLAN Routing的基本概念
由于在交换机中引入了VLAN的概念,通过在网络中划分VLAN可以实现广播域的隔离,大大提高了网络的性能,但是却限制了一个VLAN中的用户访问其他VLAN中的用户。由于VLAN是第二层的技术,它在选路时使用的是以太网的MAC地址,所以没有办法实现VLAN之间的互访问。为解决这个问题,借鉴路由器的功能,引入VLAN间路由(三层交换机)功能。
路由交换机完成线速第三层交换采用的是一种“一次路由,多次交换”的
思想。“一次路由”是指当第一次对此报文进行选路时,交给CPU中运行的路
由协议(如:OSPF,RIP)来运算并给出路由信息,然后将此路由信息存储在
交换芯片的CACHE表中,当发往该目的IP地址的报文再次进行路由时,由于
CACHE表中已经有了该目的IP地址,因此数据包可以直接由硬件按照CACHE
中该目的IP路由进行交换,以达到线速交换。
2) VLAN间路由的具体实现过程
在交换机中的路由是指VLAN之间进行路由。每个VLAN都可以配置一
个或多个接口IP地址和MAC地址对,每个接口等同于路由器的接口。VLAN
之间路由是指在VLAN的接口间进行路由。其路由原理与路由器一样。
路由过程如下:
对于从外部进入的数据包,路由交换机首先检查是否为路由交换机自已的
独立端口或VLAN接口的MAC地址。如果是,则交由第三层软、硬件联合进
行第三层交换。否则进行第二层硬件交换。对于交由第三层处理的数据包,交
换芯片首先在CACHE的主机路由表中查找该数据包的目的IP地址是否存在,
如果存在则按相应端口转发;如果不存在,则查找网络路由CACHE表,如果
有相应的路由,则按路由转发;如果该地址不存在,则交换芯片将该数据发往
CPU,由路由协议软件按常规路由处理方法对该数据包进行处理。当软件处理
完该数据包的选路事项后,将该数据包发往正确的端口。同时在ASIC的CACHE
表中填入一项。当下一次发往该目的IP地址的数据包再次出现后,由于CACHE
表中已经有了该目的IP路由,因此数据包可以直接由硬件按照CACHE中该目
的IP地址项进行交换,达到线速转发的目的。
下面,通过一个例子来说明VLAN间路由的具体实现过程。
一个24端口三层交换机,将1~12端口划分为VLAN 2,将13~24端口划分为VLAN 3,缺省VLAN为VLAN 1。为VLAN 2配置一个接口,IP地址为10.0.0.1,子网掩码为255.255.0.0;为VLAN 3配置一个接口,IP地址为20.0.0.1,子网掩码为255.255.0.0。端口1连接一个主机,IP地址为10.0.0.2,缺省网关为VLAN 2的接口IP地址。端口21连接一个主机,IP地址为20.0.0.2,缺省网关为VLAN 3的接口IP地址。
二层交换机2
二层交换机1
主机2
主机1
20.0.0.1/255.255.0.0
10.0.0.1/255.255.0.0
三层交换机
21
1
20.0.0.2/255.255.0.0
10.0.0.2/255.255.0.0
数据包的传递过程(以第一次路由为例):
i. 当主机1向主机2发送数据时,由于主机2的IP地址与主机1的IP地址不在一个网段内,所以主机1向它的缺省网关发送目的IP地址为VLAN 2接口IP地址的ARP报文,二层交换机1接收ARP报文后向VLAN 2除接收端口外其他所有成员端口转发。
ii. 三层交换机从二层交换机1的级联端口接收到此ARP报文,然后返回VLAN 2接口的MAC地址。
iii. 二层交换机将三层交换机返回的报文,线速转发给与主机1相连的端口,即将转发给主机1。
iv. 主机1按照返回的MAC地址,向VLAN 2的接口发送数据包。
v. 交换机接收到数据包后查找主机路由CACHE表以及网络路由CACHE表,看有没有主机2的路由。没有则提交给CPU,由路由算法来计算路由,计算结果为VLAN 3的接口所在网段,于是交由VLAN 3的接口进行转发。
vi. VLAN 3的接口如果不知道主机2的MAC地址,则向VLAN 3的所有成员端口发送目的IP地址为主机2 IP地址的ARP报文。二层交换机2接收到此ARP报文后向VLAN 3除级联端口外的所有端口转发。主机2接收后,返回自己的MAC地址。
vii. 二层交换机2进行学习后,将主机2返回的报文转发给三层交换机
viii. VLAN 3的接口按照返回的主机2的MAC地址,将数据包从与交换机2所连的端口发送出去。注意:VLAN 3的接口在发送主机1发来的数据包时,包中的源MAC地址为VLAN 3接口的MAC地址。
ix. 交换机2再将此数据包线速转发给主机2
x. 于是,主机2便接收到主机1发送来的数据包。
展开阅读全文