Export then import AAA client database from ACS server

Unanswered Question
May 15th, 2007
User Badges:

I have a Cisco ACS server (lets call it server A) running on Windows 2000 server. It has several hundred AAA clients and several hundred user accounts.

Now I have a new Cisco ACS server (we'll call it Server B) which now uses an exteral database to authenticate users but I want to move all the AAA clients from server A to this new server B.

I looked up the CSUtil.exe and I see I can dump the database.. but I want to import only the devices into the new server. Not the users, not the administrators, or any other info. Just the AAA clients.

Any ideas?


  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4 (1 ratings)
darpotter Tue, 05/15/2007 - 11:37
User Badges:
  • Silver, 250 points or more

If the versions of ACS match the easiest thing is to replicate just the network config db from one to the other.

Pre v4.0 and you can copy the network config registry between servers (non appliance)


jeremyault Tue, 05/15/2007 - 12:36
User Badges:

Excellent - just the information I was looking for. I didn't realize everything was stored in the registry.

This should be a fairly straightforward process of exporting reistry branches and exporting them back in on the destination system.

jeremyault Wed, 05/16/2007 - 18:56
User Badges:

Nope - I just tried it and it won't work.

I tried copying one individual host (key) from one registry to the other -- it didn't work and the ACS "freaked out". Once I deleted the host out of the registry everything went back to normal.

I'm not sure if it's because one server is Windows 2000 and the other is 2003 or if it's simply a matter of certain checksums in the key portion that are system specific.

Either way, importing registry entries won't work and isn't an option.

Maybe I can just do a database dump, import the whole thing into the new server, then just delete the parts I don't want after the fact. Still considering all my options.

darpotter Thu, 05/17/2007 - 12:43
User Badges:
  • Silver, 250 points or more

OK, I forgot the master encryption key is per install. Sorry.

Ok not perfect but on the trial download page of extraxi.com there is a script called "getacsdb" which does just that for v3.x

It will create a cab inside which are exported CSVs of the nas's and ndgs. You could extract this and munge it into a csutil nas import file (see online docs for csutil).

If you're using NDGs these would have to manually created first.


darpotter Thu, 05/17/2007 - 12:46
User Badges:
  • Silver, 250 points or more

Could try this... create a nas with a known secret on the new server.

Dump the reg, copy and paste the secret from the new reg into that exported from the old ACS server. Paste the key into every NAS record.

You'll get a config that works... but all with the same shared secret. Again not perfect but most of the heavy lifting is done.

jeremyault Thu, 05/17/2007 - 13:32
User Badges:

I tried something like what you're saying. I too thought that the "key" was just the shared secret and could be pasted from an existing device on the new server.. but it didn't work.

The "key" part of an aaa host in the registry appears to be a hash derrived from combining the host name, group, authentication type, shared secret, etc.

So doing something as simple as changing one letter in the host name or moving it to a different group completely changed the resultant "key".

Like you said -- since the master encryption is system specific, the checksum doesn't match up to all the rest of the settings and it just won't work.

jeremyault Wed, 08/29/2007 - 16:15
User Badges:

I figured out how (quite a while back) how to export and import all the devices from one ACS server to another. It's actually quite low tech.

Go into the Network portion of the ACS server and do a "search" using all wildcards. That will dump out a list of all network devices, their IP address, and group.

Then, click download and save it as a .csv file. From there it's just a matter of inserting a key for each host, putting it into the proper text format and importing the entire thing into the new ACS using the CSUtil.exe.

Simple really.

Oh, just be sure to create the network groups on the new ACS server before importing or the devices will go to the "unknown" group.

v.kirillov Wed, 11/28/2007 - 08:36
User Badges:

Hello Darran,

Could you please be more specific about how exactly to import the NAS list from the old ACS server?

jeremyault Wed, 11/28/2007 - 09:37
User Badges:

I was never able to successfully copy the data from one server's registry to another. It doesn't work because parts of the data are stored using encryption. What I ended up doing was to create a text file of the NAS list (do a seach for all devices in ACS, then do a download of the result into a spreadsheet) which I was then able to modify into the specific format and save as a text file. I then imported the text file into the new system's database using the CSUTIL command.

The format of the text file needs to be exactly as follows (note - the first line should be the word offline or online). Also, you might be using RADIUS in the place of TACACS+. See http://www.cisco.com/en/US/products/sw/secursw/ps2086/products_user_guide_chapter09186a008007d0c9.html


ADD_NAS:ROUTERH01:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Houston"

ADD_NAS:ROUTERH02:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Houston"

ADD_NAS:ROUTERS01:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Springfield"

ADD_NAS:ROUTERS02:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Springfield"

ADD_NAS:ROUTERD01:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Dallas"

ADD_NAS:ROUTERD02:IP:$ecretKey99:VENDOR:"TACACS+ (Cisco IOS)":NDG:"Dallas"

Hint: you will need to create each of the network device groups before you import the text file.

darpotter Fri, 11/30/2007 - 03:06
User Badges:
  • Silver, 250 points or more

I would always keep the import file as your master repository.

That way if you need to move to another ACS you already have the data.

You can do it copying registry. but you'd have to edit each NAS in turn to reset the shared key.. which doesnt scale.


This Discussion