/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * 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 http://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */

options {
	query-source address 10.53.0.1 dscp 1;
	notify-source 10.53.0.1 dscp 22;
	transfer-source 10.53.0.1 dscp 3;
	port @PORT@;
	pid-file "named.pid";
	session-keyfile "session.key";
	listen-on { 10.53.0.1; 127.0.0.1; };
	listen-on-v6 { none; };
	recursion no;
	notify yes;
	minimal-responses no;
};

key rndc_key {
	secret "1234abcd8765";
	algorithm hmac-sha256;
};

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

key altkey {
	algorithm hmac-md5;
	secret "1234abcd8765";
};

include "ddns.key";

zone "example.nil" {
	type master;
	file "example.db";
	check-integrity no;
	check-mx ignore;
	update-policy {
		grant ddns-key.example.nil subdomain example.nil ANY;
	};
	allow-transfer { any; };
};

zone "max-ttl.nil" {
	type master;
	file "max-ttl.db";
	max-zone-ttl 300;
	check-integrity no;
	allow-update { any; };
	allow-transfer { any; };
};

zone "other.nil" {
	type master;
	file "other.db";
	check-integrity no;
	check-mx warn;
	update-policy local;
	allow-query-on { 10.53.0.1; 127.0.0.1; };
	allow-transfer { any; };
};

masters othermasters {
	10.53.0.2 port @PORT@;
	10.53.0.2 port @PORT@ key altkey;
};

zone "update.nil" {
	type master;
	file "update.db";
	check-integrity no;
	check-mx fail;
	allow-update { any; };
	allow-transfer { any; };
	also-notify { othermasters; };
};

zone "unixtime.nil" {
	type master;
	file "unixtime.db";
	check-integrity no;
	allow-update { any; };
	allow-transfer { any; };
	serial-update-method unixtime;
};

zone "yyyymmddvv.nil" {
	type master;
	file "yyyymmddvv.db";
	check-integrity no;
	allow-update { any; };
	allow-transfer { any; };
	serial-update-method date;
};

include "md5.key";
include "sha1.key";
include "sha224.key";
include "sha256.key";
include "sha384.key";
include "sha512.key";

zone "keytests.nil" {
	type master;
	file "keytests.db";
	update-policy {
	    grant md5-key name md5.keytests.nil. ANY;
	    grant sha1-key name sha1.keytests.nil. ANY;
	    grant sha224-key name sha224.keytests.nil. ANY;
	    grant sha256-key name sha256.keytests.nil. ANY;
	    grant sha384-key name sha384.keytests.nil. ANY;
	    grant sha512-key name sha512.keytests.nil. ANY;
	};
};

zone "many.test" {
	type master;
	allow-update { any; };
	file "many.test.db";
};

zone "sample" {
	type master;
	allow-update { any; };
	file "sample.db";
};

zone "maxjournal.test" {
	type master;
	allow-update { any; };
	file "maxjournal.db";
	max-journal-size default;
};
