Revision [3365]

This is an old revision of galiumfreddesign made by CalumMcAlinden on 2014-08-24 06:45:20.

 

The design of Galiumfred


Galiumfred has been designed to create a web based solution for DNS registrations. It is based on the hard work from Timgws. This page will cover the design of the current galiumfred. Galiumfred is really a registry for alt-TLDs. It provides means to have remote registrar's so other can reigster DNS names in your registry. It is currently lacking a lot of functions that are needed and is bug prone. I am writing this information in as much detail as I can so;

The back end


I will try and explain the parts of the back end galiumfred uses below.

DB


The back end is kept on a DB using MySQL. It uses a the table structure required for MyDNS, so the package can use a galiumfred DB natively. This is to prevent a re-invention of the wheel, as MyDNS is a good solution for the problem at hand. This also allows for the other great MyDNS tools to be used against galiumfred.

Below are the tables in the galiumfred DB.
Holds a list of countries presented during the user registration process Holds user NS records for their domains Holds the resource records for galiumfred Holds the domain SOA information Currently not used Contains the random list of words displayed on the seach form Holds any site generated error messages Holds the TLDs the server is allowed to register Holds all of hte user information gathered during registration

Scripts


Below I detail the scripts involved in galiumfred.

createdb.pl

There is only one perl script that does the back end heavy-towing. This script is only used if bind9 is the DNS server in use. Its job is to go through the DB and generate the required zone files. It then transfers a bind9 include file to the slave server's. Bind9 is then reloaded, and all the required zones are transferred using bind9.

The script is written in perl and uses perl's DBD module for database interaction. YAML::Syck is used so the perl app can read in it's configuration file.

The script determines what zone to generate by comparing the SOA to the currently loaded version of the zone. If they do not match, or it does not exist yet, the script moves onto the zone generation part.

Before a generated zone file is pushed into the config file, it is first checked over using named-checkzone util. This ensures that zones made active are error free. The bind9 configuration is built every run, but only applied if an md5sum's off both generated files do not match. This indicates that a change has been produced. Once the bind9 configuration is built, it is checked over using named-checkconfig util. Again this makes sure that all config files can be loaded before a reload is issued.

This script is general run every 30 minutes.

The frontend


The front end is all LAMP powered. I do not have much to say about the front end as it was designed my Timgws. The best way to learn about the front end is to grab the code from the download section, and read it!
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki