|
1 |
| -## Domain Name Service (DNS) |
| 1 | +# Domain Name Service (DNS) Overview |
2 | 2 |
|
3 |
| -The central DNS infrastructure provides the structural networking hierarchy and datastore for the system. All DNS requests are managed by resolvers, not by the central DNS infrastructure. Resolvers provide the following within DNS: |
| 3 | +## DNS Architecture |
4 | 4 |
|
5 |
| -- Security by scoping requests from clients. |
| 5 | +This diagram shows how the various components of the DNS infrastructure interact. |
6 | 6 |
|
7 |
| - For example, disallowing cross-network DNS lookups. |
| 7 | + |
8 | 8 |
|
9 |
| -- Load reduction on the central DNS infrastructure: |
10 |
| - - Caching requests and handling scoping requests. |
11 |
| - - Providing request recursion where necessary. |
| 9 | +## DNS Components |
12 | 10 |
|
13 |
| -The Data Helper Tools are used to update records, and takes in changes from the following sources: |
| 11 | +The DNS infrastructure is comprised of a number of components. |
14 | 12 |
|
15 |
| -- Hardware State Manager \(HSM\): Uses the System Layout Service \(SLS\) and the State Manager Daemon \(SMD\) to create a system-of-record for all machine hardware resources. The tooling creates and updates DNS records upon system install or during hardware changes. |
16 |
| -- Kubernetes: DNS records are created and updated dynamically. |
| 13 | +### Unbound (cray-dns-unbound) |
17 | 14 |
|
18 |
| -The following figure shows a high-level overview of the various components used in the DNS infrastructure. |
| 15 | +Unbound is a caching DNS resolver which is also used as the primary DNS server. |
19 | 16 |
|
20 |
| - |
| 17 | +The DNS records served by Unbound include system component xnames, node hostnames, and service names and these records are read from the cray-dns-unbound ConfigMap which is populated by cray-dns-unbound-manager. |
21 | 18 |
|
22 |
| -### Table of Contents |
| 19 | +The DNS server functionality will be migrated to PowerDNS in a future release leaving Unbound acting purely as a caching DNS resolver. |
23 | 20 |
|
24 |
| -* [Manage the DNS Unbound Resolver](Manage_the_DNS_Unbound_Resolver.md) |
25 |
| -* [Enable ncsd on UANs](Enable_ncsd_on_UANs.md) |
26 |
| -* [Troubleshoot Common DNS Issues](Troubleshoot_Common_DNS_Issues.md) |
27 |
| -* [Troubleshoot DNS Configuration Issues](Troubleshoot_DNS_Configuration_Issues.md) |
| 21 | +Unbound also forwards queries to PowerDNS or the site DNS server if the query cannot be answered by local data. |
28 | 22 |
|
| 23 | +### Unbound Manager (cray-dns-unbound-manager) |
29 | 24 |
|
| 25 | +The cray-dns-unbound-manager cron job runs every three minutes and queries the System Layout Service, the Hardware State Manager, and the Kea DHCP server for new or changed hardware components and creates DNS records for these components in the cray-dns-unbound ConfigMap. |
| 26 | + |
| 27 | +This job also initiates a rolling restart of Unbound if the cray-dns-unbound ConfigMap was modified. |
| 28 | + |
| 29 | +### Kubernetes DNS (coredns) |
| 30 | + |
| 31 | +Kubernetes creates DNS records for services and pods. A CoreDNS server running in the kube-system namespace is used for this purpose. |
| 32 | + |
| 33 | +The CoreDNS service is also configured to forward DNS requests to Unbound in order to allow pods to resolve system hardware components and other services. This configuration is performed by the cray-dns-unbound-coredns job which is invoked whenever the cray-dns-unbound Helm chart is deployed or upgraded. |
| 34 | + |
| 35 | +See the [Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) for more information. |
| 36 | + |
| 37 | +### ExternalDNS (cray-externaldns-external-dns) |
| 38 | + |
| 39 | +ExternalDNS creates DNS records for services that are intended to be accessible via the Customer Access Network (CAN). For example grafana.wasp.dev.cray.com. |
| 40 | + |
| 41 | +Kubernetes Services annotated with `external-dns.alpha.kubernetes.io/hostname` have DNS records created. |
| 42 | + |
| 43 | +Starting with CSM version 1.1 these DNS records are created in the PowerDNS server. Earlier versions of CSM used a dedicated CoreDNS server for ExternalDNS. |
| 44 | + |
| 45 | +> Only DNS A records are created as ExternalDNS currently does not support the creation of the PTR records required for reverse lookup. |
| 46 | +
|
| 47 | +### PowerDNS (cray-dns-powerdns) |
| 48 | + |
| 49 | +PowerDNS is an authoritative DNS server which over the next few CSM releases will replace Unbound sa the primary DNS server within a CSM system. |
| 50 | + |
| 51 | +PowerDNS is able to respond to queries for services accessible via the CAN. records are externally accessible via the LoadBalancer IP address specified for the CSI `--can-external-dns` option. |
| 52 | + |
| 53 | +As with earlier CSM releases it is possible to delegate to PowerDNS to resolve CAN services and it is also possible to configure zone transfer to sync the DNS records from PowerDNS to Site DNS. |
| 54 | + |
| 55 | +### PowerDNS Manager (cray-powerdns-manager) |
| 56 | + |
| 57 | +The PowerDNS Manager serves a similar purpose to the Unbound Manager. It runs in the background and periodically queries the System Layout Service, the Hardware State Manager, and the Kea DHCP server for new or changed hardware components and creates DNS records for these components in PowerDNS. |
| 58 | + |
| 59 | +The PowerDNS Manager also configures the PowerDNS server for zone transfer and DNSSEC if required. |
| 60 | + |
| 61 | +### Site DNS |
| 62 | + |
| 63 | +This term is used to refer the external DNS server specified the CSI `--site-dns` option. |
0 commit comments