I registered a domain by Bluehost. However, I could not set up the domain correctly for Google sites at Bluehost:
alt text http://files.getdropbox.com/u/175564/domainBluehostGoogle.png
Google's instructions
Sign in to your domain hosting service and locate the DNS management page. The location varies by service, but can typically be found under Domain Management or Advanced Settings .
Use the following unique string to create a new CNAME record for the domain.com domain:
googlea0406ece---
Point the CNAME record to:
google.com
- Once you have made the changes, you can verify that the record exists by doing a CNAME lookup for http://googlea0406ece---.domain.com . You can find several web sites to do automated CNAME lookups by searching for CNAME lookup at http://www.google.com
How can you assign a domain to Google Sites which is registered by Bluehost?
I used to use Bluehost and went through this exact scenario with them. They do allow some DNS control by the user, but to do what is required for Google Apps you'll need to call them and request for the changes to be made. They've done it a million times, so all you need to do is tell them that you're setting up a Google Apps domain and they'll likely know exactly what you want to have done.
I think it only took a few hours after the phone call before the changes were made and then another few hours for those changes to propagate.
Use full DNS control or as you have listed above, point them to a public DNS server that you have control over. Most people don't deploy their own internet facing DNS servers now adays so what you will want to do is use bluehosts granulated dns configurations to create your records.
Most people will need to create an (A) record that resolves to a particular IP address. In all actuallity you need an (A) record before you can create a CNAME whether its on the same or a seperate domain name.
For instance if I have the domain mydomain.com registered, than I would need to create an '(A) record' in my 'forward lookups' for that particular domain which may have data in it like this:
TYPE: (A)
Name: www
DATA: 168.45.56.235
The host, 168.45.56.235 would be listening on port 80 and/or 443 for my web requests. A CNAME record will most often require a pre-existing (A) record. In your case you would want to use what is provided by google for the CNAME which requires an alias and a fully qualified domain name for the fields.
ALIAS: googlea0406ece---
FQDN: google.com.