编者按:移动办公指随时随地可以办公,但事实上,当单位各部门都设置了独立的安全措施后,想移动办公的笔记本电脑就处处受制而不能上网了。如何解决这个问题呢? 在一些规模适中的公司里面,员工可能在不同的写字楼的楼层里面抱着笔记本频繁奔波于不同部门或会议室,当他们要访问本部门的服务器的时候,如果不在自己部门的vlan里面访问台式机的文件,就会出……
-----------------------------------------------------------------------------
编者按:移动办公指随时随地可以办公,但事实上,当单位各部门都设置了独立的安全措施后,想移动办公的笔记本电脑就处处受制而不能上网了。如何解决这个问题呢?
在一些规模适中的公司里面,员工可能在不同的写字楼的楼层里面抱着笔记本频繁奔波于不同部门或会议室,当他们要访问本部门的服务器的时候,如果不在自己部门的vlan里面访问台式机的文件,就会出现拒绝访问的后果,很多人需要跑回原来的办公室才能取回文件。
此时管理员可以采用动态vlan的方法,将这些笔记本的mac地址记录下来,通过mac地址划分vlan。不论他们在那个办公环境中,都可以被分配到正确的vlan里面。本文将介绍vmps,即vlan management policy server是如何解决此类应用的配置难题。
一.动态vlan凭什么能解决问题?
动态的vlan形成很简单,由交换机端口自己决定它属于哪个vlan时,就形成了动态的vlan。其实,动态的vlan就是一个简单的映射,这个映射取决于工程师创建的mac数据库文件。分配给动态vlan的端口被激活后,交换机就缓存初始帧的源m a c地址。随后,交换机便向一个称为vmps (vlan管理策略服务器)的外部服务器发出请求,vmps中包含一个文本文件,文件中存有进行vlan映射的m a c地址。交换机对这个文件进行下载,然后对文件中的m a c地址进行校验。如果在文件列表中找到m a c地址,交换机就将端口分配给列表中的vlan。
如果列表中没有m a c地址,交换机就将端口分配给默认的vlan(假设已经定义默认了vlan)。在动态vlan中,如果在列表中没有m a c地址,而且也没有定义默认的vlan,端口不会被激活,这是维护网络安全一种非常好的的方法。
vmps即vlan management policy server,是一种基于源mac地址动态的、在交换机端口上划分vlan的方法。当某个端口的主机移动到另一个端口后,vmps动态的为其指定vlan。不过基于cisco ios系列中低端交换不支持一般不支持vmps的功能,它只能成为vlan查询协议(vlan query protocol)的客户机。
一旦启动了vmps,包含mac地址到vlan映射的数据库就会从tftp服务器下载到vmps服务器。然后,vmps使用udp端口监听来自vqp客户机的请求。当vmps服务器收到来自vmps客户机的请求后,它将在本地数据库里查找mac地址到vlan的映射条目信息。vmps将对请求进行响应,如果被指定的vlan局限于一组端口,vmps将验证对发出请求的端口进行验证:
* 如果请求端口的vlan被允许的,vmps向客户发送vlan的名称;
* 如果请求端口的vlan不与允许的,并且vmps不是处于安全模式,vmps将发送“access-denied”访问被拒绝的信息;
* 如果请求端口的vlan不与允许的,但vmps处于安全模式,vmps将发送“port-shutdown”端口关闭的信息。
另外,如果数据库里的vlan信息和端口的当前vlan信息不匹配,并且该端口连接的有活动主机,vmps将发送“access-denied”、“fallback vlan name”或者“port-shutdown”、“new vlan name”信息。如果交换机从vmps那里收到“access-denied”的信息,交换机将堵塞来自该mac地址,前往或从该端口返回的流量,交换机将继续监视去往该端口的数据包,并且当交换机识别到一个新的地址后,它会向vmps发出查询信息.如果交换机从vmps那里收到“port-shutdown”信息。
注意:交换机将禁用该端口,必须手工的将该端口启用才能正式使用。
二:深入动态vlan技术内幕
vmps有open、secure、multiple 三种运行模式:
1.open模式
当端口未指定vlan时,如果该端口的mac地址与之相关联的vlan信息被许可,vmps将向客户返回vlan名;如果该端口的mac地址与之相关联的vlan信息不被许可,vmps将向客户返回“access-denied”信息。
当端口已经指定vlan时,如果数据库里的vlan与mac地址相关联的信息和端口的当前vlan关联信息不匹配,并配置的有fallback vlan(后备vlan)名,那么vmps将返回fallback vlan名给客户机;如果数据库里的vlan与mac地址相关联的信息和端口的当前vlan关联信息不匹配,并没有配置fallback vlan名,那么vmps将返回“access-denied”信息给客户机。
2.secure模式
当端口未指定vlan时,.如果该端口的mac地址与之相关联的vlan信息被许可,vmps将向客户返回vlan名;如果该端口的mac地址与之相关联的vlan信息不被许可,端口将被关闭。
当端口已经指定vlan时,如果数据库里的vlan与mac地址相关联的信息和端口的当前vlan关联信息不匹配,即使有配置fallback vlan名,端口仍将被关闭。
3.multiple模式
当多个mac地址处于同一vlan的时候,多个mac地址可以对应一个动态端口。如果动态端口的链路关闭,端口将被还原成未指定状态,并且在指定vlan之前,vmps将对这些地址重新检查;如果这些主机位于不同的vlan,vmps将向客户返回最新的mac地址到vlan映射的信息。
当然,也可以在vmps上指定fallback vlan名。如果该端口未指定任何vlan,vmps将把端口和发起请求的mac地址进行比较:如果主机的mac地址在数据库中不存在,并且vmps上指定的有fallback vlan名,那么将向客户机返回fallback vlan名信息;如果主机的mac地址在数据库中不存在,但vmps上未指定fallback vlan名,那么将向客户机返回“access-denied”信息;如果该端口已经指定任何vlan,vmps将把端口和发起请求的mac地址进行比较。
此时,不管vmps上有没有配置fallback vlan名,只要vmps处于secure模式,那么它就将反馈“port-shutdown”信息给客户机。
三.动态vlan如何解决移动办公难题
1.创建vmps数据库文件
要使用vmps必须先创建vmps数据库,并将其保存在一个tftp服务器上。vmps数据库文件是一个ascii吗的文本文件,并且编写起来非常繁琐,最简单的方式是获得一个vmps数据库范本。vmps数据库文件包含如下条目:
(1)包含vmps域名的文件头
(2)vmps运行模式
(3)后备(fallback)用的vlan名
(4)映射到vlan名字上的一组mac地址
vmps数据库的基本结构如下:
vmps domain switchblock1 (指定vtp域名)
vmps mode open (指定运行模式)
vmps fallback default (指定fallback vlan,这里默认是vlan 1)
vmps no-domain-req deny (只要发送的请求不带域名,就不提供任何vlan映射)
!
vmps-mac-addrs (配置mac地址和vlan之间的关联)
!
!
address 0001.0387.0943 vlan-name groupa
address 0050.0491.f950 vlan-name groupb
address 0050.da8f.1134 vlan-name groupc
2.配置vmps服务器
(1)设置vmps的下载方式:set vmps downloadmethod {rcp | tftp}
(2)设置vmps下载服务器和文件名称:set vmps downloadserver ipaddress [filename]
(3)启动vmps服务:set vmps state enable
3.配置vmps客户端
* cos交换机:set vmps server ipaddress [primary]
* ios交换机:(global) vmps server ipaddress primary
要让客户端交换机从服务器请求中获得动态的vlan信息,必须给客户端配置服务器地址。使用primary选项来指定主vmps服务器的ip,还可以制定至多3个vmps服务器起到负载的作用。
4.配置端口为动态模式
* cos交换机:set port membership mod/port dynamic
* ios交换机:(interface) switchport access dynamic
四.实战:动态vlan解决案例
在下图所示,交换机access_1和vmps_s1的端口按如下需求划分划分:
* vlan 5中包含access_1的1和2、vmps_s1上的3/1-48;
* vlan 8中包含access_1的3和4、vmps_s1上的4/1-48;
* vlan 10中包含access_1的5和6、vmps_s1上的5/1-12和5/18-24;
* access_1的13-16以及vmps_s1上的5/13-17是动态端口。
图 vlan逻辑拓扑图

1.配置服务器
vmps_s1 (enable)>set vlan 5 3/1-48
vmps_s1 (enable)>set vlan 8 4/1-48
vmps_s1 (enable)>set vlan 10 5/1-12,5/18-24
vmps_s1 (enable)>set vmps downloadserver 10.1.1.101 vmpsconfig.txt
vmps_s1 (enable)>set interface sc0 10.1.1.1/24
vmps_s1 (enable)>set vmps enable
vmps_s1 (enable)>set vmps server 10.1.1.1
vmps_s1 (enable)> set port membership 5/13-17 dynamic
2.配置客户端
access_1(config)#interface fastethernet 0/1
access_1(config-if)#switchport access vlan 5
access_1(config-if)#interface fastethernet 0/2
access_1(config-if)#switchport access vlan 5
access_1(config-if)#interface fastethernet 0/3
access_1(config-if)#switchport access vlan 8
access_1(config-if)#interface fastethernet 0/4
access_1(config-if)#switchport access vlan 8
access_1(config-if)#interface vlan 1
access_1(config-if)#ip address 10.1.1.2 255.255.255.0
access_1(config-if)#vmps server 10.1.1.1
access_1(config)#interface fastethernet 0/5
access_1(config-if)#switchport access dynamic
access_1(config-if)#interface fastethernet 0/6
access_1(config-if)#switchport access vlan dynamic
access_1(config-if)# end
access_1 #copy running-config startup-config
五.工程师总结:动态vlan优势大 但有缺点
基于端口的静态的优点体现在定义vlan成员时非常简单,只要将所有的端口都指一下就可以了。而缺点则是不够灵活,如果vlan a的用户离开了原来的端口,到了一个新的交换机的某个端口,就必须重新定义该用户,否则就很有可能成为vlan b的成员。
利用vmps配置基于mac的案例非常精彩。我们都知道mac地址就是指网卡(nic)的标识符,每一块网卡的mac地址都是惟一的。从某种意义上说,这是一种基于用户的网络划分手段,基于mac地址的vlan划分其实就是基于工作站、服务器的vlan组合。在网络规模较小时,该方案不失为一个好方法,但随着网络规模的扩大以及网络设备、用户的增加,会在很大程度上加大管理的难度。
从表面上看,动态vlan的优势很大,但它也有致命的缺点,即创建数据库是一项非常艰苦而且非常繁琐的工作。如果网络上有数千个工作站,则有大量的输入工作要做。即使有人能胜任这项工作,也还会出现与动态的vlan有关的很多问题。另外,保持数据库为最新也是要随时进行的非常费时的工作。
六.知识链接:动态vlan配置文件模板
这里给出一个vmpsconfig.txt配置模板,读者可更具上述操作步骤自行修改。
!section 1: global settings
!vmps file format, version 1.1
! always begin the configuration file with
! the word "vmps"
!
!vmps domain <domain-name>
! the vmps domain must be defined.
!vmps mode {open | secure}
! the default mode is open.
!vmps fallback <vlan-name>
!vmps no-domain-req { allow | deny }
!
! the default value is allow.
vmps domain wbu
vmps mode open
vmps fallback default
vmps no-domain-req deny
!
!section 2: mac addresses
!mac addresses
vmps-mac-addrs
!
! address <addr> vlan-name <vlan_name>
!
address 0012.2233.4455 vlan-name hardware
address 0000.6509.a080 vlan-name hardware
address aabb.ccdd.eeff vlan-name green
address 1223.5678.9abc vlan-name execstaff
address fedc.ba98.7654 vlan-name --none--
address fedc.ba23.1245 vlan-name purple
!
!section 3: port groups
!port groups
!vmps-port-group <group-name>
! device <device-id> { port <port-name> | all-ports }
!
vmps-port-group wiringcloset1
device 198.92.30.32 port 3/2
device 172.20.26.141 port 2/8
vmps-port-group "executive row"
device 198.4.254.222 port 1/2
device 198.4.254.222 port 1/3
device 198.4.254.223 all-ports
!
!section 4: vlan groups
!vlan groups
!
!vmps-vlan-group <group-name>
! vlan-name <vlan-name>
!
vmps-vlan-group engineering
vlan-name hardware
vlan-name software
!
!section 5: vlan port policies
!vlan port policies
!
!vmps-port-policies {vlan-name <vlan_name> | vlan-group <group-name> }
! { port-group <group-name> | device <device-id> port <port-name> }
!
vmps-port-policies vlan-group engineering
port-group wiringcloset1
vmps-port-policies vlan-name green
device 198.92.30.32 port 4/8
vmps-port-policies vlan-name purple
device 198.4.254.22 port 1/2
port-group "executive row"
转载于:https://blog.51cto.com/laputa/335467
















