补充:工程实践
一.基于
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
写于
2010-2--1
本文出自 “华苏科技网络实验室” 博客,转载请与作者联系!