diff --git a/defaults/main.yaml b/defaults/main.yaml index f08b22e..a2934dd 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -20,3 +20,14 @@ unbound_zones: - name: "server.example.internal" value: "192.168.1.0" + + - name: "example.internal" + type: "TXT" + value: "v=spf1 include:example.internal ~all" + + - name: "_sip._tcp.example.internal" + type: "SRV" + priority: 10 + weight: 60 + port: 5060 + value: "server.example.internal" diff --git a/readme.md b/readme.md index 9f9dab5..ac06fb5 100644 --- a/readme.md +++ b/readme.md @@ -31,4 +31,25 @@ unbound_zones: value: "10.0.1.10" - name: "server2.internal.example.com" value: "10.0.1.11" + - name: "internal.example.com" + type: "TXT" + value: "v=spf1 include:internal.example.com ~all" + - name: "_sip._tcp.internal.example.com" + type: "SRV" + priority: 10 + weight: 60 + port: 5060 + value: "server1.internal.example.com" ``` + +## Supported Record Types + +| Type | Required Fields | Description | +|------|----------------|-------------| +| `A` (default) | `name`, `value` | IPv4 address record | +| `AAAA` | `name`, `value`, `type` | IPv6 address record | +| `CNAME` | `name`, `value`, `type` | Canonical name | +| `MX` | `name`, `value`, `type`, `priority` | Mail exchange | +| `TXT` | `name`, `value`, `type` | Text record | +| `SRV` | `name`, `value`, `type`, `priority`, `weight`, `port` | Service locator | +| `PTR` | `name`, `value`, `type` | Pointer record | diff --git a/templates/unbound/zones.conf.j2 b/templates/unbound/zones.conf.j2 index b2f5499..f9f18b3 100644 --- a/templates/unbound/zones.conf.j2 +++ b/templates/unbound/zones.conf.j2 @@ -10,6 +10,8 @@ server: local-data: "{{ record.name }}. IN CNAME {{ record.value }}" {% elif record.get('type', 'A') == 'TXT' %} local-data: "{{ record.name }}. IN TXT \"{{ record.value }}\"" +{% elif record.get('type', 'A') == 'SRV' %} + local-data: "{{ record.name }}. IN SRV {{ record.priority }} {{ record.weight }} {{ record.port }} {{ record.value }}." {% elif record.get('type', 'A') == 'PTR' %} local-data: "{{ record.name }}. IN PTR {{ record.value }}" {% else %}