作者:IT168网络频道  2005-05-13  

什么是三层交换和VLAN?

    要回答这个问题我们还是先看看以太网的工作原理。以太网的工作原理是利用二进制位形成的一个个字节组合成一帧帧的数据(其实是一些电脉冲)在导线中进行传播。首先,以太网网段上需要进行数据传送的节点对导线进行监听,这个过程称为CSMA/CD(Carrier Sense Multiple Access with Collision Detection带有冲突监测的载波侦听多址访问)的载波侦听。

    如果,这时有另外的节点正在传送数据,监听节点将不得不等待,直到传送节点的传送任务结束。如果某时恰好有两个工作站同时准备传送数据,以太网网段将发出“冲突”信号。这时,节点上所有的工作站都将检测到冲突信号,因为这时导线上的电压超出了标准电压。

    这时以太网网段上的任何节点都要等冲突结束后才能够传送数据。也就是说在CSMA/CD方式下,在一个时间段,只有一个节点能够在导线上传送数据。而转发以太网数据帧的联网设备是集线器,它是一层设备,传输效率比较低。

    冲突的产生降低了以太网的带宽,而且这种情况又是不可避免的。所以,当导线上的节点越来越多后,冲突的数量将会增加。显而易见的解决方法是限制以太网导线上的节点,需要对网络进行物理分段。将网络进行物理分段的网络设备用到了网桥与交换机。

    网桥和交换机的基本作用是只发送去往其他物理网段的信息。所以,如果所有的信息都只发往本地的物理网段,那么网桥和交换机上就没有信息通过。这样可以有效减少网络系某逋弧M藕徒换换腔谀勘闙AC(介质访问控制)地址做出转发决定的,它们是二层设备。

    我们已经知道了以太网的缺点及物理网段中冲突的影响,现在,我们来看看另外一种导致网络降低运行速度的原因:广播。广播存在于所有的网络上,如果不对它们进行适当的控制,它们便会充斥于整个网络,产生大量的网络通信。广播不仅消耗了带宽,而且也降低了用户工作站的处理效率。

    由于各种各样的原因,网络操作系统(NOS)使用了广播,TCP/IP使用广播从IP地址中解析MAC地址,还使用广播通过RIP和IGRP协议进行宣告,所以,广播也是不可避免的。网桥和交换机将对所有的广播信息进行转发,而路由器不会。所以,为了对广播进行控制,就必须使用路由器。路由器是基于第3层报头、目标IP寻址、目标IPX寻址或目标Appletalk寻址做出转发决定。路由器是3层设备。
在这里,我们就容易理解三层交换技术了,通俗地讲,就是将路由与交换合二为一的技术。路由器在对第一个数据流进行路由后,将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此映射表直接从二层进行交换而不是再次路由,提供线速性能,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。采用此技术的交换机我们常称为三层交换机。

    那么,什么是VLAN呢?VLAN(Virtual Local Area Network)就是虚拟局域网的意思。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在一个支持VLAN的交换机端口上并属于一个VLAN。

    同一个VLAN中的成员都共享广播,形成一个广播域,而不同VLAN之间广播信息是相互隔离的。这样,将整个网络分割成多个不同的广播域(VLAN)。

    一般来说,如果一个VLAN里面的工作站发送一个广播,那么这个VLAN里面所有的工作站都接收到这个广播,但是交换机不会将广播发送至其他VLAN上的任何一个端口。如果要将广播发送到其它的VLAN端口,就要用到三层交换机。


 如何配置三层交换机创建VLAN

    以下的介绍都是基于Cisco交换机的VLAN。Cisco的VLAN实现通常是以端口为中心的。与节点相连的端口将确定它所驻留的VLAN。将端口分配给VLAN的方式有两种,分别是静态的和动态的。

    形成静态VLAN的过程是将端口强制性地分配给VLAN的过程。即我们先在VTP (VLAN Trunking Protocol)Server上建立VLAN,然后将每个端口分配给相应的VLAN的过程。这是我们创建VLAN最常用的方法。

    动态VLAN形成很简单,由端口决定自己属于哪个VLAN。即我们先建立一个VMPS(VLAN Membership Policy Server)VLAN管理策略服务器,里面包含一个文本文件,文件中存有与VLAN映射的MAC地址表。交换机根据这个映射表决定将端口分配给何种VLAN。这种方法有很大的优势,但是创建数据库是一项非常艰苦而且非常繁琐的工作。

    下面以实例说明如何在一个典型的快速以太局域网中实现VLAN。所谓典型的局域网就是指由一台具备三层交换功能的核心交换机接几台分支交换机(不一定具备三层交换能力)。我们假设核心交换机名称为:COM;分支交换机分别为:PAR1、PAR2、PAR3……,分别通过Port 1的光线模块与核心交换机相连;并且假设VLAN名称分别为COUNTER、MARKET、MANAGING……。

 
 设置VTP DOMAIN

    VTP DOMAIN 称为管理域。交换VTP更新信息的所有交换机必须配置为相同的管理域。如果所有的交换机都以中继线相连,那么只要在核心交换机上设置一个管理域,网络上所有的交换机都加入该域,这样管理域里所有的交换机就能够了解彼此的VLAN列表。

    COM#vlan database 进入VLAN配置模式

    COM(vlan)#vtp domain COM 设置VTP管理域名称COM

    COM(vlan)#vtp server 设置交换机为服务器模式

    PAR1#vlan database 进入VLAN配置模式

    PAR1(vlan)#vtp domain COM 设置VTP管理域名称COM

    PAR1(vlan)#vtp Client 设置交换机为客户端模式

    PAR2#vlan database 进入VLAN配置模式

    PAR2(vlan)#vtp domain COM 设置VTP管理域名称COM

    PAR2(vlan)#vtp Client 设置交换机为客户端模式

    PAR3#vlan database 进入VLAN配置模式

    PAR3(vlan)#vtp domain COM 设置VTP管理域名称COM

    PAR3(vlan)#vtp Client 设置交换机为客户端模式
 
    注意:这里设置交换机为Server模式是指允许在本交换机上创建、修改、删除VLAN及其他一些对整个VTP域的配置参数,同步本VTP域中其他交换机传递来的最新的VLAN信息;Client模式是指本交换机不能创建、删除、修改VLAN配置,也不能在NVRAM中存储VLAN配置,但可以同步由本VTP域中其他交换机传递来的VLAN信息。
 

 配置中继

    为了保证管理域能够覆盖所有的分支交换机,必须配置中继。Cisco交换机能够支持任何介质作为中继线,为了实现中继可使用其特有的ISL标签。ISL(Inter-Switch Link)是一个在交换机之间、交换机与路由器之间及交换机与服务器之间传递多个VLAN信息及VLAN数据流的协议,通过在交换机直接相连的端口配置ISL封装,即可跨越交换机进行整个网络的VLAN分配和进行配置。

    在核心交换机端配置如下:

    COM(config)#interface gigabitEthernet 2/1

    COM(config-if)#switchport

    COM(config-if)#switchport trunk encapsulation isl

    COM(config-if)#switchport mode trunk

    COM(config)#interface gigabitEthernet 2/2

    COM(config-if)#switchport

    COM(config-if)#switchport trunk encapsulation isl

    COM(config-if)#switchport mode trunk

    COM(config)#interface gigabitEthernet 2/3

    COM(config-if)#switchport

    COM(config-if)#switchport trunk encapsulation isl

    COM(config-if)#switchport mode trunk

    在分支交换机端配置如下:

    PAR1(config)#interface gigabitEthernet 0/1

    PAR1(config-if)#switchport mode trunk

    PAR2(config)#interface gigabitEthernet 0/1

    PAR2(config-if)#switchport mode trunk

    PAR3(config)#interface gigabitEthernet 0/1

    PAR3(config-if)#switchport mode trunk

    此时,管理域算是设置完毕了。
 

创建VLAN

    一旦建立了管理域,就可以创建VLAN了。

    COM(vlan)#Vlan 10 name COUNTER 创建了一个编号为10名字为COUNTER的 VLAN

    COM(vlan)#Vlan 11 name MARKET 创建了一个编号为11名字为MARKET的 VLAN

    COM(vlan)#Vlan 12 name MANAGING 创建了一个编号为12名字为MANAGING的 VLAN

    注意,这里的VLAN是在核心交换机上建立的,其实,只要是在管理域中的任何一台VTP 属性为Server的交换机上建立VLAN,它就会通过VTP通告整个管理域中的所有的交换机。但是如果要将交换机的端口划入某个VLAN,就必须在该端口所属的交换机上进行设置。


将交换机端口划入VLAN

    例如,要将PAR1、PAR2、PAR3……分支交换机的端口1划入COUNTER VLAN,端口2划入MARKET VLAN,端口3划入MANAGING VLAN……

    PAR1(config)#interface fastEthernet 0/1 配置端口1

    PAR1(config-if)#switchport access vlan 10 归属COUNTER VLAN

    PAR1(config)#interface fastEthernet 0/2 配置端口2

    PAR1(config-if)#switchport access vlan 11 归属MARKET VLAN

    PAR1(config)#interface fastEthernet 0/3 配置端口3

    PAR1(config-if)#switchport access vlan 12 归属MANAGING VLAN

    PAR2(config)#interface fastEthernet 0/1 配置端口1

    PAR2(config-if)#switchport access vlan 10 归属COUNTER VLAN

    PAR2(config)#interface fastEthernet 0/2 配置端口2

    PAR2(config-if)#switchport access vlan 11 归属MARKET VLAN

    PAR2(config)#interface fastEthernet 0/3 配置端口3

    PAR2(config-if)#switchport access vlan 12 归属MANAGING VLAN

    PAR3(config)#interface fastEthernet 0/1 配置端口1

    PAR3(config-if)#switchport access vlan 10 归属COUNTER VLAN

    PAR3(config)#interface fastEthernet 0/2 配置端口2

    PAR3(config-if)#switchport access vlan 11 归属MARKET VLAN

    PAR3(config)#interface fastEthernet 0/3 配置端口3

    PAR3(config-if)#switchport access vlan 12 归属MANAGING VLAN


配置三层交换

    到这里,VLAN已经基本划分完毕。但是,VLAN间如何实现三层(网络层)交换呢?这时就要给各VLAN分配网络(IP)地址了。给VLAN分配IP地址分两种情况,其一,给VLAN所有的节点分配静态IP地址;其二,给VLAN所有的节点分配动态IP地址。下面就这两种情况分别介绍。

    我们假设给VLAN COUNTER分配的接口Ip地址为172.16.58.1/24,网络地址为:172.16.58.0,VLAN MARKET分配的接口Ip地址为172.16.59.1/24,网络地址为172.16.59.0,VLAN MANAGING分配的接口Ip地址为172.16.60.1/24,网络地址为172.16.60.0……。如果动态分配IP地址,则设网络上的 DHCP服务器IP地址为172.16.1.11。

    (1)给VLAN所有的节点分配静态IP地址

    首先在核心交换机上分别设置各VLAN的接口IP地址,如下所示:

    COM(config)#interface vlan 10

    COM(config-if)#ip address 172.16.58.1 255.255.255.0 VLAN10接口IP

    COM(config)#interface vlan 11

    COM(config-if)#ip address 172.16.59.1 255.255.255.0 VLAN11接口IP

    COM(config)#interface vlan 12

    COM(config-if)#ip address 172.16.60.1 255.255.255.0 VLAN12接口IP

    再在各接入VLAN的计算机上设置与所属VLAN的网络地址一致的IP地址,并且把默认网关设置为该VLAN的接口地址。这样,所有的VLAN也可以互访了。

    (2)给VLAN所有的节点分配动态IP地址

    首先在核心交换机上分别设置各VLAN的接口IP地址和DHCP服务器的IP地址,如下所示:

    COM(config)#interface vlan 10

    COM(config-if)#ip address 172.16.58.1 255.255.255.0 VLAN10接口IP

    COM(config-if)#ip helper-address 172.16.1.11 DHCP Server IP

    COM(config)#interface vlan 11

    COM(config-if)#ip address 172.16.59.1 255.255.255.0 VLAN11接口IP

    COM(config-if)#ip helper-address 172.16.1.11 DHCP Server IP

    COM(config)#interface vlan 12

    COM(config-if)#ip address 172.16.60.1 255.255.255.0 VLAN12接口IP

    COM(config-if)#ip helper-address 172.16.1.11 DHCP Server IP

    再在DHCP服务器上设置网络地址分别为172.16.58.0,172.16.59.0,172.16.60.0的作用域,并将这些作用域的“路由器”选项设置为对应VLAN的接口IP地址。这样,可以保证所有的VLAN也可以互访了。

    最后在各接入VLAN的计算机进行网络设置,将IP地址选项设置为自动获得IP地址即可。

    总结:本文是笔者在实际工作中的一些总结。笔者力图用通俗易懂的文字来阐述创建VLAN的全过程。并且给出了详细的设置步骤,只要你对Cisco交换机的IOS有所了解,看懂本文并不难。按照本文所示的步骤一步一步地做,你完全可以给一个典型的快速以太网络建立多个VLAN。