wip: add basic knot config
Some checks failed
/ Ansible Lint (push) Failing after 2m23s

This commit is contained in:
lilly 2026-04-29 22:44:20 +02:00
commit 8588a8a6ac
Signed by: lilly
SSH key fingerprint: SHA256:y9T5GFw2A20WVklhetIxG1+kcg/Ce0shnQmbu1LQ37g
4 changed files with 87 additions and 0 deletions

View file

@ -0,0 +1,6 @@
docker_compose__compose_file_content: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/auth-dns/docker_compose/compose.yaml.j2') }}"
docker_compose__configuration_files:
- name: "knot.conf"
content: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/auth-dns/docker_compose/knot.conf.j2') }}"

View file

@ -155,6 +155,7 @@ docker_compose_hosts:
sunders:
spaceapiccc:
mjolnir:
auth-dns:
nextcloud_hosts:
hosts:
cloud:

View file

@ -0,0 +1,13 @@
# Links & Resources
# https://www.knot-dns.cz/docs/latest/html/index.html
services:
knot:
image: docker.io/cznic/knot:v3.5.4
restart: unless-stopped
command: "knotd"
network_mode: host
volumes:
- ./configs:/config:ro
- ./storage:/storage

View file

@ -0,0 +1,67 @@
# {{ ansible_managed }}
# See knot.conf(5) or refer to the server documentation.
server:
rundir: "/rundir"
user: knot:knot
automatic-acl: on
{% for i in (ansible_all_ipv4_addresses + ansible_all_ipv6_addresses) -%}
listen: "{{ i }}"
{% endfor %}
{# listen: [ "{{ ansible_default_ipv4.address }}@53", "{{ ansible_default_ipv6.address }}@53" ] #}
log:
- target: stderr
any: info
database:
storage: "/storage"
key:
- id: auth-dns.hamburg.ccc.de
algorithm: hmac-sha512
secret: ""
remote:
- id: quad9
address: "2620:fe::fe"
# define how the presence of parent KSK keys is checked
# in this case, we just ask quad9 which is an open resolver
submission:
- id: default
parent: quad9
parent-delay: 1h
# define how dnssec signing is done
# in this case we don't do anything special but teach knot how to check of KSK presence
policy:
- id: default
ksk-submission: default
nsec3: true
nsec3-salt-length: 0
# define default settings that apply to all zones
template:
- id: default
storage: "/config/zones"
file: "%s.zone"
semantic-checks: on
zonefile-sync: -1
zonefile-load: difference-no-serial
journal-content: all
default-ttl: 60
catalog-role: member
catalog-zone: hamburg.ccc.de.catalog.
dnssec-signing: on
dnssec-policy: default
{# notify: ["ns1.hanse.de", "ns.bsd.network."] #}
- id: minimal
{# notify: ["ns1.hanse.de", "ns.bsd.network."] #}
zone:
{# - domain: onsite.eurofurence.catalog. #}
{# template: minimal #}
{# catalog-role: generate #}
{# - domain: "onsite.eurofurence.org" #}