About the YoDNSConf Demo
The demonstration is just that, a demonstration. It does not connect to any DNS server.
The Data Model
The PHP / Nexista port uses a MySQL database back-end. The Ruby / Sinatra port will support multiple back-ends, including raw zone files and json redirect files so that they can be version tracked with Git or Subversion.
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `ydc_hostgroups` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`alias` varchar(255) NOT NULL,
`notes` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ydc_hostgroup_hosts` (
`hostgroup_id` int(11) NOT NULL,
`host_id` int(11) NOT NULL,
KEY `hostgroup_id` (`hostgroup_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `ydc_hostgroup_parents` (
`hostgroup_id` int(11) unsigned NOT NULL,
`parent_id` int(11) unsigned NOT NULL,
KEY `hostgroup_id` (`hostgroup_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `ydc_hosts` (
`id` int(10) unsigned NOT NULL auto_increment,
`ip` int(10) unsigned NOT NULL,
`host` varchar(255) NOT NULL,
`priority` varchar(255) NOT NULL default '10',
`macaddr` int(10) NOT NULL,
`notes` varchar(255) NOT NULL,
`hostgroup_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `hosts` (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `ydc_hosts` (`id`, `ip`, `host`, `priority`, `macaddr`, `notes`, `hostgroup_id`) VALUES
(1, 0, '1.0.0.127.in-addr.arpa.', '-10', 0, '', 0),
(2, 1270, 'localhost', '', 0, '', 0);
CREATE TABLE IF NOT EXISTS `ydc_host_services` (
`host_id` int(10) unsigned NOT NULL,
`service_id` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `ydc_ip_addr` (
`ip_id` int(10) unsigned NOT NULL auto_increment,
`ip_addr` char(128) NOT NULL,
`ip_netmask` char(128) NOT NULL,
`ip_cidr` char(128) NOT NULL,
`ip_description` varchar(255) NOT NULL,
`ip_notes` text NOT NULL,
PRIMARY KEY (`ip_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `ydc_ip_addr` (`ip_id`, `ip_addr`, `ip_netmask`, `ip_cidr`, `ip_description`, `ip_notes`) VALUES
(1, '192.168.0.1', '', '', 'test', 'ok');
CREATE TABLE IF NOT EXISTS `ydc_options` (
`option_key` varchar(255) NOT NULL default 'untitled',
`option_value` varchar(255) default NULL,
UNIQUE KEY `option_key` (`option_key`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `ydc_record_metadata` (
`record_id` int(11) NOT NULL auto_increment,
`meta_key` varchar(100) default NULL,
`meta_value` varchar(100) default NULL,
PRIMARY KEY (`record_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ydc_redirects` (
`http_host` varchar(255) NOT NULL,
`redirect` varchar(255) NOT NULL,
`created` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`http_host`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `ydc_rr` (
`id` int(10) unsigned NOT NULL auto_increment,
`zone` int(10) unsigned NOT NULL,
`name` char(64) NOT NULL,
`type` enum('A','AAAA','CNAME','HINFO','MX','NAPTR','NS','PTR','RP','SRV','TXT') default NULL,
`data` char(255) NOT NULL,
`aux` int(10) unsigned default NULL,
`ttl` int(10) unsigned NOT NULL default '86400',
`weight` int(10) unsigned default NULL,
`port` int(10) unsigned NOT NULL,
`notes` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `rr` (`zone`,`name`,`type`,`data`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ydc_services` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`notes` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ydc_soa` (
`id` int(10) unsigned NOT NULL auto_increment,
`origin` char(255) NOT NULL,
`ns` char(255) NOT NULL,
`mbox` char(255) NOT NULL,
`serial` int(10) unsigned NOT NULL default '1',
`refresh` int(10) unsigned NOT NULL default '28800',
`retry` int(10) unsigned NOT NULL default '7200',
`expire` int(10) unsigned NOT NULL default '604800',
`minimum` int(10) unsigned NOT NULL default '86400',
`ttl` int(10) unsigned NOT NULL default '86400',
`active` enum('Y','N') NOT NULL,
`xfer` char(255) NOT NULL,
`notes` varchar(255) NOT NULL,
`expiration_date` date NOT NULL,
`zone_group_id` int(11) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `origin` (`origin`),
KEY `active` (`active`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `ydc_soa` (`id`, `origin`, `ns`, `mbox`, `serial`, `refresh`, `retry`, `expire`, `minimum`, `ttl`, `active`, `xfer`, `notes`, `expiration_date`, `zone_group_id`) VALUES
(1, 'example.com.', 'ns1.example.com.', 'support', 2009110701, 28800, 7200, 604800, 86400, 86400, 'Y', '0', 'none', '0000-00-00', 0);
CREATE TABLE IF NOT EXISTS `ydc_zone_groups` (
`zone_group_id` int(11) NOT NULL auto_increment,
`zone_group_name` varchar(255) NOT NULL,
`zone_group_http_proxy` varchar(255) NOT NULL,
`zone_group_proxy_only` varchar(255) NOT NULL,
`zone_group_smtp_proxy` varchar(255) NOT NULL,
`zone_group_default_proxy` varchar(255) NOT NULL,
KEY `zone_group_id` (`zone_group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `ydc_zone_groups` (`zone_group_id`, `zone_group_name`, `zone_group_http_proxy`, `zone_group_proxy_only`, `zone_group_smtp_proxy`, `zone_group_default_proxy`) VALUES
(1, 'Examples', '', '', '', '');
CREATE TABLE IF NOT EXISTS `ydc_zone_groups_metadata` (
`zone_group_id` int(11) NOT NULL auto_increment,
`meta_key` varchar(100) default NULL,
`meta_value` varchar(100) default NULL,
KEY `zone_group_id` (`zone_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ydc_zone_metadata` (
`zone_id` int(11) NOT NULL auto_increment,
`meta_key` varchar(100) default NULL,
`meta_value` varchar(100) default NULL,
PRIMARY KEY (`zone_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;