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 ;