科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换CISCO动态VLAN配置

CISCO动态VLAN配置

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 网络中VLAN实现分为静态VLAN和动态VLAN。静态VLAN又被称为是基于端口的VLAN。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法,交换机中某个端口属于哪个VLAN是相对固定的。动态VLAN则是根据每个端口所连的计算机,随时改变端口所属VLAN。

来源:chinaitlab 2011年1月3日

关键字: 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三层交换机,配置为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 WiringCloset1

  device 198.92.30.32 port Fa1/3

  device 172.20.26.141 port Fa1/4

  vmps-port-group "Executive Row"

  device 198.4.254.222 port es5%Fa0/1

  device 198.4.254.222 port es5%Fa0/2

  device 198.4.254.223 all-ports

  !

  !VLAN groups

  !

  !vmps-vlan-group

  ! vlan-name

  !

  vmps-vlan-group Engineering

  vlan-name hardware

  vlan-name software

  !

  !VLAN port Policies

  !

  !vmps-port-policies {vlan-name | vlan-group }

  ! { port-group | device port }

  !

  vmps-port-policies vlan-group Engineering

  port-group WiringCloset1

  vmps-port-policies vlan-name Green

  device 198.92.30.32 port Fa0/9

  vmps-port-policies vlan-name Purple

  device 198.4.254.22 port Fa0/10

  port-group "Executive Row"

  VMPS数据库文件创建好后,通过本书第一章介绍TFTP或者RCP方式上传该文件到一个TFTP或者RCP服务器上,然后再下载到担当VMPS服务器的交换机的闪存中即可。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章