# CoreDNS Integration Guide

**Version**: 1.0.0
**Date**: 2025-10-06
**Author**: CoreDNS Integration Agent

## Table of Contents

1. [Overview](#overview)
2. [Installation](#installation)
3. [Configuration](#configuration)
4. [CLI Commands](#cli-commands)
5. [Zone Management](#zone-management)
6. [Record Management](#record-management)
7. [Docker Deployment](#docker-deployment)
8. [Integration](#integration)
9. [Troubleshooting](#troubleshooting)
10. [Advanced Topics](#advanced-topics)

---

## Overview

The CoreDNS integration provides comprehensive DNS management capabilities for the provisioning system. It supports:

- **Local DNS service** - Run CoreDNS as binary or Docker container
- **Dynamic DNS updates** - Automatic registration of infrastructure changes
- **Multi-zone support** - Manage multiple DNS zones
- **Provider integration** - Seamless integration with orchestrator
- **REST API** - Programmatic DNS management
- **Docker deployment** - Containerized CoreDNS with docker-compose

### Key Features

✅ **Automatic Server Registration** - Servers automatically registered in DNS on creation
✅ **Zone File Management** - Create, update, and manage zone files programmatically
✅ **Multiple Deployment Modes** - Binary, Docker, remote, or hybrid
✅ **Health Monitoring** - Built-in health checks and metrics
✅ **CLI Interface** - Comprehensive command-line tools
✅ **API Integration** - REST API for external integration

---

## Installation

### Prerequisites

- **Nushell 0.107+** - For CLI and scripts
- **Docker** (optional) - For containerized deployment
- **dig** (optional) - For DNS queries

### Install CoreDNS Binary

```bash
# Install latest version
provisioning dns install

# Install specific version
provisioning dns install 1.11.1

# Check mode
provisioning dns install --check
```plaintext

The binary will be installed to `~/.provisioning/bin/coredns`.

### Verify Installation

```bash
# Check CoreDNS version
~/.provisioning/bin/coredns -version

# Verify installation
ls -lh ~/.provisioning/bin/coredns
```plaintext

---

## Configuration

### Nickel Configuration Schema

Add CoreDNS configuration to your infrastructure config:

```nickel
# In workspace/infra/{name}/config.ncl
let coredns_config = {
  mode = "local",

  local = {
    enabled = true,
    deployment_type = "binary",  # or "docker"
    binary_path = "~/.provisioning/bin/coredns",
    config_path = "~/.provisioning/coredns/Corefile",
    zones_path = "~/.provisioning/coredns/zones",
    port = 5353,
    auto_start = true,
    zones = ["provisioning.local", "workspace.local"],
  },

  dynamic_updates = {
    enabled = true,
    api_endpoint = "http://localhost:9090/dns",
    auto_register_servers = true,
    auto_unregister_servers = true,
    ttl = 300,
  },

  upstream = ["8.8.8.8", "1.1.1.1"],
  default_ttl = 3600,
  enable_logging = true,
  enable_metrics = true,
  metrics_port = 9153,
} in
coredns_config
```plaintext

### Configuration Modes

#### Local Mode (Binary)

Run CoreDNS as a local binary process:

```nickel
let coredns_config = {
  mode = "local",
  local = {
    deployment_type = "binary",
    auto_start = true,
  },
} in
coredns_config
```plaintext

#### Local Mode (Docker)

Run CoreDNS in Docker container:

```nickel
let coredns_config = {
  mode = "local",
  local = {
    deployment_type = "docker",
    docker = {
      image = "coredns/coredns:1.11.1",
      container_name = "provisioning-coredns",
      restart_policy = "unless-stopped",
    },
  },
} in
coredns_config
```plaintext

#### Remote Mode

Connect to external CoreDNS service:

```nickel
let coredns_config = {
  mode = "remote",
  remote = {
    enabled = true,
    endpoints = ["https://dns1.example.com", "https://dns2.example.com"],
    zones = ["production.local"],
    verify_tls = true,
  },
} in
coredns_config
```plaintext

#### Disabled Mode

Disable CoreDNS integration:

```nickel
let coredns_config = {
  mode = "disabled",
} in
coredns_config
```plaintext

---

## CLI Commands

### Service Management

```bash
# Check status
provisioning dns status

# Start service
provisioning dns start

# Start in foreground (for debugging)
provisioning dns start --foreground

# Stop service
provisioning dns stop

# Restart service
provisioning dns restart

# Reload configuration (graceful)
provisioning dns reload

# View logs
provisioning dns logs

# Follow logs
provisioning dns logs --follow

# Show last 100 lines
provisioning dns logs --lines 100
```plaintext

### Health & Monitoring

```bash
# Check health
provisioning dns health

# View configuration
provisioning dns config show

# Validate configuration
provisioning dns config validate

# Generate new Corefile
provisioning dns config generate
```plaintext

---

## Zone Management

### List Zones

```bash
# List all zones
provisioning dns zone list
```plaintext

**Output:**

```plaintext
DNS Zones
=========
  • provisioning.local ✓
  • workspace.local ✓
```plaintext

### Create Zone

```bash
# Create new zone
provisioning dns zone create myapp.local

# Check mode
provisioning dns zone create myapp.local --check
```plaintext

### Show Zone Details

```bash
# Show all records in zone
provisioning dns zone show provisioning.local

# JSON format
provisioning dns zone show provisioning.local --format json

# YAML format
provisioning dns zone show provisioning.local --format yaml
```plaintext

### Delete Zone

```bash
# Delete zone (with confirmation)
provisioning dns zone delete myapp.local

# Force deletion (skip confirmation)
provisioning dns zone delete myapp.local --force

# Check mode
provisioning dns zone delete myapp.local --check
```plaintext

---

## Record Management

### Add Records

#### A Record (IPv4)

```bash
provisioning dns record add server-01 A 10.0.1.10

# With custom TTL
provisioning dns record add server-01 A 10.0.1.10 --ttl 600

# With comment
provisioning dns record add server-01 A 10.0.1.10 --comment "Web server"

# Different zone
provisioning dns record add server-01 A 10.0.1.10 --zone myapp.local
```plaintext

#### AAAA Record (IPv6)

```bash
provisioning dns record add server-01 AAAA 2001:db8::1
```plaintext

#### CNAME Record

```bash
provisioning dns record add web CNAME server-01.provisioning.local
```plaintext

#### MX Record

```bash
provisioning dns record add @ MX mail.example.com --priority 10
```plaintext

#### TXT Record

```bash
provisioning dns record add @ TXT "v=spf1 mx -all"
```plaintext

### Remove Records

```bash
# Remove record
provisioning dns record remove server-01

# Different zone
provisioning dns record remove server-01 --zone myapp.local

# Check mode
provisioning dns record remove server-01 --check
```plaintext

### Update Records

```bash
# Update record value
provisioning dns record update server-01 A 10.0.1.20

# With new TTL
provisioning dns record update server-01 A 10.0.1.20 --ttl 1800
```plaintext

### List Records

```bash
# List all records in zone
provisioning dns record list

# Different zone
provisioning dns record list --zone myapp.local

# JSON format
provisioning dns record list --format json

# YAML format
provisioning dns record list --format yaml
```plaintext

**Example Output:**

```plaintext
DNS Records - Zone: provisioning.local

╭───┬──────────────┬──────┬─────────────┬─────╮
│ # │     name     │ type │    value    │ ttl │
├───┼──────────────┼──────┼─────────────┼─────┤
│ 0 │ server-01    │ A    │ 10.0.1.10   │ 300 │
│ 1 │ server-02    │ A    │ 10.0.1.11   │ 300 │
│ 2 │ db-01        │ A    │ 10.0.2.10   │ 300 │
│ 3 │ web          │ CNAME│ server-01   │ 300 │
╰───┴──────────────┴──────┴─────────────┴─────╯
```plaintext

---

## Docker Deployment

### Prerequisites

Ensure Docker and docker-compose are installed:

```bash
docker --version
docker-compose --version
```plaintext

### Start CoreDNS in Docker

```bash
# Start CoreDNS container
provisioning dns docker start

# Check mode
provisioning dns docker start --check
```plaintext

### Manage Docker Container

```bash
# Check status
provisioning dns docker status

# View logs
provisioning dns docker logs

# Follow logs
provisioning dns docker logs --follow

# Restart container
provisioning dns docker restart

# Stop container
provisioning dns docker stop

# Check health
provisioning dns docker health
```plaintext

### Update Docker Image

```bash
# Pull latest image
provisioning dns docker pull

# Pull specific version
provisioning dns docker pull --version 1.11.1

# Update and restart
provisioning dns docker update
```plaintext

### Remove Container

```bash
# Remove container (with confirmation)
provisioning dns docker remove

# Remove with volumes
provisioning dns docker remove --volumes

# Force remove (skip confirmation)
provisioning dns docker remove --force

# Check mode
provisioning dns docker remove --check
```plaintext

### View Configuration

```bash
# Show docker-compose config
provisioning dns docker config
```plaintext

---

## Integration

### Automatic Server Registration

When dynamic DNS is enabled, servers are automatically registered:

```bash
# Create server (automatically registers in DNS)
provisioning server create web-01 --infra myapp

# Server gets DNS record: web-01.provisioning.local -> <server-ip>
```plaintext

### Manual Registration

```nushell
use lib_provisioning/coredns/integration.nu *

# Register server
register-server-in-dns "web-01" "10.0.1.10"

# Unregister server
unregister-server-from-dns "web-01"

# Bulk register
bulk-register-servers [
    {hostname: "web-01", ip: "10.0.1.10"}
    {hostname: "web-02", ip: "10.0.1.11"}
    {hostname: "db-01", ip: "10.0.2.10"}
]
```plaintext

### Sync Infrastructure with DNS

```bash
# Sync all servers in infrastructure with DNS
provisioning dns sync myapp

# Check mode
provisioning dns sync myapp --check
```plaintext

### Service Registration

```nushell
use lib_provisioning/coredns/integration.nu *

# Register service
register-service-in-dns "api" "10.0.1.10"

# Unregister service
unregister-service-from-dns "api"
```plaintext

---

## Query DNS

### Using CLI

```bash
# Query A record
provisioning dns query server-01

# Query specific type
provisioning dns query server-01 --type AAAA

# Query different server
provisioning dns query server-01 --server 8.8.8.8 --port 53

# Query from local CoreDNS
provisioning dns query server-01 --server 127.0.0.1 --port 5353
```plaintext

### Using dig

```bash
# Query from local CoreDNS
dig @127.0.0.1 -p 5353 server-01.provisioning.local

# Query CNAME
dig @127.0.0.1 -p 5353 web.provisioning.local CNAME

# Query MX
dig @127.0.0.1 -p 5353 example.com MX
```plaintext

---

## Troubleshooting

### CoreDNS Not Starting

**Symptoms:** `dns start` fails or service doesn't respond

**Solutions:**

1. **Check if port is in use:**

   ```bash
   lsof -i :5353
   netstat -an | grep 5353
   ```

1. **Validate Corefile:**

   ```bash
   provisioning dns config validate
   ```

2. **Check logs:**

   ```bash
   provisioning dns logs
   tail -f ~/.provisioning/coredns/coredns.log
   ```

3. **Verify binary exists:**

   ```bash
   ls -lh ~/.provisioning/bin/coredns
   provisioning dns install
   ```

### DNS Queries Not Working

**Symptoms:** `dig` returns SERVFAIL or timeout

**Solutions:**

1. **Check CoreDNS is running:**

   ```bash
   provisioning dns status
   provisioning dns health
   ```

2. **Verify zone file exists:**

   ```bash
   ls -lh ~/.provisioning/coredns/zones/
   cat ~/.provisioning/coredns/zones/provisioning.local.zone
   ```

3. **Test with dig:**

   ```bash
   dig @127.0.0.1 -p 5353 provisioning.local SOA
   ```

4. **Check firewall:**

   ```bash
   # macOS
   sudo pfctl -sr | grep 5353

   # Linux
   sudo iptables -L -n | grep 5353
   ```

### Zone File Validation Errors

**Symptoms:** `dns config validate` shows errors

**Solutions:**

1. **Backup zone file:**

   ```bash
   cp ~/.provisioning/coredns/zones/provisioning.local.zone \
      ~/.provisioning/coredns/zones/provisioning.local.zone.backup
   ```

2. **Regenerate zone:**

   ```bash
   provisioning dns zone create provisioning.local --force
   ```

3. **Check syntax manually:**

   ```bash
   cat ~/.provisioning/coredns/zones/provisioning.local.zone
   ```

4. **Increment serial:**
   - Edit zone file manually
   - Increase serial number in SOA record

### Docker Container Issues

**Symptoms:** Docker container won't start or crashes

**Solutions:**

1. **Check Docker logs:**

   ```bash
   provisioning dns docker logs
   docker logs provisioning-coredns
   ```

2. **Verify volumes exist:**

   ```bash
   ls -lh ~/.provisioning/coredns/
   ```

3. **Check container status:**

   ```bash
   provisioning dns docker status
   docker ps -a | grep coredns
   ```

4. **Recreate container:**

   ```bash
   provisioning dns docker stop
   provisioning dns docker remove --volumes
   provisioning dns docker start
   ```

### Dynamic Updates Not Working

**Symptoms:** Servers not auto-registered in DNS

**Solutions:**

1. **Check if enabled:**

   ```bash
   provisioning dns config show | grep -A 5 dynamic_updates
   ```

2. **Verify orchestrator running:**

   ```bash
   curl http://localhost:9090/health
   ```

3. **Check logs for errors:**

   ```bash
   provisioning dns logs | grep -i error
   ```

4. **Test manual registration:**

   ```nushell
   use lib_provisioning/coredns/integration.nu *
   register-server-in-dns "test-server" "10.0.0.1"
   ```

---

## Advanced Topics

### Custom Corefile Plugins

Add custom plugins to Corefile:

```nushell
use lib_provisioning/coredns/corefile.nu *

# Add plugin to zone
add-corefile-plugin \
    "~/.provisioning/coredns/Corefile" \
    "provisioning.local" \
    "cache 30"
```plaintext

### Backup and Restore

```bash
# Backup configuration
tar czf coredns-backup.tar.gz ~/.provisioning/coredns/

# Restore configuration
tar xzf coredns-backup.tar.gz -C ~/
```plaintext

### Zone File Backup

```nushell
use lib_provisioning/coredns/zones.nu *

# Backup zone
backup-zone-file "provisioning.local"

# Creates: ~/.provisioning/coredns/zones/provisioning.local.zone.YYYYMMDD-HHMMSS.bak
```plaintext

### Metrics and Monitoring

CoreDNS exposes Prometheus metrics on port 9153:

```bash
# View metrics
curl http://localhost:9153/metrics

# Common metrics:
# - coredns_dns_request_duration_seconds
# - coredns_dns_requests_total
# - coredns_dns_responses_total
```plaintext

### Multi-Zone Setup

```kcl
coredns_config: CoreDNSConfig = {
    local = {
        zones = [
            "provisioning.local",
            "workspace.local",
            "dev.local",
            "staging.local",
            "prod.local"
        ]
    }
}
```plaintext

### Split-Horizon DNS

Configure different zones for internal/external:

```kcl
coredns_config: CoreDNSConfig = {
    local = {
        zones = ["internal.local"]
        port = 5353
    }
    remote = {
        zones = ["external.com"]
        endpoints = ["https://dns.external.com"]
    }
}
```plaintext

---

## Configuration Reference

### CoreDNSConfig Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | `"local" \| "remote" \| "hybrid" \| "disabled"` | `"local"` | Deployment mode |
| `local` | `LocalCoreDNS?` | - | Local config (required for local mode) |
| `remote` | `RemoteCoreDNS?` | - | Remote config (required for remote mode) |
| `dynamic_updates` | `DynamicDNS` | - | Dynamic DNS configuration |
| `upstream` | `[str]` | `["8.8.8.8", "1.1.1.1"]` | Upstream DNS servers |
| `default_ttl` | `int` | `300` | Default TTL (seconds) |
| `enable_logging` | `bool` | `True` | Enable query logging |
| `enable_metrics` | `bool` | `True` | Enable Prometheus metrics |
| `metrics_port` | `int` | `9153` | Metrics port |

### LocalCoreDNS Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `enabled` | `bool` | `True` | Enable local CoreDNS |
| `deployment_type` | `"binary" \| "docker"` | `"binary"` | How to deploy |
| `binary_path` | `str` | `"~/.provisioning/bin/coredns"` | Path to binary |
| `config_path` | `str` | `"~/.provisioning/coredns/Corefile"` | Corefile path |
| `zones_path` | `str` | `"~/.provisioning/coredns/zones"` | Zones directory |
| `port` | `int` | `5353` | DNS listening port |
| `auto_start` | `bool` | `True` | Auto-start on boot |
| `zones` | `[str]` | `["provisioning.local"]` | Managed zones |

### DynamicDNS Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `enabled` | `bool` | `True` | Enable dynamic updates |
| `api_endpoint` | `str` | `"http://localhost:9090/dns"` | Orchestrator API |
| `auto_register_servers` | `bool` | `True` | Auto-register on create |
| `auto_unregister_servers` | `bool` | `True` | Auto-unregister on delete |
| `ttl` | `int` | `300` | TTL for dynamic records |
| `update_strategy` | `"immediate" \| "batched" \| "scheduled"` | `"immediate"` | Update strategy |

---

## Examples

### Complete Setup Example

```bash
# 1. Install CoreDNS
provisioning dns install

# 2. Generate configuration
provisioning dns config generate

# 3. Start service
provisioning dns start

# 4. Create custom zone
provisioning dns zone create myapp.local

# 5. Add DNS records
provisioning dns record add web-01 A 10.0.1.10
provisioning dns record add web-02 A 10.0.1.11
provisioning dns record add api CNAME web-01.myapp.local --zone myapp.local

# 6. Query records
provisioning dns query web-01 --server 127.0.0.1 --port 5353

# 7. Check status
provisioning dns status
provisioning dns health
```plaintext

### Docker Deployment Example

```bash
# 1. Start CoreDNS in Docker
provisioning dns docker start

# 2. Check status
provisioning dns docker status

# 3. View logs
provisioning dns docker logs --follow

# 4. Add records (container must be running)
provisioning dns record add server-01 A 10.0.1.10

# 5. Query
dig @127.0.0.1 -p 5353 server-01.provisioning.local

# 6. Stop
provisioning dns docker stop
```plaintext

---

## Best Practices

1. **Use TTL wisely** - Lower TTL (300s) for frequently changing records, higher (3600s) for stable
2. **Enable logging** - Essential for troubleshooting
3. **Regular backups** - Backup zone files before major changes
4. **Validate before reload** - Always run `dns config validate` before reloading
5. **Monitor metrics** - Track DNS query rates and error rates
6. **Use comments** - Add comments to records for documentation
7. **Separate zones** - Use different zones for different environments (dev, staging, prod)

---

## See Also

- [Architecture Documentation](../architecture/coredns-architecture.md)
- [API Reference](../api/dns-api.md)
- [Orchestrator Integration](../integration/orchestrator-dns.md)
- KCL Schema Reference

---

## Quick Reference

**Quick command reference for CoreDNS DNS management**

---

### Installation

```bash
# Install CoreDNS binary
provisioning dns install

# Install specific version
provisioning dns install 1.11.1
```plaintext

---

### Service Management

```bash
# Status
provisioning dns status

# Start
provisioning dns start

# Stop
provisioning dns stop

# Restart
provisioning dns restart

# Reload (graceful)
provisioning dns reload

# Logs
provisioning dns logs
provisioning dns logs --follow
provisioning dns logs --lines 100

# Health
provisioning dns health
```plaintext

---

### Zone Management

```bash
# List zones
provisioning dns zone list

# Create zone
provisioning dns zone create myapp.local

# Show zone records
provisioning dns zone show provisioning.local
provisioning dns zone show provisioning.local --format json

# Delete zone
provisioning dns zone delete myapp.local
provisioning dns zone delete myapp.local --force
```plaintext

---

### Record Management

```bash
# Add A record
provisioning dns record add server-01 A 10.0.1.10

# Add with custom TTL
provisioning dns record add server-01 A 10.0.1.10 --ttl 600

# Add with comment
provisioning dns record add server-01 A 10.0.1.10 --comment "Web server"

# Add to specific zone
provisioning dns record add server-01 A 10.0.1.10 --zone myapp.local

# Add CNAME
provisioning dns record add web CNAME server-01.provisioning.local

# Add MX
provisioning dns record add @ MX mail.example.com --priority 10

# Add TXT
provisioning dns record add @ TXT "v=spf1 mx -all"

# Remove record
provisioning dns record remove server-01
provisioning dns record remove server-01 --zone myapp.local

# Update record
provisioning dns record update server-01 A 10.0.1.20

# List records
provisioning dns record list
provisioning dns record list --zone myapp.local
provisioning dns record list --format json
```plaintext

---

### DNS Queries

```bash
# Query A record
provisioning dns query server-01

# Query CNAME
provisioning dns query web --type CNAME

# Query from local CoreDNS
provisioning dns query server-01 --server 127.0.0.1 --port 5353

# Using dig
dig @127.0.0.1 -p 5353 server-01.provisioning.local
dig @127.0.0.1 -p 5353 provisioning.local SOA
```plaintext

---

### Configuration

```bash
# Show configuration
provisioning dns config show

# Validate configuration
provisioning dns config validate

# Generate Corefile
provisioning dns config generate
```plaintext

---

### Docker Deployment

```bash
# Start Docker container
provisioning dns docker start

# Status
provisioning dns docker status

# Logs
provisioning dns docker logs
provisioning dns docker logs --follow

# Restart
provisioning dns docker restart

# Stop
provisioning dns docker stop

# Health
provisioning dns docker health

# Remove
provisioning dns docker remove
provisioning dns docker remove --volumes
provisioning dns docker remove --force

# Pull image
provisioning dns docker pull
provisioning dns docker pull --version 1.11.1

# Update
provisioning dns docker update

# Show config
provisioning dns docker config
```plaintext

---

### Common Workflows

#### Initial Setup

```bash
# 1. Install
provisioning dns install

# 2. Start
provisioning dns start

# 3. Verify
provisioning dns status
provisioning dns health
```plaintext

#### Add Server

```bash
# Add DNS record for new server
provisioning dns record add web-01 A 10.0.1.10

# Verify
provisioning dns query web-01
```plaintext

#### Create Custom Zone

```bash
# 1. Create zone
provisioning dns zone create myapp.local

# 2. Add records
provisioning dns record add web-01 A 10.0.1.10 --zone myapp.local
provisioning dns record add api CNAME web-01.myapp.local --zone myapp.local

# 3. List records
provisioning dns record list --zone myapp.local

# 4. Query
dig @127.0.0.1 -p 5353 web-01.myapp.local
```plaintext

#### Docker Setup

```bash
# 1. Start container
provisioning dns docker start

# 2. Check status
provisioning dns docker status

# 3. Add records
provisioning dns record add server-01 A 10.0.1.10

# 4. Query
dig @127.0.0.1 -p 5353 server-01.provisioning.local
```plaintext

---

### Troubleshooting

```bash
# Check if CoreDNS is running
provisioning dns status
ps aux | grep coredns

# Check port usage
lsof -i :5353
netstat -an | grep 5353

# View logs
provisioning dns logs
tail -f ~/.provisioning/coredns/coredns.log

# Validate configuration
provisioning dns config validate

# Test DNS query
dig @127.0.0.1 -p 5353 provisioning.local SOA

# Restart service
provisioning dns restart

# For Docker
provisioning dns docker logs
provisioning dns docker health
docker ps -a | grep coredns
```plaintext

---

### File Locations

```bash
# Binary
~/.provisioning/bin/coredns

# Corefile
~/.provisioning/coredns/Corefile

# Zone files
~/.provisioning/coredns/zones/

# Logs
~/.provisioning/coredns/coredns.log

# PID file
~/.provisioning/coredns/coredns.pid

# Docker compose
provisioning/config/coredns/docker-compose.yml
```plaintext

---

### Configuration Example

```kcl
import provisioning.coredns as dns

coredns_config: dns.CoreDNSConfig = {
    mode = "local"
    local = {
        enabled = True
        deployment_type = "binary"  # or "docker"
        port = 5353
        zones = ["provisioning.local", "myapp.local"]
    }
    dynamic_updates = {
        enabled = True
        auto_register_servers = True
    }
    upstream = ["8.8.8.8", "1.1.1.1"]
}
```plaintext

---

### Environment Variables

```bash
# None required - configuration via KCL
```plaintext

---

### Default Values

| Setting | Default |
|---------|---------|
| Port | 5353 |
| Zones | ["provisioning.local"] |
| Upstream | ["8.8.8.8", "1.1.1.1"] |
| TTL | 300 |
| Deployment | binary |
| Auto-start | true |
| Logging | enabled |
| Metrics | enabled |
| Metrics Port | 9153 |

---

## See Also

- [Complete Guide](COREDNS_GUIDE.md) - Full documentation
- Implementation Summary - Technical details
- KCL Schema - Configuration schema

---

**Last Updated**: 2025-10-06
**Version**: 1.0.0
