Presentation is loading. Please wait.

Presentation is loading. Please wait.

BGJDNS An Authoritative DNS Server With a GUI interface with a relational database back-end.

Similar presentations


Presentation on theme: "BGJDNS An Authoritative DNS Server With a GUI interface with a relational database back-end."— Presentation transcript:

1 BGJDNS An Authoritative DNS Server With a GUI interface with a relational database back-end

2 Why this project? ► The 24x7 NOC wasn’t familiar with our DNS. ► Emergency changes resulted in the NOC calling UNIX administrators. ► Computers were invented to make life easier, not to wake sleeping people at 1:30AM for trivial changes that could be performed by the 24x7 NOC.

3 DNS in 5 minutes ► DNS helps resolve logical addresses with physical addresses. ► DNS tells us which servers receive e-mail. ► DNS maps IP Addresses and hostnames. (like: www.g3.org 216.37.18.21) www.g3.org ► DNS tells us how long we should believe such mappings.

4

5 Format of Existing DNS Data Zmonster.com:ns1.tmpw.net.:hostmaster.tmpw.net.::1800:600:604800:86400:600 +monster.com:63.112.169.1:600 +monster.com:63.121.29.1:600 @monster.com::mailsorter.in.tmpw.net.:20:600 @monster.com::mailsorter.ma.tmpw.net.:20:600 &monster.com::ns1.tmpw.net.:4800 &monster.com::ns2.tmpw.net.:4800 Cchief.monster.com:www.akadns.monster.com.:600 Cdover.de.monster.com:www.akadns.monster.com.:600 Churricanerelief.monster.com:www.akadns.monster.com.:600 Cnewjersey.monster.com:www.akadns.monster.com.:600 Cnewmexico.monster.com:www.akadns.monster.com.:600 Cvideo.monster.com:www.akadns.monster.com.:600 ^1.10.50.10.in-addr.arpa:jobsearch101.ma.monster.com.:3600::IN ^2.10.50.10.in-addr.arpa:jobsearch102.ma.monster.com.:3600::IN ^3.10.50.10.in-addr.arpa:jobsearch103.ma.monster.com.:3600::IN ^1.10.10.10.in-addr.arpa:jobsearch01.in.monster.com.:3600::IN ^2.10.10.10.in-addr.arpa:jobsearch02.in.monster.com.:3600::IN ^3.10.10.10.in-addr.arpa:jobsearch03.in.monster.com.:3600::IN

6 Drawbacks of existing format ► Concurrency issues with multiple administrators editing the same file. ► Intimidation of the dense colon-delimited format. ► Difficult to teach non-UNIX people how to modify the data.

7 First Schema

8 Final Schema

9 Data Stats Table Name# Tuples access_group2 address3,999 cname7,542 domain_name11,471 mx537 ns813 ptr382 soa403 subnet36

10 Hurdles ► Couldn’t get java nor perl to interact with Oracle on firebird.cs.iupui.edu ► Converting CREATE TABLE syntax to mysql ► Learning OpenLaszlo ► Creatnig a DNS server from scratch (perl) ► Evaluating best way to store IP Addresses ► Making sure to follow RFC 1035 standard ► Importing the data (perl)

11 Typical Queries What is the IP address of “g3.org”? (an A record) SELECT concat(ip_octet1,'.',ip_octet2,'.',ip_octet3,'.',ip_octet4) ip_addr FROM address NATURAL JOIN domain_name WHERE domain_name.name = 'g3.org'; What is the IP address of “www.g3.org”? (a CNAME record) SELECT concat(ip_octet1,'.',ip_octet2,'.',ip_octet3,'.',ip_octet4) ip_addr FROM cname LEFT JOIN domain_name d2 ON (cname.target_name_id = d2.domain_name_id) LEFT JOIN domain_name d1 ON (cname.domain_name_id = d1.domain_name_id) LEFT JOIN address ON (d2.domain_name_id = address.domain_name_id) WHERE d1.name = 'www.g3.org';

12 Complex Query What is the IP address of “www.tmphosting.net” from my workstation at 10.10.17.21? SELECT concat(ip_octet1,'.',ip_octet2,'.',ip_octet3,'.',ip_octet4) ip_addr concat(ip_octet1,'.',ip_octet2,'.',ip_octet3,'.',ip_octet4) ip_addrFROM (address NATURAL JOIN domain_name) (address NATURAL JOIN domain_name) LEFT JOIN subnet ON (address.access_group_id = subnet.access_group_id) LEFT JOIN subnet ON (address.access_group_id = subnet.access_group_id)WHERE (domain_name.name = 'www.tmphosting.net') AND (domain_name.name = 'www.tmphosting.net') AND address.access_group_id = address.access_group_id = (SELECT access_group.access_group_id ag_id (SELECT access_group.access_group_id ag_id FROM FROM access_group NATURAL JOIN subnet access_group NATURAL JOIN subnet WHERE WHERE INET_NTOA( INET_NTOA( INET_ATON( INET_ATON( CONCAT(net_octet1,'.',net_octet2,'.',net_octet3,'.',net_octet4) CONCAT(net_octet1,'.',net_octet2,'.',net_octet3,'.',net_octet4) ) & INET_ATON( INET_ATON( CONCAT(mask_octet1,'.',mask_octet2,'.',mask_octet3,'.',mask_octet4) CONCAT(mask_octet1,'.',mask_octet2,'.',mask_octet3,'.',mask_octet4) ) ) = INET_NTOA( INET_NTOA( INET_ATON('10.10.17.21') INET_ATON('10.10.17.21') & INET_ATON( INET_ATON( CONCAT(mask_octet1,'.',mask_octet2,'.',mask_octet3,'.',mask_octet4) CONCAT(mask_octet1,'.',mask_octet2,'.',mask_octet3,'.',mask_octet4) ) ) ORDER BY net_octet1 DESC ORDER BY net_octet1 DESC LIMIT 1 LIMIT 1 );

13 The End is Near The End is Near ► Demonstrate DNS Server ► Demonstrate GUI ► Q/A


Download ppt "BGJDNS An Authoritative DNS Server With a GUI interface with a relational database back-end."

Similar presentations


Ads by Google