Your Eucalyptus front end has DNS support, which allows VM instances and Walrus buckets to be mapped to IP addresses. This allows you to use a friendly host name when referring to your instances or buckets.
This guide briefly shows the cloud administrator how to set up their master DNS (bind in this example) to delegate a subdomain of your choice to Eucalyptus.
First, pick a subdomain that you would like Eucalyptus to use. In the following example, it will be eucadomain.mycompany
Install and configure the Eucalyptus front end. Edit /etc/eucalyptus/eucalyptus.conf and enable DNS support.
DISABLE_DNS="N"
Make sure that there are no services are listening on port 53 on your Eucalyptus front end server. This may include DNS services like bind or dnsmasq.
(Hint: "netstat -lpn" as root will show the list of ports that are current bound).
Now start (or restart) the Eucalyptus front end. After the front end has started, you can check if Eucalyptus is listening on port 53 by using "netstat -lpn"
Next, configure DNS in Eucalyptus. As the user "admin" login to your Eucalyptus front end web interface at https://:8443 and navigate to the "Configuration" tab.
Set the domain name. In this example, the domain name will be set to the subdomain "eucadomain.mycompany" where "mycompany" is your top-level domain.
Set the nameserver to the fully qualified name of the Eucalyptus front end. For example, "eucafrontend.eucadomain.mycompany"
Set the nameserver IP to the externally routable IP address of your front end.
Click "Save Configuration."
Next, you will need to configure your master DNS server to delegate requests for hosts in the subdomain "eucadomain.mycompany" to the Eucalyptus front end "eucafrontend.eucadomain.mycompany" in this example.
In this example, we assume that you have bind set up to handle DNS requests for the domain "mycompany"
Your bind config files for the zone "mydomain" may look like the following,
/etc/bind/named.conf
zone "mycompany" {
type master;
file "/etc/bind/db.mycompany";
};
/etc/bind/db.mycompany
$TTL 604800
@ IN SOA mycompany. root.mycompany. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.mycompany.
@ IN A 192.168.48.111
;@ IN AAAA ::1
ns.mycompany. IN A 192.168.7.111
Change the config for the zone "mycompany" to add a delegation entry,
;
$TTL 604800
@ IN SOA mycompany. root.mycompany. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.mycompany.
@ IN A 192.168.48.111
;@ IN AAAA ::1
eucadomain.mycompany. NS eucafrontend.eucadomain.mycompany.
ns.mycompany. IN A 192.168.48.111
eucafrontend.eucadomain.mycompany. IN A 192.168.48.244
This tells bind that requests for hosts in "eucadomain.mycompany" are handled by the nameserver "eucafrontend.eucadomain.mycompany", the Eucalyptus front end server.
Now restart bind (for example, "/etc/init.d/bind9 restart").
That should do it.
To test your configuration, try creating a bucket in Walrus, for example, "testbucket0"
You should be able to get the IP for this bucket by quering the top level DNS server.
dig testbucket0.walrus.eucadomain.mycompany
; <<>> DiG 9.5.1-P2.1 <<>> @192.168.48.111 testbucket0.walrus.eucadomain.mycompany
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 545
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;testbucket0.walrus.eucadomain.mycompany. IN A
;; ANSWER SECTION:
testbucket0.walrus.eucadomain.mycompany. 604791 IN A 192.168.48.244
;; AUTHORITY SECTION:
walrus.eucadomain.mycompany. 604516 IN NS eucafrontend.eucadomain.mycompany.
Hope that helps!