一.基于VMPS的动态VLAN配置实例
网络中VLAN实现分为静态VLAN和动态VLAN。静态VLAN又被称为是基于端口的VLAN。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法,交换机中某个端口属于哪个VLAN是相对固定的。动态VLAN则是根据每个端口所连的计算机,随时改变端口所属VLAN。
静态VLAN在这里我们就不讲了,由于网络中的计算机需要变更所连端口时,就必须同时更改所连端口所属VLAN的设定-----这是不适合那些需要频繁改变拓扑结构的客户需求的。
而动态VLAN则不同,由于它可以根据每个端口所属的计算机,随时改变端口所属的VLAN,所以当网络中计算机变更所连端口或交换机时,VLAN不用重新配置。而它基于MAC地址或用户的认证方式,也可以杜绝非法接入网络的问题。动态VLAN实现技术主要有两种:
一是基于用户的动态VLAN,
二是基于MAC地址的动态VLAN。
基于用户的动态VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是域中使用的用户名。也就是说用户只要通过自己在域中的用户名,不管在那台电脑上都能够接入到自己所属的VLAN当中。
基于MAC地址的动态VLAN,就是通过查询并记录端口所连计算机上的MAC地址来决定端口所属VLAN。当分配给动态VLAN的交换机端口被激活后,交换机就缓存初始帧的源MAC地址。随后,交换机便向一个称为VMPS(VLAN管理策略服务器)的外部服务器发出请求,VMPS中包含一个文本文件,文件中存有进行VLAN映射的MAC地址。交换机
对这个文件进行下载,然后对文件中的MAC地址进行校验。
如果在文件列表中找到MAC地址,交换机就将端口分配给列表中该MAC所对应的VLAN。所有列表中没有的话,交换机就会将该端口分配给默认VLAN(假设已经定义了默认VLAN)。如果在列表中没有MAC地址,而且也没有默认VLAN,端口将不会被激活。
本实例将述的就是基于MAC地址的动态VLAN。
网络环境:
核心是一台CISCO3560G三层交换机,配置为VTP Server模式。CISCO 3560G中定义了两个VLAN,通过Trunk端口(Gi0/1,GI0/2端口)与两台Cisco 2960交换机相连。
VMPS服务器是基于Scientific Linux平台下的OpenVMPS构建的,连接至Cisco3560G的GI0/24端口。两台CISCO2960配置为客户端模式,通过GI0/1端口接受来自核心交换机的VLAN信息,并将其余端口链路类型设置为Access,端口所属VLAN设为Dynamic(动态)。合法的用户计算机接入任意端口,都可以加入到相应的VLAN。
VMPS服务器配置
VMPS服务器需CISCO5000以上高端交换机才支持,因此这里选用的是第三方的开源软件-OpenVMPS,基于Scientific Linux 5.3架设的VMPS服务器。
下载安装
OpenVMPS最新版本为1.4.01.可通过“http://sourceforge.net/projects/vmps/”下载OpenVMPS,将下载的VMPSd-1.4.01.tar.gz文件上传至Linux服务器,以root用户运行下面的命令进行安装。
# tar -v z x f vmpsd-1.01.tar.gz
#cd vmpsd
# ./configrure
#make
#make install
配置VMPS数据库
OpenVMPS安装好之后,会自动生成VMPS数据库配置文件/usr/local/etc/vlan.db,这个文件时是个文本文件,下面是配置内容:
vmps domain cisco ////////指定VTP域名为cisco
Vmps mode open //////////指定VMPS运行模式为OPEN。Vmps能够以OPEN或者secure的模式工作,OPEN时,VMPS会对未授权的MAC地址返回拒绝,对没有列在VMPS数据库中的MAC地址返回一个fallback(后备VLAN)。在secure模式,VMPS对于未授权的或者没有列在数据库的MAC地址都会关闭相应的端口。
Vmps fallback ----none-----////////指定一个后备VLAN,none时表示没有。
Vmps no-domain-req deny /指定VMPS客户端交换机如果不属于VTP域,将不提供任何映射
Vmps-mac-address //////与Address之间的关联。对指定的MAC地址使用关键字--NONE--关键字表示,阻止该主机加入到任何VLAN。在VLAN。Db中还有很多参数,感兴趣的可以自己研究。
Address 0001.2201.88cd.vlan-name accout
Address 0001.2201.88ce.vlan-name accout
Address 0001.2201.75ca.vlan-name sale
运行VMPS
以root用户执行下面命令,可以启动VMPS:
#/usr/local/bin/vmpsd
OpenVMPS默认端口时UDP1589,用netstat -an grep 1589可以查看vmpsd进程是否运行。
如果需要在开启Liunx服务器是就加载vmpsd.可以在/etc/rc.local中加入/usr/local/bin/vmpsd/
其他VMPSD的配置信息如下:
Vpmsd [-d] [-a address] [-f file] [-l level] [-p port]
-d: 在前台运行VMPSD,可以很清楚的看到对MAC地址与VLAN的关联
-a address 设置绑定到VMPSD的IP地址
-f file 设置VMPSD数据库配置文件,默认为/usr/local/etc/vlan.db
-l level 设置日志级别
-p port 设置VMPSD的监听端口,默认为1589
CISCO3560G配置
#vtp domain cisco
#vtp mode server
#interface rang gi0/1 -2
#switchport trunk encapsulation dot1q
#switchport mode trunk
定义VLAN,设置VLAN IP地址。
#VLAN 133
# name sale
#vlan 168
#name accout
#interface vlan 133
#ip address 172.16.1.1 255.255.255.0
#no shu
#interface vlan 168
#ip address 172.16.2.1 255.255.255.0
#no shu
设置gi0/24为访问口,连接VMPSD服务器
#interface gi0/24
#switchport mode access
#no shu
#ip routing
#write
Cisco2960配置
#VTP domain cisco
#vtp mode client
#interface gi0/1
#switchport mode trunk
#no shu
#exit
设置fa0/1-24为访问口,所属VLAN为动态获取
#interface rang fa0/1 -24
#switchport mode access
#switchport access vlan dynam
#no shu
设置主VMPS,另外可以设置3个备用的VMPS服务器。
CISCO2960
#vmps server 172.16.1.100 primary
#end
#write
#
开启VQPC(VLAN查询协议客户端)调试,将会看到MAC地址与VLAN关联的过程。
#debug vqpc all