21 - User Networking API RFD Oxide
Metadata
Source URL:: https://rfd.shared.oxide.computer/rfd/0021#_dns
Topics:: #networking, #user-defined-networking, #todo, #external-dns-instance
Highlights
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.