summaryrefslogtreecommitdiffstats
path: root/contrib/dlz/modules/mysqldyn/README
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 18:37:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 18:37:14 +0000
commitea648e70a989cca190cd7403fe892fd2dcc290b4 (patch)
treee2b6b1c647da68b0d4d66082835e256eb30970e8 /contrib/dlz/modules/mysqldyn/README
parentInitial commit. (diff)
downloadbind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.tar.xz
bind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.zip
Adding upstream version 1:9.11.5.P4+dfsg.upstream/1%9.11.5.P4+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'contrib/dlz/modules/mysqldyn/README')
-rw-r--r--contrib/dlz/modules/mysqldyn/README60
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/dlz/modules/mysqldyn/README b/contrib/dlz/modules/mysqldyn/README
new file mode 100644
index 0000000..468e37c
--- /dev/null
+++ b/contrib/dlz/modules/mysqldyn/README
@@ -0,0 +1,60 @@
+BIND 9 DLZ MySQL module with support for dynamic DNS (DDNS)
+
+Adapted from code contributed by Marty Lee, Maui Systems Ltd.
+
+This is a dynamically loadable zone (DLZ) plugin that uses a fixed-
+schema MySQL database for back-end storage. It allows zone data
+to be updated via dynamic DNS updates, and sends DNS NOTIFY packets
+to other name servers when appropriate.
+
+The database for this module uses the following schema:
+
+ CREATE TABLE `Zones` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `domain` varchar(128) NOT NULL DEFAULT '',
+ `host` varchar(128) NOT NULL DEFAULT '',
+ `admin` varchar(128) NOT NULL DEFAULT '',
+ `serial` int(11) NOT NULL DEFAULT '1',
+ `expire` int(11) NOT NULL DEFAULT '86400',
+ `refresh` int(11) NOT NULL DEFAULT '86400',
+ `retry` int(11) NOT NULL DEFAULT '86400',
+ `minimum` int(11) NOT NULL DEFAULT '86400',
+ `ttl` int(11) NOT NULL DEFAULT '86400',
+ `writeable` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `domain_idx` (`domain`)
+ );
+
+ CREATE TABLE `ZoneData` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `zone_id` int(11) NOT NULL,
+ `name` varchar(128) NOT NULL DEFAULT '',
+ `type` varchar(16) NOT NULL DEFAULT '',
+ `ttl` int(11) NOT NULL DEFAULT '86400',
+ `data` varchar(128) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `zone_idx` (`zone_id`),
+ KEY `name_idx` (`zone_id`, `name`),
+ KEY `type_idx` (`type`)
+ );
+
+'Zones' contains information about specific zones:
+ - domain: the zone name
+ - admin: the zone administrator
+ - serial, expire, reresh, retry, minimum: values in the SOA record
+ - ttl: default zone TTL
+ - writeable: set to true if the zone can be updated via DDNS
+
+'ZoneData' contains the individual records within the zone:
+ - zone_id: the 'id' from the corresponding record in Zones
+ - name: domain name, relative to the zone apex. (Data at the zone
+ apex itself may use a blank name or "@".)
+ - type: the RR type, expressed as text
+ - ttl: the record's TTL
+ - data: the records rdata, expressed as text.
+
+To configure this module in named.conf:
+
+dlz "mysqldlz" {
+ database "dlopen <path to>/dlz_mysqldyn_mod.so <dbname> [dbhost [dbuser [dbpass]]]";
+};