VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域(多个VLAN)的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。由于VLAN间不能直接互访,因此提高了网络安全性。
VLAN内的链路包括:
接入链路(Access Link):连接
用户主机和交换机的链路为接入链路,接入链路上通过的帧为
不带Tag的以太网帧。
干道链路(Trunk Link):连接
交换机和交换机的链路称为干道链路,干道链路上通过的帧一般为
带Tag的VLAN帧。
PVID,PVID英文解释为Port-base VLAN ID,是基于端口的VLAN ID,它是端口的属性,用来标识端口接收到的未标记的帧。也就是说,当端口收到一个未标记的帧时,就会把该帧转发到VID和本端口PVID相等的VLAN当中去。
VID即VLAN ID。当所有VLAN都在一个交换机里时,确实只需要一个标识就够了,但
跨设备的VLAN就需要另一种标识,这就是802.1Q的VLAN ID。
设备互连时,由Tag中的VID决定了一个二层帧属于哪个VLAN,而计算机不具备打Tag的功能,所以只有给连接计算机的端口添加一个属性,用来决定计算机发出的未标记的帧属于哪个VLAN,这个属性就是PVID。
802.1Q协议定义了基于端口的VLAN模型:即在标准的以太网帧中源地址后增加一个四字节的802.1Q帧头(包含数据包的vlan id及优先级信息)。
端口模式的设置:Tag 模式和 Untag模式。 帧的属性:带Tag的帧和不带Tag的帧。
当一个端口设置为Untag模式时,它接收帧时会判断收到的帧是否打了Tag,没有打Tag的帧会被转发到VID=PVID的VLAN中去,而如果是打了Tag的帧,则会将这个Tag剥除掉
当一个端口设置为Tag模式的时候,它如果接收到的帧是Untag的帧,则会给该帧打上Tag,即在帧格式当中加入VID和其他控制信息,用来进行转发。当收到的是Tag帧时,会根据该帧本身的VID信息进行转发,而不会影响到其原来帧所包含的内容。这个时候又会涉及到一个问题,端口PVID和接收帧VID之间的关系。如果PVID=VID,那么所接收的帧才会被正确转发,如果PVID!=VID那么这个Tag帧会被丢弃。
VID(VLAN ID)是VLAN的标识,定义其中的端口可以接收发自这个VLAN的包;而PVID(Port VLAN ID)定义这个untag端口可以转发哪个VLAN的包。比如,当端口1同时属于VLAN1、VLAN2和VLAN3时,而它的PVID为1,那么端口1可以接收到VLAN1,2,3的数据,但发出的包只能发到VLAN1中.
Access端口
Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路。有如下特点:
(1) 仅仅允许唯一的VLAN ID通过本端口,这个VLAN ID与端口的PVID(Port VLAN
ID,端口缺省的VLAN ID)相同。
(2) 如果该端口收到的对端设备发送的帧是untagged(不带VLAN标签),交换
机将强制加上该端口的PVID。
(3)Access端口发往对端设备的
以太网帧永远是不带标签的帧。
Trunk端口
Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。有如下特点:
(1) Trunk端口允许多个VLAN的帧(带Tag标记)通过。
(2) 如果从Trunk端口发送的帧带Tag,且Tag与端口缺省的VLAN ID相同,则
交换机会剥掉该帧中的Tag标记。因为每个端口的PVID取值是唯一的。仅在这种情况下,Trunk端口发送的帧不带Tag。
(3) 如果从Trunk端口发送的帧带Tag,但是与端口缺省的VLAN ID不同,则交
换机对该帧不做任何动作,直接发送带Tag的帧。
Hybrid端口
Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。
Access端口的缺省VLAN
对于从Access端口接收到的不带Tag的帧,交换设备会在帧中加上Tag标记,并将Tag中的VID字段的值设置为端口所属的缺省VLAN编号。
对于从Access端口发送的帧,如果Tag中的VID值为缺省VLAN编号,则交换设备会剥掉该帧中的Tag标记。因为Access端口发往对端设备的以太网帧永远是不带标签的帧。
Trunk端口的缺省VLAN
对于从Trunk端口接收到的不带Tag的帧,交换设备会在帧中加上Tag标记,并将Tag中的VID字段的值设置为端口所属的缺省VLAN编号。
对于从Trunk端口发送的帧:如果Tag中的VID值为缺省VLAN编号,则交换设备会剥掉该帧中的Tag标记。因为每个端口的PVID取值是唯一的。如果Tag中的VID值与端口缺省的VLAN不同,则交换设备对该帧不做任何改变,直接发送带Tag的帧。
Hybrid端口的缺省VLAN
对于从Hybrid端口接收到的不带Tag的帧,交换机会在帧中加上Tag标记,并将Tag中的VID字段的值设置为端口所属的缺省VLAN编号。
对于从Hybrid端口发送的帧: 如果该端口配置为untagged VLAN,则该端口的功能与Access端口功能相同。如果该端口没有配置为untagged VLAN,则该端口的功能与Trunk端口功能相同。
VLAN的划分
划分VLAN的方式如下:
(1)基于端口
根据交换机的端口编号来划分VLAN。计算机所属的VLAN由计算机所连的网络设备端口所属的VLAN决定。其优点是定义成员简单,缺点是成员移动需重新配置VLAN。
(2)基于MAC地址
根据计算机网卡的MAC地址来划分VLAN。其优点是成员移动方便,缺点是需要预先定义所有成员。
(3) 基于网络层协议
例如将运行IP的计算机划分为一个VLAN,将运行IPX的计算机划分为另一个VLAN。
(4)基于网络地址
(5)基于应用层协议
VLAN内跨越交换机通信原理
当用户主机Host A发送数据给用户主机Host B时,数据帧的发送过程如下:
1. 数据帧首先到达Router A的端口GigabitEthernet1/0/4。
2. 端口GigabitEthernet1/0/4给数据帧加上Tag,Tag的VID字段填入该端口所属的
VLAN的编号2。
3. Router A将帧发送到本交换机上除GigabitEthernet1/0/4外的所有属于VLAN2的端口。
4. 端口GigabitEthernet1/0/2将帧转发到Router B上。
5.
Router B收到帧后,会根据帧中的Tag识别出该帧属于VLAN2,于是将该帧发给本
交换机上除GigabitEthernet1/0/1外所有属于VLAN2的端口。
6. 端口GigabitEthernet1/0/3将数据帧发送给主机Host B。
配置基于接口划分VLAN示例
本示例中组网特点是配置过程简单,VLAN划分后,属于不同VLAN的用户不能直接进行二层通信,同一VLAN内的用户可以直接互相通信。
组网需求:
某企业有很多部门,要求业务相同部门之间的员工可以互相访问,业务不同部门之间的员工不能互相访问。
如图1所示,现需要实现:
(1) 部门1、部门2与部门3、部门4互相隔离。
(2) 部门1与部门2可以互相访问。
(3) 部门3与部门4可以互相访问。
采用如下的思路配置VLAN:
1. 创建VLAN,规划员工所属的VLAN。
2. 配置端口属性,确定设备连接对象。
3. 关联端口和VLAN,将连接部门1和部门2的交换机端口划分到VLAN2,将连接部门3
和部门4的交换机端口划分到VLAN3,隔离部门1、部门2和部门3、部门4间的访问。
数据准备
为完成此配置例,需准备如下的数据:
(1)接口Ethernet0/0/1、Ethernet0/0/2属于VLAN2。
(2)接口Ethernet0/0/3、Ethernet0/0/4属于VLAN3。
验证配置结果
(1) 部门1、部门2所属的VLAN2内的任一台主机ping部门3、部门4所属的VLAN3内的任一台主机,无法ping通,证明部门1、部门2与部门3、部门4已实现隔离。
(2) 部门1的任一台主机ping部门2的任一台主机,能ping通,证明部门1与部门2已实现互通。
(3) 部门3的任一台主机ping部门4的任一台主机,能ping通,证明部门3与部门4已实现互通。
配置基于MAC地址划分VLAN只适用于网卡不经常更换、网络环境较简单的场景中。
组网需求
某个公司的网络中,网络管理者将同一部门的员工划分到同一VLAN。为了提高部门内的信息安全,要求只有本部门员工的PC才可以访问公司网络。
PC1、PC2、PC3为本部门员工的PC,要求这几台PC可以通过SwitchA、Switch访问公司网络,如换成其他PC则不能访问。
采用如下的思路配置基于MAC地址的VLAN划分:
1. 创建VLAN,确定员工所属的VLAN。 2. 配置各以太网接口以正确的方式加入VLAN。
3. 配置PC1、PC2、PC3的MAC地址与VLAN关联。交换机根据报文中的源MAC地址确定
VLAN。
数据准备
为完成此配置例,需准备如下的数据:
(1) 在Switch上配置接口Eth0/0/1的PVID为100。
(2) 在Switch上配置接口Eth0/0/1以untagged方式加入VLAN10。
(3) 在Switch上配置接口Eth0/0/2以tagged方式加入VLAN10。
(4) 在SwitchA上的接口使用默认配置,即所有接口以untagged方式加入VLAN1。
(5) 获取PC1、PC2、PC3的MAC地址,配置MAC地址与VLAN10关联。
检查配置结果
PC1、PC2、PC3可以访问公司网络,如换成其他外来人员的PC则不能访问。
通过配置基于IP子网划分VLAN,将指定网段或IP地址发出的报文在指定的VLAN中传输,减轻了网络管理者的初始配置任务量,且有利于管理。
组网需求
某企业拥有多种业务,如IPTV、VoIP、Internet等,每种业务使用的IP地址各不相同。为了便于管理,现需要将同一种类型业务划分到同一VLAN中,不同类型的业务划分到不同VLAN中。 如图所示,Switch接收到用户报文有数据、IPTV、语音等多种业务,用户设备的IP地址各不相同。现需要将不同类型的业务划分到不同的VLAN中,通过不同的VLAN ID分流到不同的远端服务器上以实现业务互通。
采用如下的思路配置基于IP子网划分VLAN:
1. 创建VLAN,确定每种业务所属的VLAN。
2. 关联IP子网和VLAN。
交换机根据报文中的源IP地址或指定网段确定VLAN。新站点在入网时无需进行太多配置,交换机则根据各站点网络地址自动将其划分到不同的VLAN中。
3. 允许基于IP子网的VLAN通过当前端口。
4. 配置VLAN划分方式的优先级,确保优先选择基于IP子网划分VLAN。 5. 使能基于IP子网划分VLAN。
数据准备
为完成此配置例,需准备如下的数据。
(1)配置接口Eth0/0/1以untagged方式加入VLAN100、VLAN200、VLAN300。
(2)配置接口Eth0/0/2、Eth0/0/3和Eth0/0/4以tagged方式分别加入VLAN100、VLAN200
和VLAN300。
(3)IP子网所需配置数据如表1所示
该示例的特点是减少了人工配置VLAN的工作量,同时保证了用户自由地增加、移动和修改。
组网需求
某企业拥有多种业务,如IPTV、VoIP、Internet等,每种业务所采用的协议各不相同。为了便于管理,减少人工配置VLAN的工作量,现需要将同一种类型业务划分到同一VLAN中,不同类型的业务划分到不同VLAN中。
如图所示,Switch收到的用户报文有多种业务,所采用的协议各不相同。VLAN10中的用户采用IPv4协议与远端用户通信,而VLAN20中的用户采用IPv6协议与远端服务器通信。现需要将不同类型的业务划分到不同的VLAN中,通过不同的VLAN ID分流到不同的远端服务器上以实现业务互通。
采用如下的思路配置基于协议划分VLAN:
1. 创建VLAN,确定每种业务所属的VLAN。
2. 关联协议和VLAN。
Switch根据端口接收到的报文所属的协议(族)类型给报文分配不同的VLAN ID。无论用户物理位置是否移动、用户主机网卡是否更换、用户是否在同一网段、只要用户设备所采用的协议没有变换,VLAN都不用再重新划分。
3. 关联接口和协议VLAN。
当有关联的协议进入关联的接口时,系统自动为该协议分配已经划分好的VLAN ID。
4. 允许基于协议的VLAN通过当前端口。
数据准备
为完成此配置例,需准备如下的数据。
(1) 在Switch上配置接口Eth0/0/1以untagged方式加入VLAN10、VLAN20。
(2) 在Switch上配置接口Eth0/0/2、Eth0/0/3以tagged方式分别加入VLAN10、VLAN20。
(3) 各个VLAN对应的协议。
VLAN10:IPv4
VLAN20:IPv6
该组网的特点是将三层转发的设备由路由器替换为三层交换机,来实现了VLAN间互通。
组网需求
企业的不同部门拥有相同的业务,如上网、VoIP等业务,且各个部门中的用户位于不同的网段。目前存在不同的部门中相同的业务所属的VLAN不相同,现需要实现不同VLAN中的用户相互通信。 如图所示,部门1和部门2中拥有相同的业务上网业务,但是属于不同的VLAN且位于不同的网段。现需要实现部门1与部门2的用户互通。
采用如下的思路配置VLAN间通过VLANIF接口通信:
1. 在交换机上创建VLAN,确定用户所属的VLAN。
2. 在交换机上配置允许用户所属的VLAN通过当前二层端口。 3. 在三层交换机上创建VLANIF接口并配置IP地址,实现三层互通。
说明:
为了成功实现VLAN间互通,VLAN内主机的缺省网关必须是对应VLANIF接口的IP地址。
数据准备
为完成此配置例,需准备如下的数据:
(1) 在Switch上配置接口Eth0/0/1加入VLAN10和VLAN20。
(2) 在Switch上配置VLANIF10的IP地址为10.10.10.1/24。
(3) 在Switch上配置VLANIF20的IP地址为20.20.20.1/24。
(4) 在SwitchA上配置接口Eth0/0/1加入VLAN10和VLAN20。
(5) 在SwitchA上配置接口Eth0/0/2加入VLAN10。
(6) 在SwitchA上配置接口Eth0/0/3加入VLAN20。