一.基于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

VMPS介绍:
  VMPS介绍的是VLAN Membership Policy
Server的简称.顾名思义,它是一种基于端口MAC地址动态选择VLAN的集中化管理服务器.当某个端口的主机移动到另一个端口后,VMPS动态的为
其指定VLAN.不过基于CISCO IOS的CATALYST 4500系列交换不支持VMPS的功能。
  它只能做为VLAN查询协议
(VLAN Query Protocol)的客户机,通过VQP的客户机,可以和VMPS通信.如果要让CATALYST
4500系列交换机支持VMPS的功能,那你应当使用CatOS(或选择CATALYST 6500系列交换机hoho).
  VMPS介绍使用UDP端口监听来自VQP客户机的请求,因此,VPMS客户机也没必要知道VMPS到底是位于本地网络还是远程网络.当VMPS服务器收到来自VMPS客户机的请求后,它将在本地数据库里查找MAC地址到VLAN的映射条目信息.
  VMPS介绍将对请求进行响应.如果被指定的VLAN局限于一组端口,VMPS将验证对发出请求的端口进行验证:
  ◆如果请求端口的VLAN被许可,VMPS向客户发送VLAN做为响应.
  ◆如果请求端口的VLAN不被许可,并且VMPS不是处于安全模式(secure mode),VMPS将发送"access-denied"(访问被拒绝)的信息做为响应.
  ◆如果请求端口的VLAN不被许可,但VMPS处于安全模式,VMPS将发送"port-shutdown"(端口关闭)的信息做为响应.
 
 但如果数据库里的VLAN信息和端口的当前VLAN信息不匹配,并且该端口连接的有活动主机,VMPS将发送"access-
denied","fallback VLAN name"(后退VLAN名),"port-shutdown"或"new VLAN
name"(新VLAN名)信息.至于发送何种信息取决于VMPS模式的设置.
  如果交换机从VMPS那里收到"access-denied"
的信息,交换机将堵塞来自该MAC地址,前往或从该端口返回的流量.交换机将继续监视去往该端口的数据包,并且当交换机识别到一个新的地址后,它会向
VMPS发出查询信息.如果交换机从VMPS那里收到"port-shutdown"信息,交换机将禁用该端口,该端口必须通过命令行或SNMP重新启
用.
  VMPS介绍有三种模式(但User Registration Tool,即URT,只支持open模式):
  ◆open模式.
  ◆secure模式.
  ◆multiple模式.
  ◆open模式:
  当端口未指定VLAN:
  ◆如果该端口的MAC地址与之相关联的VLAN信息被许可,VMPS将向客户返回VLAN名.
  ◆如果该端口的MAC地址与之相关联的VLAN信息不被许可,VMPS将向客户返回"access-denied"信息.
  当端口已经指定VLAN:
  ◆如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,并配置的有fallback VLAN名,那么VMPS将返回fallback VLAN名给客户机.
  ◆如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,并没有配置fallback VLAN名,那么VMPS将返回"access-denied"信息给客户机.
  secure模式当端口未指定VLAN:
  ◆如果该端口的MAC地址与之相关联的VLAN信息被许可,VMPS将向客户返回VLAN名.
  ◆如果该端口的MAC地址与之相关联的VLAN信息不被许可,端口将被关闭.
  当端口已经指定VLAN:
  如果数据库里的VLAN与MAC地址相关联的信息和端口的当前VLAN关联信息不匹配,即使有配置fallback VLAN名,端口仍将被关闭.
  multiple模式:
 
 当多个MAC地址(主机)处于同一VLAN的时候,多个MAC地址可以对应一个动态端口.如果动态端口的链路down掉,端口将被还原成未指定状态,并
且在指定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"信息给客户机.有的时候我们也可能看到非法的VMPS客户
机请求,如下两种:
  ◆当VMPS上未配置fallback VLAN名,并且数据库里没有相应的MAC地址到VLAN的映射信息.
  ◆当端口已经被指定了VLAN,并且VMPS不处于multiple模式,但是VMPS收到了第二个不同MAC地址的VMPS客户机请求信息.
  ===============================================
  配置VMPS数据库
  VMPS的用途就是用来创建动态的VLAN。而要创建动态VLAN,首先就是要配置VMPS数据库,然后依次配置VMPS服务器和客户机。
 
 为了使用VMPS,你首先要建立VMPS的数据库(也就是一个文本文件)并把它保存在一个TFTP服务器上。VMPS的格式是基于行的。每一行都是一个
开始。VMPS数据库文件包含如下五个部分:全局设置(Global settings)、MAC地址到VLAN的映射(MAC
address-to-VLAN name mappings)、端口组(Port groups)、VLAN组(VLAN
groups)和VLAN端口策略(VLAN port policies)。具体解释如下:
  n 第一部分:全局设置(Global settings)
  第一部分是列出VMPS域名、安全模式、Fallback VLAN名称,以及VMPS和VTP域名不匹配的策略。VMPS数据库文件是以“VMPS”开头的,以防止VMPS服务器错误地读取交换机上其他的配置文件。
  在定义VMPS域时,应当正确输入在交换机上配置的VTP域名。
 
 在定义安全模式时,VMPS可以工作于安全模式或者开放模式。如果你设置为开放模式,VMPS就会对未知的MAC地址返回一个拒绝访问的响应消息,而对
于一个不在VMPS数据中的MAC地址,则返回一个Fallback
VLAN名的消息进行响应。在安全模式中,VMPS会对未知,或者不在VMPS数据库中的MAC地址会关闭所访问的端口。
  Fallback VLAN的定义是个可选项。它是为在连接主机的MAC地址不在数据库中,且VMPS工作于开放模式时准备的。
  下面是本部分的一个示例:VMPS域名为GRFW,VMPS模式为开放模式,Fallback VLAN为默认设置,VMPS策略中在VTP域名与VMPS域名不匹配时发送访问拒绝(access-denied)消息进行响应。
  vmps domain GRFW
  vmps mode open
  vmps Fallback default
  vmps no-domain-req deny
  n 第二部分:MAC地址到VLAN的映射(MAC address-to-VLAN name mappings)
  本部分列出MAC地址,以及每个MAC地址对应的VLAN名。可以使用“NONE”关键字作为VLAN名,以拒绝该MAC地址的主机与网络连接。在一个VMPS数据库中,你可以键入最多21,051条MAC地址。
  下面是本部分的一个示例。MAC地址是在MAC地址表中一出的,注意其中的“fedc.ba98.7654”MAC地址对应的VLAN名为“NONE”,也就是拒绝该MAC地址主机访问网络。
  vmps-mac-addrs
  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
  n 第三部分:端口组(Port groups)
  本部分列出了在你的网络中,你想要组合的不同交换机上的端口组。一相端口组就是一个端口的逻辑组合。你可以应用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-group portgroup1
  device 198.92.30.32 port 3/2
  device 172.20.26.141 port 2/8
  vmps-port-group portgroup2
  device 198.4.254.222 port 1/2
  device 198.4.254.222 port 1/3
  device 198.4.254.223 all-ports

第四部分:VLAN组(VLAN groups)
  本部分列出的是你想关联在一起的VLAN组。一个VLAN组也是一个VLAN的逻辑组合。VLAN策略可以应用到一个个具体的VLAN上,也可以应用互这些VLAN组上。这在后面第五部分,定义VLAN端口策略时也要用到。
  首先定义VLAN组名,然后列出在VLAN组中的每个端口。你可以在一个VMPS服务器中键入最多256个VLAN。
  下面是本部分的一个示例。示例中的VLAN组“Engineering”包含名为“hardware”和“software”的两个VLAN。
  vmps-vlan-group Engineering
  vlan-name hardware
  vlan-name software
  n 第五部分:VLAN端口策略(VLAN port policies)
  本部分列出了在本VMPS数据库文件中所定义的VLAN端口策略。它使用前面介绍的端口组和VLAN组来进一步限制对网络的访问,可以使用MAC地址和端口组,或者VLAN组来配置限制访问。每条策略都是以“vmps-port-policies”开头。
 
 以下是本部分的一个示例。在这个示例中包含了三个VLAN端口策略:在第一个VLAN端口策略中,在VLAN hardware或者VLAN
software(都是名为Engineering的VLAN组成员)中的成员在IP地址为198.92.30.32的VMPS客户机3/2端口和IP地
址为172.20.23.141的VMPS客户机2/8端口上是限制访问的。
  第二个VLAN端口策略是指定在VLAN Green中的设备仅可以连接到IP地址为198.92.30.32的VMPS客户机的4/8端口上。
  第三个VLAN端口策略是指定在VLAN Purple中的设备仅可以连接到IP地址为198.4.254.22的VMPS客户机的1/2端口和在portgroup2端口组中的端口。
  vmps-port-policies vlan-group Engineering
  port-group portgroup1
  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 portgroup2
  以下是思科网站上的一个VMPS数据库文件示例,编辑一下就可以成为自己VMPS数据库文件。
  !vmps domain
  ! The VMPS domain must be defined.
  !vmps mode { open secure }
  ! The default mode is open.
  !vmps Fallback
  !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
  !
  !
  !MAC Addresses
  !
  vmps-mac-addrs
  !
 
 ! address 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!!Port
Groups!!vmps-port-group ! device { port all-ports }!vmps-port-group
WiringCloset1device 198.92.30.32 port Fa1/3device 172.20.26.141 port
Fa1/4vmps-port-group "Executive Row"device 198.4.254.222 port
es5%Fa0/1device 198.4.254.222 port es5%Fa0/2device 198.4.254.223
all-ports!!VLAN groups!!vmps-vlan-group ! vlan-name !vmps-vlan-group
Engineeringvlan-name hardwarevlan-name software!!VLAN port
Policies!!vmps-port-policies {vlan-name vlan-group }! { port-group
device port }!vmps-port-policies vlan-group Engineeringport-group
WiringCloset1vmps-port-policies vlan-name Greendevice 198.92.30.32 port
Fa0/9vmps-port-policies vlan-name Purpledevice 198.4.254.22 port
Fa0/10port-group "Executive
Row"VMPS数据库文件创建好后,通过本书第一章介绍TFTP或者RCP方式上传该文件到一个TFTP或者RCP服务器上,然后再下载到担当VMPS
服务器的交换机的闪存中即可。

CISCO动态VLAN配置的更多相关文章

  1. Cisco动态路由配置

    前言: 学完静态路由配置,该学动态路由.所以 学习完后来做终结. 准备: PC:192.168.1.10 R1:fa0/0 192.168.1.1 fa0/1 1.1.12.1 R2: fa0/0 1 ...

  2. Cisco 交换Vlan配置

    添加Vlan命令 #添加vlan100 config)#vlan 100 #重命名vlan100 config-vlan)#name vlan100 #返回上一层 config-vlan)#exit ...

  3. Cisco基础(二):三层交换vlan间通信、多交换机vlan间通信、三层交换配置路由、RIP动态路由配置、三层交换配置RIP动态路由

    一.三层交换vlan间通信 目标: VLAN实现了广播域的隔离,同时也将VLAN间的通信隔离了.三层交换技术使得VLAN间可以通信. 通过三层交换实现VLAN间通信 方案: 为了解决了传统路由器低速. ...

  4. Cisco 的基本配置实例之四----vlan的规划及配置(接入交换机)

    4.2 接入交换机的相关配置 ## 在此例中,我们联入的是一台接入交换机,此交换机的gi0/1口上联至核心交换机.也就意味着我们需要配置gi0/1为trunk口.具体的配置如下: D-2960-3(c ...

  5. Cisco 的基本配置实例之四----vlan的规划及配置(核心交换机)

    4.vlan的规划及配置 在本节中我们讲解vlan的规划及具体的配置命令.在此例中我们用的是vtp(VLAN Trunking Protocol)server的模式,在这种模式中我们需要配置核心交换机 ...

  6. Cisco路由器交换机配置命令详解

    1. 交换机支持的命令: 交换机基本状态:switch: :ROM状态, 路由器是rommon>hostname> :用户模式hostname# :特权模式hostname(config) ...

  7. 【网络】trunk和vlan配置

    篇一 : trunk配置和vlan配置 trunk配置 Switch>enable ? ? ?//进入特权模式 Switch#conf t ? ? ?//进入配置模式 Switch(config ...

  8. Cisco ASA 高级配置

    Cisco ASA 高级配置 一.防范IP分片攻击 1.Ip分片的原理: 2.Ip分片的安全问题: 3.防范Ip分片. 这三个问题在之前已经详细介绍过了,在此就不多介绍了.详细介绍请查看上一篇文章:I ...

  9. Cisco 的基本配置实例之六----常排错命令--关闭提示

    TEST#terminal monitor # 排除网络故障以前,请打开这一命令以便实时的接收到交换机的提示信息. TEST# TEST#sh run #显示所有的配置清单,可将这些配置保存成文本作为 ...

随机推荐

  1. SSL证书在线工具

    证书在线工具 如果您是第一次申请SSL证书,如果您对您的服务器如何使用SSL证书还不熟悉的话,我们推荐您使用本套工具,本套工具支持所有SSL服务器证书格式和各种WEB服务器.帮助您在线生成CSR文件, ...

  2. 第二次正式java web开发项目的总结(回收站恢复)

    都说互联网行业加班很是厉害,记得前不久网上还晒出了几个大城市互联网行业的加班排名调查,但是我们公司,或者说我们项目组倒是非常的例外,进公司也差不多半年了,才仅仅上个月有一个周六加过一天班而已. 不过好 ...

  3. Spring整合activiti-modeler5.16遇到的小问题

    接上一篇整合activiti-modeler并成功创建model:Spring整合activiti-modeler5.16   之后,我尝试运用自定义的model部署流程,但是在部署的过程中又遇到了一 ...

  4. sql server 2012 如何收缩事务日志

    sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG   语句 BACKUP Log zxta with no_log 截断事务日志 sql2008 提示错误如下 BACKU ...

  5. 纯c++实现之滚动窗口

    别在MFC了,先分析下,上图 我们以左上角为坐标原点,用position_width和position_height来保存当前显示坐标. 根据msdn说明,滚动条默认情况下的值在0~100之间. 根据 ...

  6. Scala第三章学习笔记

    换行后的左大括号造成的问题: class FooHolder { def foo() { println("foo was called") } } Scala认为def foo( ...

  7. CF109 C. Lucky Tree 并查集

    Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal re ...

  8. NeHe OpenGL教程 第三十课:碰撞检测

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. Linux删除乱码文件名或者目录名

    有时,rz上传文件失败或者不小心输入命令会产生乱码文件名.因为用rm 删除特殊字符基本无效,故找到了下面两种简单易用的方法: 例子: [langxiaowei@mirror:~]$ ls ??     ...

  10. 【Java】PrettyTime

    package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.D ...