一、项目背景 VLAN技术原理和分类
解决以上网络问题的根本方法就是隔离广播域。传统的方法是使用路由器,但使用路由器隔离广播域有很大的局限性,因此采用VLAN技术来实现广播域的隔离。
(一)VLAN概述
1.VLAN的概念
VLAN又称虚拟局域网,是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络。一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入一个逻辑子网中。
2.VLAN的特征
同一个VLAN中的所有成员共同拥有一个VLAN ID,组成一个虚拟局域网络;同一个VLAN中的成员均能收到同一个VLAN中的其他成员发来的广播包,但收不到其他VLAN中成员发来的广播包;不同VLAN成员之间不可直接通信,需要通过路由支持才能通信,而同一VLAN中的成员通过VLAN交换机可以直接通信,不需路由支持。
3.VLAN的用途
VLAN的特性是控制通信活动,隔离广播数据顺化网络管理,便于工作组优化组合,VLAN中的成员只要拥有一个VLAN ID就可以不受物理位置的限制,随意移动工作站的位置;增加网络的安全性,VLAN交换机就是一道道屏风,只有具备VLAN成员资格的分组数据才能通过,这比用计算机服务器做防火墙要安全得多;网络带宽得到充分利用,网络性能大大提高。
VLAN接口是一种三层模式下的虚拟接口,主要用于实现VLAN间的三层互通,它不作为物理实体存在于交换机上。每个VLAN对应一个VLAN接口,该接口可以为本VLAN内端口收到的报文根据其目的IP地址在网络层进行转发。通常情况下,由于VLAN能够隔离广播域,因此每个VLAN也对应一个IP网段,VLAN接口将作为该网段的网关对需要跨网段转发的报文进行基于IP地址的三层转发。
4.VLAN的类型
按照定义VLAN成员关系的不同,虚拟局域网有以下几种:
基于端口的VLAN。
基于协议的VLAN。
基于MAC地址的VLAN。
基于IP子网的VLAN。
基于IP组播的VLAN。
基于策略的VLAN。
其中,只有按端口号划分的属于静态方式,其余的都属于动态方式。
在引入VLAN后,二层交换机的端口按用途分为访问连接端口(Access Link)和汇聚连接(Trunk Link)端口两种。
基于端口的VLAN分为两类:Port-VLAN和Tag-VLAN。
访问连接端口通常用于连接客户的PC机,以提供网络接入服务。该端口只属于某一个VLAN,并且仅向该VLAN发送或接收数据帧。端口所属的VLAN通常也称作Port-VLAN。
Port-VLAN的工作机制是: 通过查找MAC地址表,交换机只对同一VLAN中的数据进行转发,对发往不同VLAN的数据不转发。
汇聚连接端口属所有VLAN共有,承载所有VLAN在交换机间的通信流量。此端口所属的VLAN通常也称作Tag-VLAN。
汇聚链路承载了所有VLAN的通信流量,为了标识各数据帧属于哪一个VLAN,需要对流经汇聚链路的数据帧进行打标(tag)封装,以附加上VLAN信息,使交换机通过VLAN标识,将数据帧转发到对应的VLAN中。
目前交换机支持的打标封装协议有IEEE802.1Q和ISL。其中IEEE802.1Q是经过IEEE认证的对数据帧附加VLAN识别信息的协议,属于国际标准协议,适用于各个厂商生产的交换机,该协议简称为dot1q。而ISL协议仅适用于Cisco。
(二)配置VLAN
在交换机上可以添加、删除、修改VLAN。缺省情况下交换机有VLAN 1,这个VLAN是系统自动创建,不可以删除。
1.VLAN的基本配置
(1)创建或者修改VLAN。
在全局配置模式下,可以创建或者修改一个VLAN。实现方法是输入一个VLAN ID。如果输入的是一个新的VLAN ID,则设备会创建一个VLAN,如果输入的是已经存在的VLAN ID,则修改相应的VLAN。
Switch (config)#vlan vlan-id
为VLAN取一个名字。如果没有进行这一步,设备会自动为它起一个名字 VLAN xxxx,其中xxxx是以0开头的四位VLAN ID号。比如,VLAN 0004就是VLAN 4的缺省名字
Switch (config-vlan)#name vlan-name
如果想把VLAN的名字改回缺省名字,只需输入no name命令即可。
下面是一个创建VLAN并将它命名为Test的例子:
Switch#configure terminal
Switch(config)#vlan 10
Switch(config-vlan)#name test
Switch(config-vlan)#end
(2)删除一个VLAN。
缺省VLAN 1不允许删除。可以通过no命令后输入一个VLAN ID删除它。
Switch(config)#no vlan vlan-id
(3)向VLAN分配Access。
如果把一个接口分配给一个不存在的VLAN,那么这个VLAN将自动被创建。在接口配置模式下,将一个端口分配给一个VLAN。
Switch(config-if)#switchport mode access !定义该接口的VLAN成员类型为access。
Switch(config-if)#switchport access vlan vlan-id !将这个口分配给一个VLAN。
下面这个例子把FastEthernet 1/10作为Access口加入了VLAN20:
Switch#configure terminal
Switch(config)#interface fastethernet 1/10
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#end
下面这个例子显示了如何检查配置是否正确:
Switch#show interface fastethernet0/1 switchport
Interface Switchport Mode Access Native Protected VLAN lists
---------- ---------- --------- ------ --------- ----------
fastethernet 0/1 enabled ACCESS 1 1 Disabled ALL
2.配置VLAN Trunks
一个Trunk是将一个或多个以太网交换接口和其他的网络设备(如路由器或交换机)进行连接的点对点链路,一条Trunk链路可以传输属于多个VLAN的流量。锐捷设备的Trunk采用802.1Q标准封装。
如果要把一个接口在ACCESS模式和TRUNK模式之间切换,用 switchport mode命令。必须为Trunk口指定一个Native VLAN。所谓Native VLAN,就是指在这个接口上收发的UNTAG报文,都被认为是属于这个VLAN的。显然,这个接口的缺省VLAN ID就是Native VLAN的VLAN ID。同时,在Trunk上发送属于Native VLAN的帧,则必然采用UNTAG的方式。每个Trunk口的缺省Native VLAN是VLAN 1。在配置Trunk链路时,请确认连接链路两端的Trunk口使用相同的Native VLAN。
Switch(config-if)#switchport mode access
Switch(config-if)#switchport mode trunk
(1)配置一个Trunk口。
A.Trunk口基本配置。
在接口配置模式下,可以将一个接口配置成一个Trunk口。
Switch(config-if)#switchport mode trunk ! 定义该接口的类型为二层Trunk口
Switch(config-if)#switchport trunk native vlan vlan-id ! 为这个口指定一个Native VLAN
B.定义Trunk口的许可VLAN列表。
一个Trunk口缺省可以传输本设备支持的所有VLAN(1-4094)的流量。但是,也可以通过设置Trunk口的许可VLAN列表来限制某些VLAN的流量不能通过这个Trunk口。
在接口配置模式下,可以修改一个Trunk口的许可VLAN列表。
Switch(config-if)#switchport trunk allowed vlan {all | [add | remove | except] } vlan-list
配置这个Trunk口的许可VLAN列表。参数vlan-list可以是一个VLAN,也可以是一系列VLAN,以小的VLAN ID开头,以大的VLAN ID结尾,中间用-号连接。如:10–20。
all的含义是许可VLAN列表包含所有支持的VLAN。
add表示将指定VLAN列表加入许可VLAN列表。
remove表示将指定VLAN列表从许可VLAN列表中删除。
except表示将除列出的VLAN列表外的所有VLAN加入许可VLAN列表。
如果想把Trunk的许可VLAN列表改为缺省的许可所有VLAN的状态,请使用no switchport trunk allowed vlan接口配置命令。
下面是一个把VLAN 2从端口FastEthernet 1/15的许可列表中移出的例子:
Switch(config)#interface fastethernet 1/15
Switch(config-if)#switchport trunk allowed vlan remove 2
Switch(config-if)#end
Switch#show interfaces fastethernet 1/15 switchport
Interface Switchport Mode Access Native Protected VLAN lists
--------- ---------- ---- ------ ------ -------- ----------
Fa1/15 enabled TRUNK 1 1 Disabled 1,3-4094
(2)配置Native VLAN。
一个Trunk口能够收发TAG或者UNTAG的802.1Q帧。其中,UNTAG帧用来传输Native VLAN的流量。缺省的Native VLAN是VLAN 1。
在接口配置模式下,可以为一个Trunk口配置Native VLAN。
Switch(config-if)#switchport trunk native vlan vlan-id
如果想把Trunk的Native VLAN列表改回缺省的VLAN 1,请使用no switchport trunk native vlan接口配置命令。
如果一个帧带有Native VLAN的VLAN ID,在通过这个Trunk口转发时,会自动被剥去TAG。
把一个接口的Native VLAN设置为一个不存在的VLAN时,设备不会自动创建此VLAN。此外,一个接口的Native VLAN可以不在接口的许可VLAN列表中。此时,Native VLAN的流量不能通过该接口。
(3)显示VLAN。
在特权模式下,才可以查看VLAN的信息。显示的信息包括VLAN VID、VLAN状态、VLAN成员端口以及VLAN配置信息。以下是显示命令:
show vlan [id vlan-id]
二、任务实施 虚拟局域网VLAN配置与管理
理解port vlan的配置,具备实现Port Vlan的能力。
假设此交换机是宽带小区城域网中的1台楼道交换机,住户PC1连接在交换机的0/5口,住户PC2连接在交换机的0/15口。现要实现各家各户的端口隔离。
VLAN(Virtual Local Area Network,虚拟局域网)是指在一个物理网段内进行逻辑的划分,划分成若干个虚拟局域网。VLAN最大的特性是不受物理位置的限制,可以进行灵活的划分。VLAN具备了一个物理网段所具备的特性。相同VLAN内的主机可以相互直接访问,不同VLAN间的主机间相互访问必须经路由设备进行转发。广播数据包只可以在本VLAN内进行广播,不能传输到其他VLAN中。
Port VLAN是实现VLAN的方式之一,Port VLAN是利用交换机的端口进行VLAN的划分,一个端口只能属于一个VLAN。
通过划分Port VLAN实现本交换端口隔离。
二层交换机1台、PC机两台、直连线两条。
1在未划VLAN前,两台PC互相ping可以通过。下面创建VLAN。
Switch#configure terminal
Switch(config)#vlan 10 !创建vlan 10。
Switch(config-vlan)#name test10 !命名vlan 10为test10。
Switch(config-vlan)#exit
Switch(config)#vlan 20 !创建vlan 20。
Switch(config-vlan)#name test20 !命名vlan 10为test20。
验证测试:
Switch#show vlan !查看已配置的vlan信息。
2将接口分配到VLAN。
Switch#configure terminal !将f0/5端口加入vlan10中。
Switch(config)#interface f0/5
Switch(config-if)#switchport access vlan 10
Switch(config-if)#exit
Switch(config)#interface f0/15 !将f0/15端口加入vlan20中。
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
验证测试:
Switch#show vlan
3验证测试,两台PC互相ping不通。
(1)交换机所有的端口在默认情况下属于access端口,可直接将端口加入某一VLAN,利用switchport mode access/trunk命令可以更改端口的VLAN模式。
(2)VLAN 1属于系统的默认VLAN,不可以被删除。
(3)删除某个VLAN,使用no命令,例如:switch(config)#no vlan 10。
(4)删除某个VLAN时,应先将属于该VLAN的端口加入别的VLAN,再删除之。
具备实现跨交换机之间VLAN的能力。
假设某企业有两个主要部门:销售部和技术部,其中销售部门的个人计算机系统分散连接,他们之间需要相互进行通信,但为了数据安全起见,销售部和技术部需要进行相互隔离,现要在交换机上作适当的配置来实现这一目标。
使在同一VALN里的计算机系统能跨交换机进行相互通信,而在不同VLAN里的计算机系统不能进行相互通信。
Tag VLAN是基于交换机端口的另一种类型,主要用于实现跨交换机的相同VLAN内主机可以直接访问,同时,对于不同VLAN主机进行隔离。Tag VLAN遵循了IEEE802.1Q协议的标准。在利用配置了Tag VLAN的接口进行数据传输时,需要在数据帧内添加4个字节的802.1Q标签信息,用于标识该数据帧属于哪个VLAN,以便于对端交换机接收到数据帧后进行准确的过滤。
S2126G(2台)、主机(3台)、直连线(4条)。
IP分配如下:
PC1:192.168.10.10/24
PC2:192.168.10.20/24
PC3:192.168.10.30/24
1在交换机SwitchA上创建VLAN10,并将0/5端口划分到VLAN10。
SwitchA#configure terminal
switchA(config)#vlan 10
switchA(config-vlan)#name sales
switchA(config-vlan)#exit
switchA(config)#interface f0/5
switchA(config-if)#switchport access vlan 10
验证测试:验证已创建了VLAN 10,并将0/5端口划分到VLAN 10中。
switchA#show vlan id 10
2在交换机SwitchA上创建VLAN20,并将0/15端口划分到VLAN 20中。
switchA(config)#vlan 20
switchA(config-vlan)#name technical
switchA(config-vlan)#exit
switchA(config)#interfce f0/15
switchA(config-if)#switchport access vlan 20
验证测试:验证已创建了VLAN 20,并将0/15端口已划分到VLAN 20中。
SwitchA#show vlan id 20
3把交换机SwitchA与交换机SwitchB相连的端口定义为Tag VLAN模式。
switchA(config)#interface f0/24
switchA(config-if)#switchport mode trunk
验证测试:验证fastethernet 0/24端口已被设置为Tag VLAN模式。
4在交换机SwitchB上创建VLAN 10,并将0/5端口划分到VLAN 10中。
switchB#configure terminal
switchB(config)#vlan 10
switchB(config-vlan)#name sales
switchB(config-vlan)#exit
switchB(config)#interface f0/5
switchB(config-if)#switchport access vlan 10
验证测试:验证已在SwitchB上创建VLAN10,并将0/5端口已划分到VLAN 10中。
switchB#show vlan id 10
5把交换机SwitchB与交换机SwitchA相连的端口定义为Tag VLAN模式。
switchB(config)#interface f0/24
switchB(config-if)#switchport mode trunk
6验证PC1与PC3能互相通信,但PC2与PC3不能互通。
(1)两台交换机之间相连的端口应该设置为Tag VLAN模式。
(2)Trunk接口在默认情况下支持所有VLAN的传输。