扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zdnet安全频道 来源:论坛整理 2008年11月24日
关键字: VLAN
一.动态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 三种运行模式:
当端口已经指定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数据库文件
(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优势大 但有缺点
利用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"
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。