DNS for InstancesWhen an instance is created, it is automatically registered in Internal
DNS. In this case, the primary IPv4 and IPv6 addresses are registered as
A and AAAA records. Internal DNS exists on a per-VPC basis. Using
the network’s DNS servers, an instance is always able to resolve any
address on the VPC. If an instance is not on that VPC, it will not be
able to resolve names outside of that VPC.When an Ephemeral IP address is assigned to an instance, then that
instance will appear in external DNS. Names in external DNS are
accessible outside of the Oxide environment by other applications. A DNS
A record is created whenever an IPv4 Ephemeral IP address is assigned
and a DNS AAAA record is assigned whenever an IPv6 Ephemeral IP address
is assigned.Names in DNS follow the same structure, regardless of whether or not
they are being used internally or externally. This structure is:..inst....<instance> refers to the DNS name of the instance<az> refers to the DNS name of the availability zone<vpc> refers to the DNS name of the VPC<project> refers to the DNS name of the project<org> refers to the DNS name of the organization<suffix> refers to the DNS suffix that is used. For internal DNS
this is always .internal. For external DNS, this varies based on the
installation.Let’s look at an example. Here are two names that refer to the same
instance. One is in internal DNS and one is in external DNS:glorfindel.us-east-1.inst.gondolin.noldor.tolkien.internal
glorfindel.us-east-1.inst.gondolin.noldor.tolkien.oxide.fingolfin.orgHere glorfindel is the DNS name of the instance. us-east-1 is the
DNS name of the availability zone. gondolin is the DNS name of the
VPC, noldor is the DNS name of the project, and tolkien is the DNS
name of the organization. The first DNS host name is the name in
internal DNS, which is why it has the .internal suffix. The second
name is the one in external DNS and oxide.fingolfin.org is the suffix.
The DNS suffix is specific to an installation.In all of the above objects, we explicitly said it was the DNS name. The
DNS name is a separate name for each object that defaults to the
object’s name. DNS has some additional constraints in terms of naming
that aren’t always there for the main name attributes. In addition, it’s
important that renaming something that users see and interact with on a
regular basis doesn’t impact the names that machines are using unless
intended.When two VPCs have been peered together, subnets that are shared will
show up in DNS with the corresponding names that match that project.