I’ve reworked my older DNS filesystem Perl script to make something nicer. It’s still not perfect, but works much better.
You can now
cat files for instance. The filesizes are something that
should also be fixed, if set them to 512 bytes.
From a DNS standpoint some other things can be improved. Right now everything is shown from a zone (everything that can be discovered that is), however this also includes glue…
To get this running you’ll need FUSE (should be installed if you run Linux) and Perl with the Perl Fuse module installed. I’m running Ubuntu Gutsy and everything could be installed very easily.
Furthermore you’ll need two files, a Fdns.pm module and a fdns.pl Perl script. Place both in a directory and type:
mkdir theworld ./fdns theworld
Now the world of DNS is mounted on
theworld. Now you can do the
$ cd theworld $ ls # this might take a WHILE!!!! ... eu/ ns2.undp.org utama.bolnet.bo eur1.nipr.mil ns2.univie.ac.at uucp-gw-1.pa.dec.com eur2.nipr.mil ns2.uz uucp-gw-2.pa.dec.com euro-ns1.cw.net ns2.yemen.net.ye uy/ euro-ns2.cw.net ns2.zamnet.zm uz/ euro-ns3.cw.net ns3.aalnet.net va/ euterpe.william.org ns3.arnes.eu vc/ f5.nstld.com ns3-auth.sprintlink.net ve/ ...
This is part of the root zone, you see the
eu delegation, so that is a
directory. There is also a
nl directory in there. Let go there:
$ cd nl $ ls @
nl doesn’t do
axfr and all that could be discovered is contained
in the file
@. Lets check that one out:
$ cat @ nl. 5988 IN SOA ns.domain-registry.nl. postmaster.domain-registry.nl. ( 2008030205 ; Serial 7200 ; Refresh 900 ; Retry 2419200 ; Expire 900 ) ; Minimum TTL nl. 85188 IN NS ns3.nic.nl. nl. 85188 IN NS ns4.nic.nl. nl. 85188 IN NS ns-ext.isc.org. nl. 85188 IN NS ns-nl.nic.fr. nl. 85188 IN NS ns.domain-registry.nl. nl. 85188 IN NS ns2.nic.nl. nl. 85188 IN NS nl1.dnsnode.net.
This is the SOA record for
nl. Lets see if there any funny
$ cd fghjfhfjdhdj cd: no such file or directory: fghjfhfjdhdj
Nope, that one does not exists, maybe there are funny names?
$ cat fjhfdjfd cat: fjhfdjfd: No such file or directory
Nope. Okay, why not descend into some directory I know should be there.
$ cd miek $ ls @ a localhost www $ cat a a.miek.nl. 3600 IN A 192.168.1.2 $ cat www www.miek.nl. 3600 IN CNAME a.miek.nl.
So every file has the name of a label, and the contents are RRs who have
that label. Esp. funny are zones with wildcards
*, as you can
any name you wish.
color output of
It’s wise to disable that when you are roaming around in this
filesystem. As every discovered name is
statted, which means
another DNS lookup.
Comments and patches are welcome.