一、引言
大部分网络设计者和管理员都知道,第二层平面网络的扩展性不佳,各站点发送数据包前要广播查询目的地的MAC地址。
由于大量应用层软件需要广播传送某些数据包,而这些数据广播包只需发向某一组用户,如果此时没有VLAN(Virtual Local Area Network),这些数据包会占用大量网络资源,使正常数据包无法获得带宽,从而严重影响网络效率及性能。VLAN依靠用户的逻辑设定将原来物理上互联的一个局域网络划分为多个虚拟网段,即在两层交换机的逻辑上划分若干LAN(广播域),将广播信息、组播信息等限制在特定的一组端口上,从而为限制全网范围的广播和多点广播提供有效手段。
在网络设计中,应选择切实可行的技术进行VLAN的灵活划分。划分可依据设备所连的端口、用户节点的MAC地址等,划分的结果是使同一个VLAN内的数据可自由通信。不同VLAN间的数据交流需要通过第三层交换完成。即通过跨越交换机划分VLAN,从而高性能地实现VLAN之间的路由,提高带宽利用率和网络性能,增强网络应用的灵活性和安全性。
二、VLAN在网络中的典型划分
VLAN在网络中的典型划分如图1所示。
VLAN通常与IP网络是相关联的,例如特定IP子网中的所有工作端属于同一个VLAN,不同VLAN之间必须通过路由器或具有路由器功能的模块才能通信。VLAN可以是动态的,也可以是静态的。所谓动态VLAN就是基于工作站的MAC地址,即根据工作站上网卡的48位硬件地址划分的VLAN。动态VLAN主要是通过每台交换机所连接工作站的MAC地址,它将一组MAC地址划分在同一逻辑组中,其中的成员不会因地理位置的改变而改变(这种方法仅用于局域网)。静态VLAN是一种具有固定地理位置的划分方法,它基于交换机端口的划分,可以通过对交换机的适当设置,将同一个交换机或不同交换机上的一组端口划分在同一个VLAN中。
VTP(VLAN Trunk Protocol)协议主要用于多台局域网交换机互联情况下有效管理VLAN的配置。
VTP Domain 也叫VLAN的管理域,它由具有相同管理域名称的交换机组成,每个交换机只能位于一个VTP域中,这样便可以通过命令行(CLI)方式或简单的网络管理协议 (SNMP)来完成整个Domain中VLAN的设置(在缺省状态下,交换机处于非管理域中)。
由于一个端口只能同时属于一个VLAN,那么当两台交换机联机后,属于不同VLAN的数据包如何通过级联端口到达另一台交换机,数据包到达另一台交换机后又如何交换呢?我们可以使用交换机中的Trunk功能。两台交换机之间的Trunk关系以及Trunk中所使用的ISL和802.1Q协议是可以通过双方协商建立的,总共有5种工作方式:On、Off、Desirable、Auto(Trunk端口缺省模式)和Nonegotiate(交换机与路由器之间的Trunk)。
三、VLAN的配置实现
交换机可以分为基于Set命令的和基于IOS的两类。交换机的平台不同,具体设置命令也有所不同,但各种配置的基本原理及设置思路都是一样的。就VLAN的设置来讲,其基本步骤包括:配置VTP 域、建立新的VLAN、将端口分配到目标的VLAN之中。下面以Catalyst 1924-EN VLAN的配置为例加以说明。
1.基于菜单模式进行的VLAN配置
(1)Access the VLAN Configuration Menu
Select ?V? Virtual LAN Menu
Select ?N? Domain name
?V? VTP mode control Server
?F? VTP pruning mode Enabled
?O? VTP traps Enabled
VTP的模式共有3种,交换机可以工作在任何一种模式下。
①服务器(Server)模式
当交换机处于Server 模式时,用户可以对整个域中VLAN的配置参数进行修改,修改后的参数会通过主干广播至其他交换机。工作在该模式下的交换机通过其Trunk端口向其他交换机广播VLAN的配置信息,同时交换机会从自己的Trunk端口接受相邻交换机的VLAN配置广播。所有VLAN的配置信息均会保存在该交换机的Nvram中。
②客户(Client)模式
Client模式与Server模式很相似,不同的是网络管理员不能在VTP的Client上进行VLAN的创造、修改、删除等*作。
③透明(Transparent)模式
当交换机被设置为Transparent模式时,则此交换机不能参与VTP域中的信息交换。
(2)Defining a VLAN
Select ?V? Virtual LAN Menu
Select ?A? Add VLAN
Enter ?1? Etherent (Define the type of VLAN to be added)
Select ?N? VLAN Number (Define the VLAN number)
Select ?V? VLAN Name
Select ?I? 802.1Q SAID (Set the IEEE 802.1Q SAID value)
Select ?M? MTU Size (1500)
Select ?T? VLAN State (Enabled)
Select ?S? Save
802.1Q和 ISL这两个协议的工作原理基本相似,它们都是通过在以太网帧中添加若干数据位用来标识该数据帧属于哪一个VLAN,因此在Trunk端口上运行ISL/802.1Q(交换机中称为Dotlq)协议便可以传递多个VLAN的数据(缺省封装协议为ISL)。
(3)To Group the Switch Ports to VLANs
Select ?V? Virtual LAN
Select ?E? VLAN Membership
Select ?V? VLAN Assignment
Select the appropriate VLAN for each port
(4)VLAN Trunking
?T? Trunking on
?A? Add Allowed VLANs or ?D? Delete Allowed VLANs
一般来说,高速端口(如100M/1000M/EtherChannel端口)均可以作为Trunk端口使用。而属于Trunk的端口只能用于连接局域网交换机,不能用于连接其他网络设备。
2.基于命令行模式进行VLAN配置
(1)通过Console进入配置菜单,键入“K”进入CLI,并进入配置状态。
User Interface Menu
?M? Menus
?K? Command Line
?I? IP Configuration
Enter Selection:K
CLI session with the switch is open.
To end the CLI session, enter ?Exit?.
>enable
# config t
Enter configuration commands, one per line. End with CNTL/Z
(config)# hostname 1900EN
1900EN(config)#
(2)配置VTP有关参数,在全局配置模式下使用以下命令。
vtp ?server | transparent | client? ?domain domain-name? ?trap ?enable | disable?? ?password password? ?pruning?enable | disable??
例如,如果将交换机配置为VTP Server,则VTP的管理域为qdnfh。
1900EN(config)# vtp server
1900EN(config)# vtp domain qdnfh
在特权EXEC模式下,可以使用“Show VTP”察看VTP状态。
(3)建立VLAN及配置有关参数,在全局配置模式下使用以下命令。
vlan vlan ?name vlan-name? ?sde said-value? ?state ?operational | suspended?? ?mtu mtu-size? ??ethernet | fddi | tokenring? ring-number ring-no parent-vlan parent-vlan | ?fddi-net | tr-net? bridge-number bridge-number stp-type ?ibm | ieee?? ?tlb-1 vlan1 tlb-2 vlan2?
如果是建立3个VLAN,则步骤依次为:
①1900EN(config)# vlan 2 name engineering
②1900EN(config)# vlan 3 name marketing
③1900EN(config)# vlan 4 name accounting
在特权EXEC模式下,可以使用“Show VLAN”察看VLAN状态。
(4)使用如下接口命令将端口分配给特定VLAN。
vlan-membership static vlan
如果将端口2分配给VLAN2、端口4分配给VLAN3、端口5分配给VLAN4,则步骤如下:
1900EN(config-if)# int e0/2
1900EN(config-if)# vlan-membership static 2
1900EN(config-if)# int e0/4
1900EN(config-if)# vlan-membership static 3
1900EN(config-if)# int e0/5
1900EN(config-if)# vlan-membership static 4
(5)配置Trunk端口。
在1900系列上,只有FastEthernet上支持Dynamic Inter-Switch Link(DISL)。在FastEthernet端口状态下,可使用如下接口命令将其配置为Trunk端口。
trunk ?on | off | desirable | auto | nonegotiate?
如果将“Fast Ethernet port A”设置为Trunk模式,则步骤为:
1900EN (config)# interface fastethernet 0/26
1900EN (config-if)# trunk on
四、VLAN 之间路由的配置实现
由于VLAN相当于子网(Subnet)的概念,所以不同VLAN之间的通信需要用到第三层的路由器。这在交换机上可以采用路由交换模块(RSM)和外部路由器两种方式实现。
1.采用路由交换模块实现VLAN间路由
以Catalyst 5000交换机为例,通过两个具体的例子说明使用RSM实现VLAN之间的路由设置。如图2所示,有3台Catalyst 5000交换机A、B、C,交换机A第五槽配有RSM。
各交换机之间通过引擎上的快速以太网上联端口相连。每台交换机的第三槽上有一个10M/100M的快速以太模块,分别有3台主机连接在3/1、3/2、3/3端口上,有4项配置任务需要完成:①建立一个VTP域,并将交换机A作为该域的Server,将交换机B、C作为Client;②在交换机之间建立ISL Trunk; ③建立VLAN,并在各交换机上将端口加入相应的VLAN;④在RSM为每个VLAN建立相应的VLAN Interface,实现各VLAN之间通过RSM进行通信。具体配置如下:
(1)Switch A Configuration
Switch A> (enable) set trunk 1/1 desirable
Switch A> (enable) set vtp domain Corporate
Switch A> (enable) set vtp mode server
Switch A> (enable) set vlan 2 name Engineering
Switch A> (enable) set vlan 3 name Marketing
Switch A> (enable) set vlan 4 name Accounting
Switch A> (enable) set vlan 2 3/1
Switch A> (enable) set vlan 3 3/2
Switch A> (enable) set vlan 4 3/3
Switch A> (enable)
(2)Switch B Configuration
Switch B> (enable) set trunk 1/2 desirable
Switch B> (enable) set vtp domain Corporate
Switch B> (enable) set vtp mode client
Switch B> (enable) set vlan 2 3/1
Switch B> (enable) set vlan 3 3/2
Switch B> (enable) set vlan 4 3/3
Switch B> (enable)
(3)Switch C Configuration
Switch C> (enable) set vtp domain Corporate
Switch C> (enable) set vtp mode client
Switc h C> (enable) set vlan 2 3/1
Switch C> (enable) set vlan 3 3/2
Switc h C> (enable) set vlan 4 3/3
Switch C> (enable)
(4)RSM Configuration
Switch A> (enable) session 5
Router>enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface vlan 2
Router(config-if)#ip address 172.20.52.33 255.255.255.224
Router(config-if)#no shutdown
Router(config-if)#interface vlan 3
Router(config-if)#ip address 172.20.52.65 255.255.255.224
Router(config-if)#no shutdown
Router(config-if)#interface vlan 4
Router(config-if)#ip address 172.20.52.97 255.255.255.224
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#^Z
Router#copy running-config startup-config
Building configuration...
?OK?
2.采用外部路由器实现VLAN间路由
一个10M/100M快速以太模块位于交换机的第二槽,3台主机分别连在端口2/1、2/2、2/3上;Cisco 7505的一个快速以太口连接在交换机引擎的1/1上联端口上实现各VLAN之间的通信(网络结构如图3所示)。
具体配置如下:
(1)Switch Configuration
Switch> (enable) set vtp domain Corporate
Switch> (enable) set vtp mode server
Switch> (enable) set vlan 10
Switch> (enable) set vlan 20
Switch> (enable) set vlan 30
Switch> (enable) set vlan 10 2/1
Switc h> (enable) set vlan 20 2/2
Switch> (enable) set vlan 30 2/3
Switch> (enable) set trunk 1/1 on
Cat5000> (enable)
(2)Cisco7505 Configuration
Cisco7505#configure terminal
Cisco7505(config)#interface fastethernet2/0.10
Cisco7505(config-subif)#encapsulation isl 10
Cisco7505(config-subif)#ip address 10.10.1.1 255.255.0.0
Cisco7505(config-subif)#interface fastethernet2/0.20
Cisco7505(config-subif)#encapsulation isl 20
Cisco7505(config-subif)#ip address 10.20.1.1 255.255.0.0
Cisco7505(config-subif)#interface fastethernet2/0.30
Cisco7505(config-subif)#encapsulation isl 30
Cisco7505(config-subif)#ip address 10.30.1.1 255.255.0.0
Cisco7505(config-subif)#^Z
Cisco7505#copy running-config startup-config
Building configuration...
?OK?
Cisco7505#
综上所述,当在两个VLAN之间进行RSM路由配置时,将在RSM中创建多个虚拟接口。这些接口与管理域中配置的每个VLAN均保持了映射关系。每个VLAN的虚拟接口都配置一个IP地址(该IP地址应与VLAN属于同一子网),就像为与VLAN直接相连的主机配置IP地址一样。当VLAN中的其他设备希望与非本地的目标设备通信时,将会使用这一地址作为缺省网关。在RSM上进行这些配置工作所用的语句,在很大程度上类似于在一个独立路由器上的配置语句。而通过外部路由器实现VLAN间路由的典型方式是将路由器与交换机相连的线路设为Trunk,并将路由器上与交换机相连的端口划分为多个子端口,使每个子端口对应一个VLAN。