CISCO动态VLAN配置.docx
《CISCO动态VLAN配置.docx》由会员分享,可在线阅读,更多相关《CISCO动态VLAN配置.docx(14页珍藏版)》请在冰点文库上搜索。
CISCO动态VLAN配置
CISCO动态VLAN配置
一.基于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三层交换机,配置为VTPServer模式。
CISCO3560G中定义了两个VLAN,通过Trunk端口(Gi0/1,GI0/2端口)与两台Cisco2960交换机相连。
VMPS服务器是基于ScientificLinux平台下的OpenVMPS构建的,连接至Cisco3560G的GI0/24端口。
两台CISCO2960配置为客户端模式,通过GI0/1端口接受来自核心交换机的VLAN信息,并将其余端口链路类型设置为Access,端口所属VLAN设为Dynamic(动态)。
合法的用户计算机接入任意端口,都可以加入到相应的VLAN。
VMPS服务器配置
VMPS服务器需CISCO5000以上高端交换机才支持,因此这里选用的是第三方的开源软件-OpenVMPS,基于ScientificLinux5.3架设的VMPS服务器。
下载安装
OpenVMPS最新版本为1.4.01.可通过“
#tar-vzxfvmpsd-1.01.tar.gz
#cdvmpsd
#./configrure
#make
#makeinstall
配置VMPS数据库
OpenVMPS安装好之后,会自动生成VMPS数据库配置文件/usr/local/etc/VLAN.db,这个文件时是个文本文件,下面是配置内容:
vmpsdomaincisco////////指定VTP域名为cisco
Vmpsmodeopen//////////指定VMPS运行模式为OPEN。
Vmps能够以OPEN或者secure的模式工作,OPEN时,VMPS会对未授权的MAC地址返回拒绝,对没有列在VMPS数据库中的MAC地址返回一个fallback(后备VLAN)。
在secure模式,VMPS对于未授权的或者没有列在数据库的MAC地址都会关闭相应的端口。
Vmpsfallback----none-----////////指定一个后备VLAN,none时表示没有。
Vmpsno-domain-reqdeny/指定VMPS客户端交换机如果不属于VTP域,将不提供任何映射
Vmps-mac-address//////与Address之间的关联。
对指定的MAC地址使用关键字--NONE--关键字表示,阻止该主机加入到任何VLAN。
在VLAN。
Db中还有很多参数,感兴趣的可以自己研究。
Address0001.2201.88cd.VLAN-nameaccout
Address0001.2201.88ce.VLAN-nameaccout
Address0001.2201.75ca.VLAN-namesale
运行VMPS
以root用户执行下面命令,可以启动VMPS:
#/usr/local/bin/vmpsd
OpenVMPS默认端口时UDP1589,用netstat-an|grep1589可以查看vmpsd进程是否运行。
如果需要在开启Liunx服务器是就加载vmpsd.可以在/etc/rc.local中加入/usr/local/bin/vmpsd/
其他VMPSD的配置信息如下:
Vpmsd[-d][-aaddress][-ffile][-llevel][-pport]
-d:
在前台运行VMPSD,可以很清楚的看到对MAC地址与VLAN的关联
-aaddress设置绑定到VMPSD的IP地址
-ffile设置VMPSD数据库配置文件,默认为/usr/local/etc/VLAN.db
-llevel设置日志级别
-pport设置VMPSD的监听端口,默认为1589
CISCO3560G配置
#vtpdomaincisco
#vtpmodeserver
#interfaceranggi0/1-2
#switchporttrunkencapsulationdot1q
#switchportmodetrunk
定义VLAN,设置VLANIP地址。
#VLAN133
#namesale
#VLAN168
#nameaccout
#interfaceVLAN133
#ipaddress172.16.1.1255.255.255.0
#noshu
#interfaceVLAN168
#ipaddress172.16.2.1255.255.255.0
#noshu
设置gi0/24为访问口,连接VMPSD服务器
#interfacegi0/24
#switchportmodeaccess
#noshu
#iprouting
#write
Cisco2960配置
#VTPdomaincisco
#vtpmodeclient
#interfacegi0/1
#switchportmodetrunk
#noshu
#exit
设置fa0/1-24为访问口,所属VLAN为动态获取
#interfacerangfa0/1-24
#switchportmodeaccess
#switchportaccessVLANdynam
#noshu
设置主VMPS,另外可以设置3个备用的VMPS服务器。
CISCO2960
#vmpsserver172.16.1.100primary
#end
#write
#
开启VQPC(VLAN查询协议客户端)调试,将会看到MAC地址与VLAN关联的过程。
#debugvqpcall
VMPS介绍:
VMPS介绍的是VLANMembershipPolicyServer的简称.顾名思义,它是一种基于端口MAC地址动态选择VLAN的集中化管理服务器.当某个端口的主机移动到另一个端口后,VMPS动态的为其指定VLAN.不过基于CISCOIOS的CATALYST4500系列交换不支持VMPS的功能。
它只能做为VLAN查询协议(VLANQueryProtocol)的客户机,通过VQP的客户机,可以和VMPS通信.如果要让CATALYST4500系列交换机支持VMPS的功能,那你应当使用CatOS(或选择CATALYST6500系列交换机hoho).
VMPS介绍使用UDP端口监听来自VQP客户机的请求,因此,VPMS客户机也没必要知道VMPS到底是位于本地网络还是远程网络.当VMPS服务器收到来自VMPS客户机的请求后,它将在本地数据库里查找MAC地址到VLAN的映射条目信息.
VMPS介绍将对请求进行响应.如果被指定的VLAN局限于一组端口,VMPS将验证对发出请求的端口进行验证:
◆如果请求端口的VLAN被许可,VMPS向客户发送VLAN做为响应.
◆如果请求端口的VLAN不被许可,并且VMPS不是处于安全模式(securemode),VMPS将发送"access-denied"(访问被拒绝)的信息做为响应.
◆如果请求端口的VLAN不被许可,但VMPS处于安全模式,VMPS将发送"port-shutdown"(端口关闭)的信息做为响应.
但如果数据库里的VLAN信息和端口的当前VLAN信息不匹配,并且该端口连接的有活动主机,VMPS将发送"access-denied","fallbackVLANname"(后退VLAN名),"port-shutdown"或"newVLANname"(新VLAN名)信息.至于发送何种信息取决于VMPS模式的设置.
如果交换机从VMPS那里收到"access-denied"的信息,交换机将堵塞来自该MAC地址,前往或从该端口返回的流量.交换机将继续监视去往该端口的数据包,并且当交换机识别到一个新的地址后,它会向VMPS发出查询信息.如果交换机从VMPS那里收到"port-shutdown"信息,交换机将禁用该端口,该端口必须通过命令行或SNMP重新启用.
VMPS介绍有三种模式(但UserRegistrationTool,即URT,只支持open模式):
◆open模式.
◆secure模式.
◆multiple模式.
◆open模式:
当端口未指定VLAN:
◆如果该端口的MAC地址与之相关联的VLAN信息被许可,VMPS将向客户返回VLAN名.
◆如果该端口的MAC地址与之相关联的VLAN信息不被许可,VMPS将向客户返回"access-denied"信息.
当端口已经指定VLAN:
◆如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,并配置的有fallbackVLAN名,那么VMPS将返回fallbackVLAN名给客户机.
◆如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,并没有配置fallbackVLAN名,那么VMPS将返回"access-denied"信息给客户机.
secure模式当端口未指定VLAN:
◆如果该端口的MAC地址与之相关联的VLAN信息被许可,VMPS将向客户返回VLAN名.
◆如果该端口的MAC地址与之相关联的VLAN信息不被许可,端口将被关闭.
当端口已经指定VLAN:
如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,即使有配置fallbackVLAN名,端口仍将被关闭.
multiple模式:
当多个MAC地址(主机)处于同一VLAN的时候,多个MAC地址可以对应一个动态端口.如果动态端口的链路down掉,端口将被还原成未指定状态,并且在指定VLAN之前,VMPS将对这些地址重新检查;如果这些主机位于不同的VLAN,VMPS将向客户返回最新的MAC地址到VLAN映射的信息.当然,你也可以在VMPS上指定fallbackVLAN名.如果该端口未指定任何VLAN,VMPS将把端口和发起请求的MAC地址进行比较:
◆如果主机的MAC地址在数据库中不存在,并且VMPS上指定的有fallbackVLAN名,那么将向客户机返回fallbackVLAN名信息.
◆如果主机的MAC地址在数据库中不存在,但VMPS上未指定fallbackVLAN名,那么将向客户机返回"access-denied"信息.
如果该端口已经指定任何VLAN,VMPS将把端口和发起请求的MAC地址进行比较:
不管VMPS上有没有配置fallbackVLAN名,只要VMPS处于secure模式,那么它就将反馈"port-shutdown"信息给客户机.有的时候我们也可能看到非法的VMPS客户机请求,如下两种:
◆当VMPS上未配置fallbackVLAN名,并且数据库里没有相应的MAC地址到VLAN的映射信息.
◆当端口已经被指定了VLAN,并且VMPS不处于multiple模式,但是VMPS收到了第二个不同MAC地址的VMPS客户机请求信息.
===============================================
配置VMPS数据库
VMPS的用途就是用来创建动态的VLAN。
而要创建动态VLAN,首先就是要配置VMPS数据库,然后依次配置VMPS服务器和客户机。
为了使用VMPS,你首先要建立VMPS的数据库(也就是一个文本文件)并把它保存在一个TFTP服务器上。
VMPS的格式是基于行的。
每一行都是一个开始。
VMPS数据库文件包含如下五个部分:
全局设置(Globalsettings)、MAC地址到VLAN的映射(MACaddress-to-VLANnamemappings)、端口组(Portgroups)、VLAN组(VLANgroups)和VLAN端口策略(VLANportpolicies)。
具体解释如下:
n第一部分:
全局设置(Globalsettings)
第一部分是列出VMPS域名、安全模式、FallbackVLAN名称,以及VMPS和VTP域名不匹配的策略。
VMPS数据库文件是以“VMPS”开头的,以防止VMPS服务器错误地读取交换机上其他的配置文件。
在定义VMPS域时,应当正确输入在交换机上配置的VTP域名。
在定义安全模式时,VMPS可以工作于安全模式或者开放模式。
如果你设置为开放模式,VMPS就会对未知的MAC地址返回一个拒绝访问的响应消息,而对于一个不在VMPS数据中的MAC地址,则返回一个FallbackVLAN名的消息进行响应。
在安全模式中,VMPS会对未知,或者不在VMPS数据库中的MAC地址会关闭所访问的端口。
FallbackVLAN的定义是个可选项。
它是为在连接主机的MAC地址不在数据库中,且VMPS工作于开放模式时准备的。
下面是本部分的一个示例:
VMPS域名为GRFW,VMPS模式为开放模式,FallbackVLAN为默认设置,VMPS策略中在VTP域名与VMPS域名不匹配时发送访问拒绝(access-denied)消息进行响应。
vmpsdomainGRFW
vmpsmodeopen
vmpsFallbackdefault
vmpsno-domain-reqdeny
n第二部分:
MAC地址到VLAN的映射(MACaddress-to-VLANnamemappings)
本部分列出MAC地址,以及每个MAC地址对应的VLAN名。
可以使用“NONE”关键字作为VLAN名,以拒绝该MAC地址的主机与网络连接。
在一个VMPS数据库中,你可以键入最多21,051条MAC地址。
下面是本部分的一个示例。
MAC地址是在MAC地址表中一出的,注意其中的“fedc.ba98.7654”MAC地址对应的VLAN名为“NONE”,也就是拒绝该MAC地址主机访问网络。
vmps-mac-addrs
address0012.2233.4455VLAN-namehardware
address0000.6509.a080VLAN-namehardware
addressaabb.ccdd.eeffVLAN-nameGreen
address1223.5678.9abcVLAN-nameExecStaff
addressfedc.ba98.7654VLAN-name--NONE-
addressfedc.ba23.1245VLAN-namePurple
n第三部分:
端口组(Portgroups)
本部分列出了在你的网络中,你想要组合的不同交换机上的端口组。
一相端口组就是一个端口的逻辑组合。
你可以应用VLAN策略到一个个具体的端口上,或者端口组上。
这在后面第五部分,定义VLAN策略时要用到。
要为每个端口组定义一个名称,然后列出所有包括在这个端口组中的端口,每条以“device”开头。
端口是由交换机IP地址和模块/端口号定义的。
在端口号中不允许使用范围。
但可以使用“all-ports”关键字来指定特定交换机上的所有端口。
下面是本部分的一个示例,包括两个端口组portgroup1和portgroup2。
端口组portgroup1包括两个端口,一个是在IP地址为198.92.30.32的VMPS客户机上的3/2端口,另一个是在IP地址为172.20.26.141的VMPS客户机上的2/8端口。
端口组portgroup2包括三个端口:
其中两个是在IP地址为198.4.254.222的VMPS客户机上的1/2端口和1/3端口,另一个是在IP地址为198.4.254.223的VMPS客户机上的所有端口。
vmps-port-groupportgroup1
device198.92.30.32port3/2
device172.20.26.141port2/8
vmps-port-groupportgroup2
device198.4.254.222port1/2
device198.4.254.222port1/3
device198.4.254.223all-ports
第四部分:
VLAN组(VLANgroups)
本部分列出的是你想关联在一起的VLAN组。
一个VLAN组也是一个VLAN的逻辑组合。
VLAN策略可以应用到一个个具体的VLAN上,也可以应用互这些VLAN组上。
这在后面第五部分,定义VLAN端口策略时也要用到。
首先定义VLAN组名,然后列出在VLAN组中的每个端口。
你可以在一个VMPS服务器中键入最多256个VLAN。
下面是本部分的一个示例。
示例中的VLAN组“Engineering”包含名为“hardware”和“software”的两个VLAN。
vmps-VLAN-groupEngineering
VLAN-namehardware
VLAN-namesoftware
n第五部分:
VLAN端口策略(VLANportpolicies)
本部分列出了在本VMPS数据库文件中所定义的VLAN端口策略。
它使用前面介绍的端口组和VLAN组来进一步限制对网络的访问,可以使用MAC地址和端口组,或者VLAN组来配置限制访问。
每条策略都是以“vmps-port-policies”开头。
以下是本部分的一个示例。
在这个示例中包含了三个VLAN端口策略:
在第一个VLAN端口策略中,在VLANhardware或者VLANsoftware(都是名为Engineering的VLAN组成员)中的成员在IP地址为198.92.30.32的VMPS客户机3/2端口和IP地址为172.20.23.141的VMPS客户机2/8端口上是限制访问的。
第二个VLAN端口策略是指定在VLANGreen中的设备仅可以连接到IP地址为198.92.30.32的VMPS客户机的4/8端口上。
第三个VLAN端口策略是指定在VLANPurple中的设备仅可以连接到IP地址为198.4.254.22的VMPS客户机的1/2端口和在portgroup2端口组中的端口。
vmps-port-policiesVLAN-groupEngineering
port-groupportgroup1
vmps-port-policiesVLAN-nameGreen
device198.92.30.32port4/8
vmps-port-policiesVLAN-namePurple
device198.4.254.22port1/2
port-groupportgroup2
以下是思科网站上的一个VMPS数据库文件示例,编辑一下就可以成为自己VMPS数据库文件。
!
vmpsdomain
!
TheVMPSdomainmustbedefined.
!
vmpsmode{open|secure}
!
Thedefaultmodeisopen.
!
vmpsFallback
!
vmpsno-domain-req{allow|deny}
!
!
Thedefaultvalueisallow.
vmpsdomainWBU
vmpsmodeopen
vmpsFallbackdefault
vmpsno-domain-reqdeny
!
!
!
MACAddresses
!
vmps-mac-addrs
!
!
addressVLAN-name
!
address0012.2233.4455VLAN-namehardware
address0000.6509.a080VLAN-namehardware
addressaabb.ccdd.eeffVLAN-nameGreen
address1223.5678.9abcVLAN-nameExecStaff
addressfedc.ba98.7654VLAN-name--NONE--
addressfedc.ba23.1245VLAN-namePurple
!
!
PortGroups
!
!
vmps-port-group
!
device{port|