Computer Club DNS uses the djbdns DNS server. The DNS record data for this program is stored in a format which is documented at http://cr.yp.to/djbdns/tinydns-data.html . Some info about our configuration is located at https://wiki.club.cc.cmu.edu/org-auth/ccwiki/Services/Club%20DNS

The Computer Club DNS record data lives in /afs/club.cc.cmu.edu/service/dns . This is a clone of a git repository which lives in /afs/club.cc.cmu.edu/git/service/dns . Both of these directories require an administrator AFS token for write access.

IDEALLY: You should make changes to the DNS by first making your own clone of the master branch of /afs/club.cc.cmu.edu/git/service/dns in a personal directory, making and committing changes in that clone, pushing those commits to /afs/club.cc.cmu.edu/git/service/dns , and then pulling those commits down in the /afs/club.cc.cmu.edu/service/dns directory. Ideally, a step by step guide to this process would follow.

IN REALITY: Getting an administrator AFS token wipes out your regular AFS token, so you lose acces to your homedir! So you have to clone and push from /tmp! FFS! That's a horrible inconvenience! A step by step guide to just editing DNS in-place and ignoring the git-based workflow follows. (Alternatively use the git-based workflow, put the repo in your home directory, and fs sa gitrepo youradminprincipal write)

Step 1

               cd /afs/club.cc.cmu.edu/service/dns
               kinit $USER/admin@CLUB.CC.CMU.EDU
               aklog CLUB.CC.CMU.EDU

Step 2

Now find what you want to do in this section and do that "Step 2". These instructions use tinydns-edit because it validates your changes, makes them atomic, prevents duplicate records, etc. etc.

Step 2A

I made a new machine that I want to add

I want to change what a given IP is associated with

I want to configure an IP that has never been configured before

This will add both an A (forward) record and PTR (reverse) record.

               # NAME = the name of the new machine
               # IP = the IP of the new machine

               # this will remove the old host record
               sed -i "/^=.*:$IP:.*/d" DB.club.cc.cmu.edu

               ./tinydns-edit DB.club.cc.cmu.edu DB.club.cc.cmu.edu~ add host $NAME.club.cc.cmu.edu $IP

Step 2B

I want to add a new A record pointing at an IP address that was already configured

I want to add another virtual host to my webserver

I don't really know what I'm doing, I just want to point a domain name at an IP

This will add just an A (forward) record.

               ./tinydns-edit DB.club.cc.cmu.edu DB.club.cc.cmu.edu~ add alias $NAME.club.cc.cmu.edu $IP

Step 2C

I want to add MX records.

I am a smart person who wants to do something not listed.

Well, do it yourself, I'm sure you know how. Consider using tinydns-edit, check out its man page: http://manpages.ubuntu.com/manpages/trusty/man8/tinydns-edit.8.html

Step 3

               # review the changes for sanity
               git diff
               git add DB.club.cc.cmu.edu
               # change the commit message to be appropriate of course
               git commit -m "I did something"
               git push

Common Maintenance Tasks/Adding and removing DNS records (last edited 2015-02-01 15:16:45 by sbaugh@CLUB.CC.CMU.EDU)