■ 河南 郭建伟
编者按:对于Cisco Macros来说,其作用是在接口下批量的执行一些配置操作,其包括Static Smartport Macro和Auto Smartports Macro两类,可以让端口变得更加智能化。下面详细介绍。
对于静态Smartports宏来说,需要人为的判断连接到交换机端口的设备类型,手动应用对应的接口配置命令,其支持内建的宏或者自定义宏命令,但当从端口上移除设备或者端口处于Down状态后,交换机并不会删除静态宏配置。相反,动态Smartports宏却可在该情况下,自动清除宏配置,其优点在于当以后连接其他的设备时,可以更容易的加以识别,并自动执行与之关联的宏。
对于动态Smartports宏来说,一定是交换机基于链路的UP事件,自动识别连接的设备,并自动应用相应宏,动态的对接口进行配置。对于内建的自动宏来说,基本使用的都是CDP事件触发器。将宏映射到事件的源端口。对于内建的事件触发,支持包 括 Cisco Switch,Cisco router,Cisco IP Phone,Cisco Wireless Access Points,Cisco IP video surveillance camera,Cisco digital media play等设备。
例如,在某款思科交换机上进入特权模式,执行“show macro auto device?”命令,显示其可以识别的设备。执行“dir|in dc_profile”命令,显示名为“dc_profile_dir”的目录。
执 行“dir flash:dc_profile_dir”命令,进入该目录。
执 行“more lash:dc_profile_dir/dc_default_profiles.txt”命令,可以显示各种识别策略。其实现原理是DC通过MAC-OUI和诸如CDP,LLDP以及DHCP等协议来收集信息,并据此来识别设备。
注 意: 该默认文件不能修改也不能升级。当激活Auto Smartports时,会自动加载该文件并启用DC(即Device Clasifier)功能。
当然,也可以自定义一些策略,使用诸如MAC地址,MAB认证信息,802.1X认证消息以及LLDP协议等作为事件触发器,并自动执行关联的宏脚本。
对于自定义宏来说,是保存在远端的,例如保存在TFTP服务器,本地的Flash等位置。
对于动态Smartports宏,虽然在移除设备后支持自动清除宏功能,但是在有些情况下,也可以让内建宏命令持久性的保留在端口,例如执行“macro persistent feature”命令,即可实现该要求。如果使用的是自定义宏的话,只要在脚本中不输入相关的删除命令,也可以实现相同的功能。
对于静态Smartports Macros来说,其默认支持 Cisco-global,Ciscodesktop,Cisco-phone,Cisco-switch,Ciscorouter,Cisco-wireless 等内建宏。例如,将PC连接到交换机接口后,用户可以调用名为“cisco-dektop”的宏,在对应接口上可以自动执行其中的所有配置指令。
执 行“show parser macro brife”命令,显示所有的内建宏。执行“show parser macro name ciscodesktop”命令,可以显示该宏中的内容。
注意:其中包含名为“$access_vlan”的变量,这需要用户在配置时手工指定所需的VLAN ID。
例 如,执 行“sh run inter g1/0/10”命 令,显示该接口的信息,可以看到其没有任何配置参数。执行“config t”命令,进入全局配置模式。执行“inter g1/0/10”命令,进入该接口 下,执 行“macro apply cisco-desktop $access_vlan 100”命令,就可以将名 为“cisco-desktop” 的宏应用到该端口上,并为其指定VLAN的ID为100。执行“end”,“sh run inter g1/0/10”命令,显示该接口下已出现的所需配置信息。
当该接口Down掉或者连接新的PC,如果想更换不同的VLAN,必须执行“defa interface g1/0/10”,“end”命令,手工删除其配置信息,之后按照上述方法重新指派所需的VLAN。
除了使用内建宏之外,也可以自定义宏。例如,执行“macro name test01”命令,在提示信息下输入所需的指令,例如“description xxx”,“switchport mode access”,“switchport acce ss vlan 50”,“spanningtree portfast”,“spanningtree bpdufilter enable”,“@”等行,来创建该名为“test01”的宏。
执 行“show parser macro name test01”命令,显示该宏的内容。利用宏可以实现一些接口配置的一致性,例如希望将某些端口设置同样的参数,可以执 行“config t”,“define interface-range dkfw g1/0/3, g1/0/4, g1/0/5,g1/0/6”命令,定义一个端口范围,设置其名称为“dkfw”。
执行“interface range macro dkfw”,“macro apply test01”命令,可以在这些端口范围上应用自定义宏,让其中的所有端口得到同样的配置参数。在实际的管理中,有时需要批量的测试目标主机的连通性,为此可以执行“macro name pingtc”命令,在提示信息下输入测试地址,如“do ping 192.168.1.100”,“do ping 192.168.1.101”,“do ping 192.168.1.102”,“@”等 行,创建名为“pingtc”的宏。
执 行“macro global apply pingtc”命令,对预设的所有主机进行PING探测。
当管理员远程登录到设备上,执行各种维护操作时,如果想修改登录地址(例如将其修改为“10.1.1.200”)的话,按照常规方式关闭端口/激活端口,必然会造成会话中断,使用宏命令可以避免这种情况的发生。
执 行“config t”,“macro name glvlan” 命令,在提示信息下输入诸如“interface vlan 10”,“no ip address”,“shutdown”,“interface vlan 10”,“ip add 10.1.1.200 255.255.255.0”,“no shutdown”,“@”等行,创建名为“glvan”的宏,执行“macro global apply glvan”命令,可以执行管理地址更改操作,且不会造成会话的中断。
对于Auto Smartports Macro来说,默认情况下是处于全局禁用状态的,需要手工进行激活。当为特定设备启 用Auto Smartports后,交换机将使用内置的宏对其进行配置。执行“terminal shell”命令启用IOS shell,可以查看自动的宏命令。执行“show shell functions| be CISCO_LWAP” 命 令,显示和瘦AP相关的脚本。执 行“show macro auto device ?”命令,显示其可以自动识别的设备。例如执行“show macro auto device lightweight-ap”命令,显示针对轻量级AP所使用的默认的策略。
例如,将某款瘦AP连接到交换机的GigabitEtherne t1/0/2接口,再执行“macro auto global processing”命令,激活Auto Smartports Macro,交换机就会自动在该接口上识别所连接的设备,执 行“macro auto device lightweight-ap ACCESS_VLAN=10”命令,在该接口上针对该设备自动应用关联的宏,这里指定了其中所要求的设置VLAN的参数,将其划入到VLAN 10中。
执 行“sh run inter g1/0/2”命令,显示已自动自行的指令,为其设置好所需的参数。当交换机发现该接口处于Down状态后,就会自动清除与之关联的宏指令。
除了使用内建的宏,还可以自定义所需的宏。例如,执行“tclsh”命令,在TCL的Shell提示符下输入“puts [open "flash:testlap.txt" w+] {”,“if [[$LINKUP ==YES]]; then”,“config t”,“interface$INTERFACE”,“macro description $TRTGGER”,“switchport mode access”,“switchport access vlan $ACCESS_VLAN”,“description xxx”,“exit”,“end”,“fi”,“if[[ $LINKUP =NO]];then”,“config t”,“interface$INTERFACE”,“no macro description $TRTGGER”,“no switchport mode access”,“no switchport access vlan $ACCESS_VLAN”,“no description xxx”,“exit”,“end”,“fi”,“}”,“tclquit”行,就可以创建名为“testlap”的宏。
其功能很简单,首先在交换机的Flash中创建名为“test-lap.txt”的文件,当检测到目标端口处于UP状态时,就进入全局配置模式,为其设置访问模式,分配VLAN,添加描述信心等操作。当检测到目标端口处于Down状态时,则取消以上配置。执 行“more flash:/testlap.txt”命令,显示是上述文件内容。
当启用该自定义宏时,可以 执 行“macro auto execute CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT remote flash:test-lap.txt ACCESS_VLAN=100”命令,可以远端调用该自定义宏,并指定所需的参数。这样当瘦AP连接上来后,就会自动执行该脚本,为其进行所需的配置,当移除该设备后,自动删除相关配置。