I have a client that has three separately hosted copies of their website, each on a separate domain name.  The websites are all essentially the same, bar a few discrepancies caused by badly managed updates in the past.

I will soon be launching a completely new website for them, at which point, all three domain names are to resolve to the same web server.  One domain name will become the default domain name that they refer to in all their literature, and the other two will simply be used as catch-alls for old links, bookmarks, and so on.

I would like to know what people consider the best route to achieve this.  My plan so far is:

1. Get the new site up and running on the new webserver.

2. Change the relevant A record of the default domain name to point to the new webserver.

3. a) Keep the existing hosting accounts in operation. Create a list of 301 redirects from old page names on the old site to new page names on the new site.


 b) Configure CNAME records for the non-default domain names, each pointing to the new webserver.  Create a list of 301 redirects on the new site that redirect from old page names to new page names.

If my understanding is correct, 3a will *help* to maintain whatever search engine rankings the sites already have (I know it's not going to be perfect), while at the same time informing search engines that the old domain names are no longer in use.  

What's a good approach to take here?