Compare commits

...

2 commits

Author SHA1 Message Date
62e24a1659
disable systemd-resolved on auth-dns
All checks were successful
/ Ansible Lint (push) Successful in 2m20s
/ Ansible Lint (pull_request) Successful in 2m17s
2026-05-01 18:17:15 +02:00
2abdbe376c
add barebones knot config
This configuration does not yet do much but it provisions a knot
server that runs.
2026-04-30 23:19:44 +02:00
4 changed files with 86 additions and 0 deletions

View file

@ -0,0 +1,8 @@
---
deploy_systemd_resolved_config__enable: false
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,64 @@
# {{ ansible_managed }}
# See knot.conf(5) or refer to the server documentation.
server:
rundir: "/rundir"
user: knot:knot
automatic-acl: on
listen: [ "212.12.48.124", "2a00:14b0:4200:3000:124::1" ]
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" #}