■ 河南 郭建偉
編者按:對(duì)于Cisco Macros來(lái)說(shuō),其作用是在接口下批量的執(zhí)行一些配置操作,其包括Static Smartport Macro和Auto Smartports Macro兩類,可以讓端口變得更加智能化。下面詳細(xì)介紹。
對(duì)于靜態(tài)Smartports宏來(lái)說(shuō),需要人為的判斷連接到交換機(jī)端口的設(shè)備類型,手動(dòng)應(yīng)用對(duì)應(yīng)的接口配置命令,其支持內(nèi)建的宏或者自定義宏命令,但當(dāng)從端口上移除設(shè)備或者端口處于Down狀態(tài)后,交換機(jī)并不會(huì)刪除靜態(tài)宏配置。相反,動(dòng)態(tài)Smartports宏卻可在該情況下,自動(dòng)清除宏配置,其優(yōu)點(diǎn)在于當(dāng)以后連接其他的設(shè)備時(shí),可以更容易的加以識(shí)別,并自動(dòng)執(zhí)行與之關(guān)聯(lián)的宏。
對(duì)于動(dòng)態(tài)Smartports宏來(lái)說(shuō),一定是交換機(jī)基于鏈路的UP事件,自動(dòng)識(shí)別連接的設(shè)備,并自動(dòng)應(yīng)用相應(yīng)宏,動(dòng)態(tài)的對(duì)接口進(jìn)行配置。對(duì)于內(nèi)建的自動(dòng)宏來(lái)說(shuō),基本使用的都是CDP事件觸發(fā)器。將宏映射到事件的源端口。對(duì)于內(nèi)建的事件觸發(fā),支持包 括 Cisco Switch,Cisco router,Cisco IP Phone,Cisco Wireless Access Points,Cisco IP video surveillance camera,Cisco digital media play等設(shè)備。
例如,在某款思科交換機(jī)上進(jìn)入特權(quán)模式,執(zhí)行“show macro auto device?”命令,顯示其可以識(shí)別的設(shè)備。執(zhí)行“dir|in dc_profile”命令,顯示名為“dc_profile_dir”的目錄。
執(zhí) 行“dir flash:dc_profile_dir”命令,進(jìn)入該目錄。
執(zhí) 行“more lash:dc_profile_dir/dc_default_profiles.txt”命令,可以顯示各種識(shí)別策略。其實(shí)現(xiàn)原理是DC通過(guò)MAC-OUI和諸如CDP,LLDP以及DHCP等協(xié)議來(lái)收集信息,并據(jù)此來(lái)識(shí)別設(shè)備。
注 意: 該默認(rèn)文件不能修改也不能升級(jí)。當(dāng)激活A(yù)uto Smartports時(shí),會(huì)自動(dòng)加載該文件并啟用DC(即Device Clasifier)功能。
當(dāng)然,也可以自定義一些策略,使用諸如MAC地址,MAB認(rèn)證信息,802.1X認(rèn)證消息以及LLDP協(xié)議等作為事件觸發(fā)器,并自動(dòng)執(zhí)行關(guān)聯(lián)的宏腳本。
對(duì)于自定義宏來(lái)說(shuō),是保存在遠(yuǎn)端的,例如保存在TFTP服務(wù)器,本地的Flash等位置。
對(duì)于動(dòng)態(tài)Smartports宏,雖然在移除設(shè)備后支持自動(dòng)清除宏功能,但是在有些情況下,也可以讓內(nèi)建宏命令持久性的保留在端口,例如執(zhí)行“macro persistent feature”命令,即可實(shí)現(xiàn)該要求。如果使用的是自定義宏的話,只要在腳本中不輸入相關(guān)的刪除命令,也可以實(shí)現(xiàn)相同的功能。
對(duì)于靜態(tài)Smartports Macros來(lái)說(shuō),其默認(rèn)支持 Cisco-global,Ciscodesktop,Cisco-phone,Cisco-switch,Ciscorouter,Cisco-wireless 等內(nèi)建宏。例如,將PC連接到交換機(jī)接口后,用戶可以調(diào)用名為“cisco-dektop”的宏,在對(duì)應(yīng)接口上可以自動(dòng)執(zhí)行其中的所有配置指令。
執(zhí) 行“show parser macro brife”命令,顯示所有的內(nèi)建宏。執(zhí)行“show parser macro name ciscodesktop”命令,可以顯示該宏中的內(nèi)容。
注意:其中包含名為“$access_vlan”的變量,這需要用戶在配置時(shí)手工指定所需的VLAN ID。
例 如,執(zhí) 行“sh run inter g1/0/10”命 令,顯示該接口的信息,可以看到其沒(méi)有任何配置參數(shù)。執(zhí)行“config t”命令,進(jìn)入全局配置模式。執(zhí)行“inter g1/0/10”命令,進(jìn)入該接口 下,執(zhí) 行“macro apply cisco-desktop $access_vlan 100”命令,就可以將名 為“cisco-desktop” 的宏應(yīng)用到該端口上,并為其指定VLAN的ID為100。執(zhí)行“end”,“sh run inter g1/0/10”命令,顯示該接口下已出現(xiàn)的所需配置信息。
當(dāng)該接口Down掉或者連接新的PC,如果想更換不同的VLAN,必須執(zhí)行“defa interface g1/0/10”,“end”命令,手工刪除其配置信息,之后按照上述方法重新指派所需的VLAN。
除了使用內(nèi)建宏之外,也可以自定義宏。例如,執(zhí)行“macro name test01”命令,在提示信息下輸入所需的指令,例如“description xxx”,“switchport mode access”,“switchport acce ss vlan 50”,“spanningtree portfast”,“spanningtree bpdufilter enable”,“@”等行,來(lái)創(chuàng)建該名為“test01”的宏。
執(zhí) 行“show parser macro name test01”命令,顯示該宏的內(nèi)容。利用宏可以實(shí)現(xiàn)一些接口配置的一致性,例如希望將某些端口設(shè)置同樣的參數(shù),可以執(zhí) 行“config t”,“define interface-range dkfw g1/0/3, g1/0/4, g1/0/5,g1/0/6”命令,定義一個(gè)端口范圍,設(shè)置其名稱為“dkfw”。
執(zhí)行“interface range macro dkfw”,“macro apply test01”命令,可以在這些端口范圍上應(yīng)用自定義宏,讓其中的所有端口得到同樣的配置參數(shù)。在實(shí)際的管理中,有時(shí)需要批量的測(cè)試目標(biāo)主機(jī)的連通性,為此可以執(zhí)行“macro name pingtc”命令,在提示信息下輸入測(cè)試地址,如“do ping 192.168.1.100”,“do ping 192.168.1.101”,“do ping 192.168.1.102”,“@”等 行,創(chuàng)建名為“pingtc”的宏。
執(zhí) 行“macro global apply pingtc”命令,對(duì)預(yù)設(shè)的所有主機(jī)進(jìn)行PING探測(cè)。
當(dāng)管理員遠(yuǎn)程登錄到設(shè)備上,執(zhí)行各種維護(hù)操作時(shí),如果想修改登錄地址(例如將其修改為“10.1.1.200”)的話,按照常規(guī)方式關(guān)閉端口/激活端口,必然會(huì)造成會(huì)話中斷,使用宏命令可以避免這種情況的發(fā)生。
執(zhí) 行“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”,“@”等行,創(chuàng)建名為“glvan”的宏,執(zhí)行“macro global apply glvan”命令,可以執(zhí)行管理地址更改操作,且不會(huì)造成會(huì)話的中斷。
對(duì)于Auto Smartports Macro來(lái)說(shuō),默認(rèn)情況下是處于全局禁用狀態(tài)的,需要手工進(jìn)行激活。當(dāng)為特定設(shè)備啟 用Auto Smartports后,交換機(jī)將使用內(nèi)置的宏對(duì)其進(jìn)行配置。執(zhí)行“terminal shell”命令啟用IOS shell,可以查看自動(dòng)的宏命令。執(zhí)行“show shell functions| be CISCO_LWAP” 命 令,顯示和瘦AP相關(guān)的腳本。執(zhí) 行“show macro auto device ?”命令,顯示其可以自動(dòng)識(shí)別的設(shè)備。例如執(zhí)行“show macro auto device lightweight-ap”命令,顯示針對(duì)輕量級(jí)AP所使用的默認(rèn)的策略。
例如,將某款瘦AP連接到交換機(jī)的GigabitEtherne t1/0/2接口,再執(zhí)行“macro auto global processing”命令,激活A(yù)uto Smartports Macro,交換機(jī)就會(huì)自動(dòng)在該接口上識(shí)別所連接的設(shè)備,執(zhí) 行“macro auto device lightweight-ap ACCESS_VLAN=10”命令,在該接口上針對(duì)該設(shè)備自動(dòng)應(yīng)用關(guān)聯(lián)的宏,這里指定了其中所要求的設(shè)置VLAN的參數(shù),將其劃入到VLAN 10中。
執(zhí) 行“sh run inter g1/0/2”命令,顯示已自動(dòng)自行的指令,為其設(shè)置好所需的參數(shù)。當(dāng)交換機(jī)發(fā)現(xiàn)該接口處于Down狀態(tài)后,就會(huì)自動(dòng)清除與之關(guān)聯(lián)的宏指令。
除了使用內(nèi)建的宏,還可以自定義所需的宏。例如,執(zhí)行“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”行,就可以創(chuàng)建名為“testlap”的宏。
其功能很簡(jiǎn)單,首先在交換機(jī)的Flash中創(chuàng)建名為“test-lap.txt”的文件,當(dāng)檢測(cè)到目標(biāo)端口處于UP狀態(tài)時(shí),就進(jìn)入全局配置模式,為其設(shè)置訪問(wèn)模式,分配VLAN,添加描述信心等操作。當(dāng)檢測(cè)到目標(biāo)端口處于Down狀態(tài)時(shí),則取消以上配置。執(zhí) 行“more flash:/testlap.txt”命令,顯示是上述文件內(nèi)容。
當(dāng)啟用該自定義宏時(shí),可以 執(zhí) 行“macro auto execute CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT remote flash:test-lap.txt ACCESS_VLAN=100”命令,可以遠(yuǎn)端調(diào)用該自定義宏,并指定所需的參數(shù)。這樣當(dāng)瘦AP連接上來(lái)后,就會(huì)自動(dòng)執(zhí)行該腳本,為其進(jìn)行所需的配置,當(dāng)移除該設(shè)備后,自動(dòng)刪除相關(guān)配置。