/*
 * 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.
 */

{% if FEATURE_FIPS_DH == "1" %}
include "named-tls.conf";
{% endif %}

options {
	query-source address 10.53.0.2;
	notify-source 10.53.0.2;
	notify-source-v6 fd92:7065:b8e:ffff::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;
	startup-notify-rate 5;
	dnssec-validation no;

{% if FEATURE_FIPS_DH == "1" %}
	tls-port @TLSPORT@;
	listen-on tls ephemeral { 10.53.0.2; };
	listen-on port @EXTRAPORT1@ tls tls-forward-secrecy { 10.53.0.2; };
	listen-on port @EXTRAPORT3@ tls tls-forward-secrecy-mutual-tls { 10.53.0.2; };
	listen-on port @EXTRAPORT4@ tls tls-expired { 10.53.0.2; };
{% endif %}

};

{% include "_common/controls.conf.j2" %}

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

zone "example" {
	type primary;
	file "example.db";
	// Check that named can handle a empty also-notify.
	also-notify { /* empty */ };
};

remote-servers noport { 10.53.0.4; };
remote-servers x21 port @EXTRAPORT1@ { noport; };

zone x1 {
	type primary;
	file "generic.db";
	also-notify { 10.53.0.3; };
	notify-source 10.53.0.2 port @EXTRAPORT2@;
	notify primary-only;
};
zone x2 {
	type primary;
	file "generic.db";
	also-notify { 10.53.0.3; };
	notify master-only; # test old syntax
};

zone x3 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x4 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x5 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x6 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x7 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x8 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x9 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x10 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x11 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x12 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x13 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x14 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x15 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x16 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x17 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x18 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x19 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x20 { type primary; file "generic.db"; also-notify { 10.53.0.3; }; };
zone x21 { type primary; file "x21.db"; allow-update { any; }; also-notify { x21; }; };

key 10.53.0.53 {
	algorithm hmac-sha256;
	secret "aaaabbbbccccddddeeeeffffgggghhhhiiii";
};

server 10.53.0.53 {
	notify-source 198.51.100.0; // non existant / not configured
	keys 10.53.0.53;
};

zone "change-ns" {
	type primary;
	file "change-ns.db";
	allow-update { any; };
};
