---
id: "dns"
type: "kind"
category: "edge"
url: "https://localhost:3000/catalogue/kinds/dns"
---

# DNS

Name resolution and traffic steering.

| | |
|---|---|
| Category | Edge |
| Properties | 6 |
| Components | 34 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `anycast` | boolean | — | no | false |
| `geoRouting` | boolean | — | no | false |
| `healthChecked` | boolean | — | no | false |
| `managed` | boolean | — | no | true |
| `redundantProviders` | boolean | — | no | false |
| `ttlSeconds` | integer | — | no | — |

## Rules for this kind · 1

### Shared dependency without redundancy `shared-dependency-without-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/shared-dependency-without-redundancy.md
- Why: The design requires redundant discovery, but this DNS or coordination service, which everything depends on, runs on a single provider or a single replica. Its failure is the whole system's failure.
- Applies to: every node of kind dns or coordination-service
- Message: Shared dependency '{{node.id}}' is not redundant, but the design requires redundant discovery.

It fires when:

- all of these hold:
  - the design requirement `availability.discoveryRedundant` is true
  - any of these hold:
    - the node's `redundantProviders` is false
    - the node's `replicated` is false

## Components · 34

### vendor-neutral

- [Generic DNS](https://localhost:3000/catalogue/components/dns.md) `dns` — the kind itself

### alibabacloud

- [Alibaba Cloud DNS](https://localhost:3000/catalogue/components/alibaba-dns.md) `alibaba-dns` — 4 defaults
- [Alibaba Cloud Domain Names](https://localhost:3000/catalogue/components/alibaba-domains.md) `alibaba-domains` — 1 defaults
- [Alibaba Cloud DNS PrivateZone](https://localhost:3000/catalogue/components/alibaba-private-zone.md) `alibaba-private-zone` — 2 defaults

### aws

- [Amazon Application Recovery Controller (ARC)](https://localhost:3000/catalogue/components/aws-application-recovery-controller.md) `aws-application-recovery-controller` — 2 defaults
- [Amazon Route 53 Global Resolver](https://localhost:3000/catalogue/components/aws-route53-global-resolver.md) `aws-route53-global-resolver` — 3 defaults
- [Amazon Route 53 Resolver endpoint](https://localhost:3000/catalogue/components/aws-route53-resolver.md) `aws-route53-resolver` — 5 defaults
- [Amazon Route 53](https://localhost:3000/catalogue/components/route53.md) `route53` — 3 defaults

### azure

- [Azure DNS](https://localhost:3000/catalogue/components/azure-dns.md) `azure-dns` — 2 defaults
- [Azure DNS Private Resolver](https://localhost:3000/catalogue/components/azure-dns-private-resolver.md) `azure-dns-private-resolver` — 2 defaults
- [Azure Private DNS](https://localhost:3000/catalogue/components/azure-private-dns.md) `azure-private-dns` — 2 defaults
- [Azure Traffic Manager](https://localhost:3000/catalogue/components/azure-traffic-manager.md) `azure-traffic-manager` — 2 defaults

### cloudflare

- [Cloudflare DNS](https://localhost:3000/catalogue/components/cloudflare-dns.md) `cloudflare-dns` — 2 defaults
- [Cloudflare Internal DNS](https://localhost:3000/catalogue/components/cloudflare-internal-dns.md) `cloudflare-internal-dns` — 1 defaults
- [Cloudflare Registrar](https://localhost:3000/catalogue/components/cloudflare-registrar.md) `cloudflare-registrar` — 1 defaults
- [Cloudflare Secondary DNS](https://localhost:3000/catalogue/components/cloudflare-secondary-dns.md) `cloudflare-secondary-dns` — 3 defaults

### default

- [BIND 9](https://localhost:3000/catalogue/components/bind.md) `bind` — 2 defaults
- [CoreDNS](https://localhost:3000/catalogue/components/coredns.md) `coredns` — 2 defaults
- [DNS](https://localhost:3000/catalogue/components/dns-resolver.md) `dns-resolver` — 0 defaults
- [dnsmasq](https://localhost:3000/catalogue/components/dnsmasq.md) `dnsmasq` — 3 defaults
- [ExternalDNS](https://localhost:3000/catalogue/components/external-dns.md) `external-dns` — 4 defaults
- [Knot DNS](https://localhost:3000/catalogue/components/knot-dns.md) `knot-dns` — 2 defaults
- [IBM NS1 Connect](https://localhost:3000/catalogue/components/ns1.md) `ns1` — 4 defaults
- [Pi-hole](https://localhost:3000/catalogue/components/pi-hole.md) `pi-hole` — 3 defaults
- [PowerDNS Authoritative Server](https://localhost:3000/catalogue/components/powerdns.md) `powerdns` — 3 defaults
- [Unbound](https://localhost:3000/catalogue/components/unbound.md) `unbound` — 2 defaults

### digitalocean

- [DigitalOcean DNS](https://localhost:3000/catalogue/components/digitalocean-dns.md) `digitalocean-dns` — 1 defaults

### gcp

- [Google Cloud DNS](https://localhost:3000/catalogue/components/google-cloud-dns.md) `google-cloud-dns` — 2 defaults
- [Cloud Domains](https://localhost:3000/catalogue/components/google-cloud-domains.md) `google-cloud-domains` — 1 defaults

### ibm

- [IBM Cloud DNS Services](https://localhost:3000/catalogue/components/ibm-dns-services.md) `ibm-dns-services` — 2 defaults

### oci

- [DNS Private Zone](https://localhost:3000/catalogue/components/oci-dns-private-zone.md) `oci-dns-private-zone` — 5 defaults
- [DNS Public Zone](https://localhost:3000/catalogue/components/oci-dns-zone.md) `oci-dns-zone` — 5 defaults
- [Traffic Management Steering Policy](https://localhost:3000/catalogue/components/oci-traffic-management.md) `oci-traffic-management` — 3 defaults

### openstack

- [OpenStack Designate](https://localhost:3000/catalogue/components/openstack-designate.md) `openstack-designate` — 1 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Name resolution and traffic steering (Route 53, Cloud DNS, anycast DNS, internal service DNS).
# redundantProviders defaults false so shared-dependency-without-redundancy can fire.
schemaVersion: "1"
type: "kind"
id: "dns"
category: "edge"
properties:
  anycast:
    type: "boolean"
    default: false
  geoRouting:
    type: "boolean"
    default: false
  healthChecked:
    type: "boolean"
    default: false
  ttlSeconds:
    type: "integer"
  redundantProviders:
    type: "boolean"
    default: false
  managed:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/kinds/dns
