/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * SPDX-License-Identifier: MPL-2.0
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0.  If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */

// NS2

options {
	query-source address 10.53.0.2;
	notify-source 10.53.0.2;
	transfer-source 10.53.0.2;
	port @PORT@;
	pid-file "named.pid";
	listen-on { 10.53.0.2; };
	listen-on-v6 { none; };
	allow-transfer { any; };
	recursion no;
	notify yes;
	dnssec-validation yes;
	dnssec-loadkeys-interval 30;
};

key rndc_key {
	secret "1234abcd8765";
	algorithm @DEFAULT_HMAC@;
};

controls {
	inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
};

dnssec-policy "autosign" {
	keys {
		ksk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
		zsk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
	};
};

dnssec-policy "private" {
	keys {
		ksk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
		zsk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
	};

	nsec3param iterations 0 optout no salt-length 2;
};

dnssec-policy "nsec3" {
	keys {
		ksk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
		zsk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
	};

	nsec3param iterations 0 optout no salt-length 0;
};

dnssec-policy "optout" {
	keys {
		ksk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
		zsk key-directory lifetime unlimited algorithm @DEFAULT_ALGORITHM@;
	};

	nsec3param iterations 0 optout yes salt-length 0;
};

zone "." {
	type hint;
	file "../../_common/root.hint";
};

zone "example" {
	type primary;
	file "example.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy autosign;
	sig-signing-type 65280;
};

zone "bar" {
	type primary;
	file "bar.db.signed";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
};

zone "private.secure.example" {
	type primary;
	file "private.secure.example.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy private;
};

zone "insecure.secure.example" {
	type primary;
	file "insecure.secure.example.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy autosign;
};

zone "child.nsec3.example" {
	type primary;
	file "child.nsec3.example.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy nsec3;
};

zone "child.optout.example" {
	type primary;
	file "child.optout.example.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy optout;
};

zone "nsec3-with-ent" {
	type primary;
	file "nsec3-with-ent.db";
	allow-query { any; };
	allow-transfer { any; };
	allow-update { any; };
	inline-signing no;
	dnssec-policy nsec3;
};

include "trusted.conf";
