msgbartop
msgbarbottom

26 Feb 15 Rename Access Points Cisco WLC – Wireless LAN Controller

How to rename Cisco Light Weight Access Points on Cisco Wireless LAN Controller

When I am configuring a Cisco Wireless LAN Controller and Access Points are added to it, I have to rename them to something meaningful from their default naming convention of APabcd.fghi.1234. Now I have been accomplishing this task via GUI by going to the Wireless Tab –> All APs and then renaming them one by one. It is really no big deal if you have to rename few of them. However if you are standing up a new site and there are like 30, 50, 100 etc Cisco light weight access points on that Cisco Wireless LAN Controller, it can take forever to do this via Controllers GUI. I like/try my best to work smarter and optimize the way I do things, so I decided to start using the CLI of the Cisco WLC to rename the Access Points.

First and most important thing is to make sure we have the inventory of the AP’s or get a list of their names from Prime. Then using Excel I simply created CLI configuration lines to rename the Cisco light weight access points.

config ap name AP-01 APtttt.abcd.1111
config ap name AP-02 APffff.1234.0asd
config ap name AP-03 APgggg.1234.uut7
config ap name AP-04 APhhhh.1234.6688
config ap name AP-05 APiiii.1234.9999

Now you can utilize this simple method to rename all the AP’s real quick. Here is a quick break down of the syntax:

config ap name NEW-NAME OLD-AP-NAME or Ethernet MAC or SerialNumber

Note: AP names are case sensitive

By reading this site/post(s) you are agreeing to the Terms and Conditions of this website.

Tags: , , ,

24 Feb 15 DHCP options for Cisco 2600 Series Access Points

Configuring DHCP Options for Cisco 2600 Series Access Points

I do not have to do this much so when I do I have to always look it up hence I decided to write it in my own words for my reference. Normally when I put Cisco Access Points on the same VLAN as the Wireless LAN Controllers Management Interface. Access Points have no issue joining the controller. However if the Cisco light weight access Points are on a different VLAN, they will not be able to join the controller initially and that usually requires DHCP Options 43 and 60. Below is an overview of how to configure DHCP Options 43 and 60 for Cisco light weight access points on a Cisco IOS Router.

I will use 192.168.10.0/24 network as an example where all the Cisco light weight access points will reside. Controller IP would be lets say 192.168.1.11. So now since the Cisco Access Points and the Wireless LAN Controller are on two different subnets. I would need to configure DHCP Options 43 and 60

ip dhcp pool AP_POOL
network 192.168.10.0 255.255.255.0
default-router 192.168.10.1
option 60 ascii “Cisco AP c2600″ (I found this from Cisco website and is considered as the VCI String – Vendor Class Identifier)
option 43 hex f104c0a8010b

Note: Option 60 is not required when using Cisco IOS DHCP Server. But having that option will basically not send option 43 to clients that do not require it

Now getting the option 60 part is easy. DHCP Option 43 calculation requires further explanation:

  • Option 43 is basically Type(f1) + Length(Number of Controller Management IP’s x 4) + Value (IP Address in Hex)
  • Type = Will always be f1
  • Length = This value comes from taking the number of Controllers Management IP’s and multiplying it with 4. So if there is a single controller then 1 X 4, if there are two then 2 X 4. so in our cause it would be 1 X 4 = 04
  • Value = This is basically the IP address of the Controllers management interface into Hex so 192.168.10.11 = c0.a8.01.0b

Tags: , ,

11 Feb 15 EEM Script to shut and no shut BGP Neighbor – Cisco IOS

I am loving EEM Scripting so far. Had a need recently to accomplish the following with a script:
EEM Script 1 – Shutdown BGP Neighbor

  • Shut down BGP Neighbor
  • Add a static Route
  • Shutdown Multilink Interface
  • Save Config

EEM Script 2 – Re Enable BGP Neighbor

  • Un shut BGP Neighbor
  • Remove static route
  • Re enable Multilink Interface
  • Save Config

In order to accomplish these two tasks I created two separate scripts.

event manager applet bgp_shut
event none
action 1.0 cli command “enable”
action 1.1 cli command “conf t”
action 1.2 cli command “router bgp 65081″
action 1.3 cli command “neighbor 10.138.128.130 shutdown”
action 1.4 cli command “exit”
action 1.5 cli command “ip route 0.0.0.0 0.0.0.0 10.255.255.105″
action 1.6 cli command “int multi 1″
action 1.7 cli command “shut”
action 1.8 cli command “end”
action 1.9 cli command “wr mem”

event manager applet bgp_noshut
event none
action 1.0 cli command “enable”
action 1.1 cli command “conf t”
action 1.2 cli command “router bgp 65081″
action 1.3 cli command “no neighbor 10.138.128.130 shutdown”
action 1.4 cli command “exit”
action 1.5 cli command “no ip route 0.0.0.0 0.0.0.0 10.255.255.105″
action 1.6 cli command “int multi 1″
action 1.7 cli command “no shut”
action 1.8 cli command “end”
action 1.9 cli command “wr mem”

By visiting this website and reading the content you are agreeing to the Terms and Conditions of this website

Tags: , , ,

26 Aug 14 Cisco IOS ACL logging with Port numbers

Cisco IOS logging with source and destination ports

Recently I had to do some troubleshooting on a Cisco 2911 Router in order to find out if traffic is going from a certain IP address to another. So I did the usual created an extended Access List and then applied it to the interface like this:

ip access-list extended test
permit ip any any log
!
interface gi0/0
ip access-group test in
end

Now that is great and I was seeing the logs and traffic however what I also needed to know was the source and destination port numbers. This configuration was giving me the following:
Aug 25 08:24:28.608: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(0) -> 10.202.106.15(0), 1 packet
Aug 25 08:24:29.612: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(0) -> 10.202.106.15(0), 1 packet
Aug 25 08:24:30.700: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(0) -> 10.202.106.15(0), 1 packet
As you can see instead of getting the port number I am just getting a “0” in there. I needed to know the port numbers as well. Now the issue is if the access list line does not have the port numbers listed (Layer 4) it will not show them. So here is what I did to get it working:

ip access-list extended test
permit ip tcp any gt 1024 any gt 1024 log
!
interface gi0/0
ip access-group test in
end

When I did that I got the following results :)
Aug 25 08:24:28.608: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(9053) -> 10.202.106.15(12302), 1 packet
Aug 25 08:24:29.612: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(9052) -> 10.202.106.15(39817), 1 packet
Aug 25 08:24:30.700: %SEC-6-IPACCESSLOGP: list test permitted tcp 172.20.32.200(9055) -> 10.202.106.15(12302), 1 packet

Tags: , ,

26 Mar 14 Broadcast multiple SSID’s – Cisco Standalone Access Points

How to broadcast multiple SSID’s on Cisco Access Points

Usually using the command guest-mode under the SSID configuration on a Cisco Access Point you can broadcast a single SSID. I needed to actually broadcast multiple SSID’s on Cisco 1240 Access Points running the following code: Version 12.4(10b)JDA3. In that case I used the following configuration options.

interface dot11radio #
mbssid
!
dot11 ssid CORP
mbssid guest-mode
!
dot11 ssid GUEST
mbssid guest-mode

I used the following two links during my research.

  • http://www.cisco.com/c/en/us/td/docs/wireless/access_point/12-3_7_JA/configuration/guide/i1237sc/s37ssid.html#wp1050170
  • http://www.cisco.com/c/en/us/td/docs/wireless/access_point/12-_3g_JA/configuration/guide/ios1243gjaconfigguide/s43ssid.html#wp1035858

[sz-gplus-one size=”medium” annotation=”bubble”/]

Tags: , ,

07 Feb 14 EEM Script for clearing – Cisco IOS

EEM Script example to clear stuff in Cisco IOS

I had to recently clear the DHCP Conflict log from a Cisco Router as it was filling up and not allowing devices to get back on the network in a specific situation. Well instead of doing it manually I just decided to give Cisco EEM Script a try. And it worked out pretty good :). Another scenario I used was clearing DHCP bindings and arp.

EEM Script – Clear DHCP Conflict Log

event manager applet CLEAR_DHCP_CONFLICT (This is applets name)
event timer watchdog time 172800 (Using the watchdog option I allowed it to run every 48 hours)
action 1.0 cli command “enable”
action 2.0 cli command “clear ip dhcp conflict *”
action 3.0 syslog msg “IP DHCP Conflict log has been cleared successfully” (syslog msg enabled me to trigger a syslog message)

EEM Script – Clear DHCP Bindings and Arp Cache

event manager applet CLEAR_DHCP_CONFLICT
event timer watchdog time 172800
action 1.0 cli command “enable”
action 2.0 cli command “clear ip dhcp binding *”
action 3.0 cli command “clear arp”
action 4.0 syslog msg “IP DHCP bindings and Arp Cache have been cleared”

So Cisco EEM Scripting is pretty cool. Possibilities are endless.

Tags: , ,

26 Dec 13 Cisco WLC2504 Boot loader Failure

Cisco WLC2504 Boot Loader Failure Error

So today I had a Cisco WLC 2504 crash and it would not come back online after a reboot. So I gained access to it via Cisco Console cable to see what is going on with it. And I was presented with the following screen/error:

WLCNG Boot Loader Version 1.0.16 (Built on Feb 28 2011 at 13:14:54 by cisco)
Board Revision 0.0 (SN: PSZ17xxxxx, Type: AIR-CT2504-K9) (P)
Verifying boot loader integrity…
##########################################
### IMPROPER SYSTEM OPERATION DETECTED ###
### ———————————- ###
### System has been halted because: ###
### 1. Boot loader failed verification ###

WLC 2504 BootLoad Failure

I was hoping that this is something that can be recovered and we can bring the Cisco 2504 WLC back online. After some searching and talking to Cisco TAC, basically it just needed to be RMAed. Thank God to Cisco Smartnet :), was able to get it back up and running in a couple of hours.

Tags: , ,

24 Dec 13 Testing dial tone and Outbound calling from Cisco Router and FXO Card

Dial tone and Outbound calling – Cisco Router/FXO Card

Recently I had a need to test and determine if there was a dial tone on the Cisco FXO Card installed into a Cisco 2911 router. I knew that telco terminated the pots lines on the 66 block but I did not know if they were plugged into the Cisco FXO card. I did not have any one onsite to give me a visual confirmation. So I found out about couple of cool debug commands to accomplish this:

debug vpm signal
debug vpm all

Here are the steps I took:

  • First I used a test Cisco IP phoneon my desk and set it up with this offices extension in Cisco Call Manager
  • Next I setup the debug commands debug vpm all on the router with term mon
  • Next I tried to dial out from my test phone and since the Cisco Call Manager was setup to use the FXO card for the calling, it tried to dial out using one of the FXO ports
  • Now take a look at the debug message from the Cisco Router

#htsp_allocate_if —

Nov 27 10:31:46.468: HTSP endpoint_info=aaln/S0/SU0/0, type=2, under_specified=0,
service_type=2htsp_allocate_if: MATCH!

Nov 27 10:31:46.472: htsp_timer_stop3 htsp_setup_req
Nov 27 10:31:46.472: Orig called num:16152324144
Nov 27 10:31:46.472: htsp_process_event: [0/0/0, FXOLS_ONHOOK, E_HTSP_SETUP_REQ]fxols_onhook_setup
Nov 27 10:31:46.472: [0/0/0] set signal state = 0xC timestamp = 0
Nov 27 10:31:46.472: dsp_set_sig_state: [0/0/0] packet_len=12 channel_id=128 packet_id=39 state=0xC timestamp=0x0
Nov 27 10:31:46.472: TGRM: reg_invoke_tgrm_call_update(0, 0, 0, 65535, 1, TGRM_CALL_BUSY, TGRM_CALL_VOICE, TGRM_DIRECTION_OUT)
Nov 27 10:31:46.472: htsp_timer – 1300 msec
Nov 27 10:31:46.728: htsp_process_event: [0/0/0, FXOLS_WAIT_DIAL_TONE, E_DSP_SIG_1100]fxols_power_denial_detected
Nov 27 10:31:46.728: htsp_timer2 – 1000 msec
Nov 27 10:31:46.728: htsp_timer_stop
Nov 27 10:31:47.728: htsp_process_event: [0/0/0, FXOLS_WAIT_DIAL_TONE, E_HTSP_EVENT_TIMER2]fxols_power_den_disc
Nov 27 10:31:47.728: htsp_timer_stop
Nov 27 10:31:47.728: htsp_timer_stop2
Nov 27 10:31:47.728: [0/0/0] set signal state = 0x4 timestamp = 0
Nov 27 10:31:47.728: dsp_set_sig_state: [0/0/0] packet_len=12 channel_id=128 packet_id=39 state=0x4 timestamp=0x0
Nov 27 10:31:47.728: mars_flex_dsprm_current_codec_comp:DSP:0 FLEX Complexity Codec htsp_release_req: cause 34, no_onhook 0
Nov 27 10:31:47.728: htsp_process_event: [0/0/0, FXOLS_ONHOOK, E_HTSP_RELEASE_REQ]fxols_onhook_release
Nov 27 10:31:47.728: TGRM: reg_invoke_tgrm_call_update(0, 0, 0, 65535, 1, TGRM_CALL_IDLE, TGRM_CALL_VOICE, TGRM_DIRECTION_OUT)
Nov 27 10:31:47.728: flex_dsprm_close_cleanuphtsp_allocate_if —

Nov 27 10:31:47.780: HTSP endpoint_info=aaln/S0/SU0/1, type=2, under_specified=0,
service_type=2htsp_allocate_if: MATCH!

If you look at lines above you will notice that it clearly did not get a dial tone and hence my called failed. With this information I was able to verify if someone connected the cables from the 66 block to the Cisco FXO Card. I could have also used this same technique to see if there was dial tone on the pots lines on the 66 block. In case there is no butt set is available

Tags: , , , ,

19 Dec 13 Cisco Voice Gateway not Re Registering with Cisco Call Manager

Cisco Voice Gateway lost registration with Cisco Call Manager and not re registering

So VoIP is a whole new world to me and in the last two months I have learnt a whole lot. Pretty interesting stuff especially once you know it obviously lol. But troubleshooting can be a pain at times. Recently one of the Cisco router with a PRI lost its registration with the Cisco Call Manager – CUCM. None of the phones were working for outbound dialing however local extension dialing was working. When I logged into the Cisco Router and issued the following command: show ccm. I noticed that it is going back and forth trying to register with the Primary and Backup Cisco Call Manager. I looked at the settings on the Cisco Router and all VoIP related config was right. I tried to do no mgcp and then mgcp still no use. Then I started to run a debug to see what is happening and hopefully debug will give me some indication on the issue. Following commands were issued on the router:

  • debug mgcp events
  • debug mgcp errors
  • term mon

Here is what I saw in the log:

Dec 18 13:42:30.080: S0/SU0/DS1-0/* mgcp_endpt_parent_redirected: parent S0/SU0/DS1-0/*, child S0/SU0/DS1-0/23
Dec 18 13:42:30.080: S0/SU0/DS1-0/23 mgcp_endpt_set_notified_entity:
Dec 18 13:42:30.080: S0/SU0/DS1-0/23 mgcp_endpt_set_notified_entity:ne 10.206.110.20:2427, ne addr 10.206.110.20:2427
Dec 18 13:42:30.080: S0/SU0/DS1-0/23 mgcp_endpt_set_call_agent:
Dec 18 13:42:30.080: S0/SU0/DS1-0/23 mgcp_endpt_redirect_children:
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.080: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=4, conn_mode=3
Dec 18 13:42:30.084: mgcp_is_transient: callp->state=0, conn_mode=0
Dec 18 13:42:30.084: MGCP sys msg: (15)
Dec 18 13:42:30.084: xlate sys msg: (15, 4539B688)
Dec 18 13:42:30.084: sys msg values: (INVALID MGCP EVENT, 0, , 1108831796, CALL_IDLE)
Dec 18 13:42:30.084: process mgcp_handle_cmapp_event
Dec 18 13:42:30.084: mgcp_cmapp_send_rsip: Send-RSIP: Sending gw host is XYZ1-RTR-01.mydomain.com, endpt is *
Dec 18 13:42:30.084: mgcp_cmapp_send_rsip_to_callmgr: Send RSIP – Pass-in: ipaddr=10.206.110.20 ca_port=2427
Dec 18 13:42:30.084: * mgcp_root_get_profile:
Dec 18 13:42:30.084: * mgcp_send_rsip_msg:
Dec 18 13:42:30.084: * mgcp_endpt_record_rsip:
Dec 18 13:42:30.084: * mgcp_send_rsip_msg: Manually recroding RSIP method
Dec 18 13:42:30.084: * mgcp_endpt_record_rsip:
Dec 18 13:42:30.084: * mgcp_enq_retx_rsip_msg
Dec 18 13:42:30.084: mgcp_add_trans_id_rec: Add trans id (689668931, 46CBEB70) record
Dec 18 13:42:30.084: mgcp_stw_timer_start timer type 0, duration 500
Dec 18 13:42:30.652: MGC stat – 10.202.110.36, total=340539, succ=340048, failed=146
Dec 18 13:42:30.652: mgcpapp_process_mgcp_msg :
Dec 18 13:42:30.660: * mgcp_msg_ack
Dec 18 13:42:30.660: MGC stat – 10.202.110.36, total=340539, succ=340049, failed=146
Dec 18 13:42:30.660: * mgcp_check_for_redirection: endpt * was not redirected
Dec 18 13:42:30.660: [S] mgcp_msg_ack:6166,Updating (*)=10.202.110.36
Dec 18 13:42:30.660: * mgcp_msg_ack: Removing msg : RSIP 689668929 *@XYZ1-RTR-01.mydomain.com MGCP 0.1
RM: graceful
Dec 18 13:42:30.664: * mgcp_msg_ack: Setting the restart method to NONE
Dec 18 13:42:30.664: mgcpapp_process_socket
Dec 18 13:42:30.664: MGC stat – 10.206.110.20, total=313, succ=169, failed=143
Dec 18 13:42:30.664: mgcpapp_process_mgcp_msg :
Dec 18 13:42:30.664: * mgcp_msg_ack
Dec 18 13:42:30.664: MGC stat – 10.206.110.20, total=313, succ=169, failed=144
Dec 18 13:42:30.664: * mgcp_check_for_redirection: endpt * was not redirected
Dec 18 13:42:30.664: * mgcp_msg_ack: Removing msg : RSIP 689668931 *@XYZ1-RTR-01.mydomain.com MGCP 0.1
RM: restart
Dec 18 13:42:30.664: * mgcp_msg_ack: Setting the restart method to NONE
Dec 18 13:42:30.664: mgcpapp_process_socket
Dec 18 13:42:30.960: unreachable detected
Dec 18 13:42:30.960: mgcp_cr_and_init_evt_node:$$$ the node pointer 46FA4428

After looking at the debug I noticed that the registration was failing for the host “XYZ1-RTR-01.mydomain.com”. When I looked in the Cisco Call Manager I noticed that the registered name was “XYZ-RTR-01.mydomain.com”. So since the host name of the Cisco Voice Gateway hence it was no longer valid in the Cisco Call Manager. I simply updated the name in Cisco Call Manager and the Cisco Voice Gateway successfully re registered with the Cisco Call Manager – CUCM.

Tags: , , , , , , , ,

31 Aug 13 No Shut Cisco router interface automatically – EEM Script

How to re enable a Cisco router interface after shutting it down automatically

Recently I had a need to shutdown a Cisco router interface for testing, but then I needed it to be re enabled after a min or so. Well since it was a remote router I did not have console access to it, no dial up access to it either. I had an option to do a reload in xxx, but I really did not want the whole router reloaded. Thanks to Cisco Event Manager EEM Scripting :), it came to my rescue. Here are a few examples that I ended up using for my testing.

EEM Script examples that I used utilized multiple parameters, there is so much more you can do but these are just very basic for what I needed to accomplish:

EEM Script – “no shut” after 60 seconds

event manager applet NOSHUT1
event timer countdown time 60
action 1 cli command “enable”
action 2 cli command “configure terminal”
action 3 cli command “interface serial0″
action 4 cli command “no shut”

The only thing about this script was that it ran only once and that is it, countdown time would not reset, so to take care of that issue I used another option.

EEM SCript – “no shut” after 60 seconds and reset counter

event manager applet NOSHUT
event timer watchdog time 60
action 1 cli command “enable”
action 2 cli command “configure terminal”
action 3 cli command “interface serial0″
action 4 cli command “no shut”

Now with this script I would shut down an interface and after 60 seconds script re enabled it and reset the counter again. Which means when I shut the interface down again, EEM Script would re enable it again after the counter reached “0”.

EEM Script – “no shut” after detecting a pattern in the log

event manager applet NOSHUT3
event syslog pattern “Interface Serial0, changed state to administratively down”
action 1 cli command “enable”
action 2 cli command “configure terminal”
action 3 cli command “interface serial0″
action 4 cli command “no shut”

This last one pretty much looks for certain patterns in the log and if it matches, script will run and perform the actions you specify. In my case I just did a “no shut” on the serial 0 interface. So this can give you an idea on how powerful EEM Scripting can be and we can accomplish so much utilizing EEM Scripting :).

Note:Use this as a reference point only. There are other configuration options available to tweak this according to your needs. Remember to always backup your work before you make any changes, always test configurations in the lab and never do anything that you can not undo :) . Terms and conditions of using this site

Tags: , , , ,

WordPress SEO