This repository has been archived by the owner on Aug 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 24
dns 3.4 spec
chris grzegorczyk edited this page Aug 2, 2013
·
19 revisions
NOTE: through out this document the following naming assumptions are used:
- DNSDOMAIN.COM is the public subdomain which is delegated to Eucalyptus
- ${system.dns.dnsdomain} refers to the system property of the same name
- ${cloud.vmstate.} refers to the system property of the same name
- INSTANCESUBDOMAIN is the subdomain used for instance DNS
- 10.111.1.2 is the example Eucalyptus CLC host
- Set all the experimental DNS resolvers to be enabled='true'
clc 17599 > euca-describe-properties experimental.dns
PROPERTY experimental.dns.enabled true
PROPERTY experimental.dns.instancedata.enabled true
PROPERTY experimental.dns.ns.enabled true
PROPERTY experimental.dns.recursive.enabled true
PROPERTY experimental.dns.services.enabled true
PROPERTY experimental.dns.split_horizon.enabled true
- Set the nameserveraddress given out to instances to be the same as the CLC
- THIS IS NOT RIGHT! The 'nameserveraddress' needs to be dynamic for HA!
euca-modify-property -p system.dns.nameserveraddress=10.111.1.2
PROPERTY system.dns.nameserveraddress 10.111.1.2 was 127.0.0.1
- Set the public facing domain name -- the cloud internal domain is always 'internal'
clc 17595 > euca-modify-property -p system.dns.dnsdomain=DNSDOMAIN.COM
PROPERTY system.dns.dnsdomain DNSDOMAIN.COM was localhost
- Set the sub-domain name used for instances
clc 17597 > euca-modify-property -p cloud.vmstate.instance_subdomain=.INSTANCESUBDOMAIN
PROPERTY cloud.vmstate.instance_subdomain .INSTANCESUBDOMAIN was .eucalyptus
clc 17610 > euca-modify-property -p bootstrap.webservices.use_dns_delegation=true
PROPERTY bootstrap.webservices.use_dns_delegation true was false
clc 17610 > euca-modify-property -p bootstrap.webservices.use_instance_dns=true
PROPERTY bootstrap.webservices.use_instance_dns true was false
Responds To | Description | ||
Service/Component Resolver |
${component.name()}.${system.dns.dnsdomain}
|
Resolves the address of the currently ENABLED service indicated by the first label in the request. | |
---|---|---|---|
Recursive Resolver |
not *.${system.dns.dnsdomain}
|
Handles resolution of address which are not in domains managed by Eucalyptus. | |
Split Horizon Resolver |
euca-(.+{3})-(.+{3})-(.+{3})-(.+{3}).${cloud.vmstate.instance_subdomain}.${system.dns.dnsdomain}
|
euca-(.+{3})-(.+{3})-(.+{3})-(.+{3}).${cloud.vmstate.instance_subdomain}.internal
|
Resolves instance addresses based on the requestor's source address; internal source addresses always get internal ip address responses. |
instance-data Resolver |
instance-data
instance-data.internal
instance-data.${cloud.vmstate.instance_subdomain}.internal
|
hi |
- A records for components & services
- Components:
- All have a short-name (column 2 of euca-describe-services)
- May have a partition which deteremines their subdomain (column 3 of euca-describe-services)
- May be strictly internal (e.g., reporting) and have no DNS name associated as a result
- Component name lookups are:
- Global services:
${componentId.name()}.DNSDOMAIN.COM
- Partitioned services:
${componentId.name()}.${partition}.DNSDOMAIN.COM
- Global services:
euca-describe-services --all |
awk '$3 == "PARTI00" {print $2"."$3".DNSDOMAIN.COM"} $3 != "PARTI00" {print $2".DNSDOMAIN.COM"}' |
sort | uniq |
xargs -i dig @10.111.1.2 A {} +retries=0 +timeout=1 |
sed 's/\t/ /g' | egrep '60\ +.*IN.*A.' | egrep -v '$^|--'
autoscaling.DNSDOMAIN.COM. 60 IN A 10.111.1.2
cloudwatch.DNSDOMAIN.COM. 60 IN A 10.111.1.2
cluster.PARTI00.DNSDOMAIN.COM. 60 IN A 10.111.1.2
configuration.DNSDOMAIN.COM. 60 IN A 10.111.1.2
db.DNSDOMAIN.COM. 60 IN A 10.111.1.2
dns.DNSDOMAIN.COM. 60 IN A 10.111.1.2
euare.DNSDOMAIN.COM. 60 IN A 10.111.1.2
eucalyptus.DNSDOMAIN.COM. 60 IN A 10.111.1.2
jetty.DNSDOMAIN.COM. 60 IN A 10.111.1.2
ldap.DNSDOMAIN.COM. 60 IN A 10.111.1.2
loadbalancing.DNSDOMAIN.COM. 60 IN A 10.111.1.2
node.PARTI00.DNSDOMAIN.COM. 60 IN A 10.111.1.16
node.PARTI00.DNSDOMAIN.COM. 60 IN A 10.111.1.66
notifications.DNSDOMAIN.COM. 60 IN A 10.111.1.2
storage.PARTI00.DNSDOMAIN.COM. 60 IN A 10.111.1.2
tokens.DNSDOMAIN.COM. 60 IN A 10.111.1.2
walrus.DNSDOMAIN.COM. 60 IN A 10.111.1.2
- Resolves names outside of the eucalyptus controlled domain names
clc 17610 > euca-modify-property -p cloud.vmstate.instance_subdomain=.testing
root@euca-1-106-32-141:~# dig euca-10-111-101-129.testing.demo.com +short
1.106.32.141
- Responds to:
root@euca-1-106-32-141:~# dig A instance-data
169.254.169.254
Using domain server:
Name: 10.111.1.66
Address: 10.111.1.66#53
Aliases:
instance-data has address 169.254.169.254
root@euca-1-106-32-141:~# dig PTR 169.254.169.254
;; Warning: query response not set
Using domain server:
Name: 10.111.1.66
Address: 10.111.1.66#53
Aliases:
254.169.254.169.in-addr.arpa domain name pointer instance-data.
- Support for 'instance-data' A record
- Fix to service name resolution
- Support for round-robin DNS for active-active services
tag:rls-3.4