Appliance building with pfSense – Introducing pfDNS!

While reworking the builder system for a commercial client that is
basing their appliance on pfSense we needed a builder target that
could be public and show how to build an appliance from scratch.

Therefore, pfDNS is born!  http://snipurl.com/4q1xe

pfDNS

pfDNS

pfDNS is a customized pfSense installation featuring the TinyDNS server package.   Host DNS using this appliance.   XMLRPC sync support to secondary nameservers means you only need to enter the information on the primary name server making administration a breeze for your primary and secondary name servers.  Depending on how popular this gets we might add a website and start making regular releases :)

To see how pfDNS was created, check out
tools/builder_scripts/builder_profiles/pfDNS.

Building this appliance could not be easier!  Simply copy
tools/builder_scripts/builder_profiles/pfDNS/pfsense_local.sh to
/home/pfsense/tools/builder_scripts/ and run build_iso.sh and presto!

I hope this example appliance will help others on their quest when
building a custom appliance based on the pfSense framework.

Edit: updated version available based on FreeBSD 8 and a newer DNS package with a number of bug fixes. 

What do you all think?  Leave comments in the blog.

Also, Holger is working on some artwork that I will get in there soon..  I’ll
post an updated ISO at that point (just look for a newer mtime).

EDIT:artwork added, it is a work in progress but gives a better idea of how the builder system can customize an appliance.

Share this Post:

78 Responses to “Appliance building with pfSense – Introducing pfDNS!”

  1. Itwerx Says:

    @Frank
    Second the bulk import. Any format would work, but BIND or TinyDNS own data file format would be best. I just manually massaged several hundred records into the config.xml and it was a huge pain in the butt.
    Of course now that they’re in there I don’t need that functionality anymore myself, but I’m sure anybody else thinking of using it in a production environment would be thrilled! :)

  2. Itwerx Says:

    Definitely some MX record handling bugs. As posted separately above, all MX records resolve as mx.domain.com and the priority is always 0.

  3. AlmightyOatmeal Says:

    I like the idea, hope it will be integrated into the regular pfsense install

  4. Odawayi Says:

    Sorry guys, but pfDNS.iso.gz is missing again…

  5. Chris Buechler Says:

    Not sure why Scott removed it this time, but I added it back. It needs an updated build sometime soon. There are some bug fixes in the works for some of the issues noted here amongst others.

  6. Chris Buechler Says:

    AlmightyOatmeal: It’s no different from the package that’s been available in normal pfSense full installs for a long time before this appliance was made available.

  7. Itwerx Says:

    @arix

    Some bug fixes for MX records and other misc stuff have been merged. Reload the package and try again?

  8. Fred Devoir Says:

    # gunzip -f pfDNS.iso.gz
    gunzip: Invalid magic
    —————————-
    Does anyone have any ideas how to extract the real ISO image? the GZ image isn’t working for me. I need to be able to mount the ISO file as a CDROM to a VMWare image to boot.

    I tried extracting on my windows machine and then creating a bootable image ISO from the resulting dir. It boots, it finds the boot loader, but it doesn’t find the kernel.
    ————————
    CD Loader 1.2

    Building the boot loader arguments
    Looking up /BOOT/LOADER… Found
    Relocating the loader and the BTX
    Starting the BTX loader

    BTX loader 1.00 BTX version is 1.02
    Console: internal video/keyboard
    BIOS CD is cd0
    BIOS drive A: is disk0
    BIOS drive C: is disk1
    BIOS 638kB/522176kB available memory

    FreeBSD/i386 bootstrap loader, Revision 1.1
    (sullrich@builder7-nexus-computer.pfsense.org, Mon Oct 27 01:20:12 EDT 2008)
    \
    can’t load ‘kernel’

    Type ‘?’ for a list of commands, ‘help’ for more detailed help.
    OK _
    ————————
    The above is the result of the bootable image of the extracted gz files. :(

    HELP!!!

  9. Chris Buechler Says:

    Fred: Don’t know, works for me. There needs to be an update built, “Itwerx” fixed a number of issues with the DNS server package. Right now you’re better off running pfSense with the latest DNS server package. An update will come.

  10. Scott Ullrich Says:

    Please try http://cvs.pfsense.com/~sullrich/pfDNS/pfDNS.iso which is a newer version of pfDNS based on FreeBSD 8.

  11. Fred Devoir Says:

    Scott: Thank you the new ISO works much much better. GratZ!!

  12. Odawayi Says:

    Got it this time! Great work, I’ll try it out…
    NB:
    I am unable to make a donation via paypal because my country is not in their list. Can you add Google or something for donations? I understand that they are not as restrictive as paypal.
    I have been trying to join your development for quiet awhile now, since before GIT, but after getting an ISO, I find out that something somewhere is corrupt. Quite discouraging after downloading so many GB of data! And I don’t know how to specifically find out where the corruption or problem is from! I really would have loved to try out this appliance thingy, and also contribute to your efforts…

  13. Chris Buechler Says:

    Odawayi: No other methods of donations right now, maybe in the future. Not sure what download problems you were having, aside from the problem pfDNS iso that was up for a day or two there aren’t any problems.

  14. Stealthn Says:

    Great work guys, I have been using and recommending pfSense for quite a while (great product). I was hunting for an IPAM Opensource solution and as stated above I see a huge market (open) for it.

    Do you think it will happen (just DNS/DHCP and IP allocation/reporting)?

    Keep up the good work

    Bob

  15. Chris Buechler Says:

    Stelthn: right now probably only DNS/DHCP. I don’t anticipate IPAM support unless someone comes forth willing to fund the development.

  16. Laith Z. Says:

    I would like to suggest, a lot of small appliances like pfDNS, pfProxy, pfMail, and so on, with the mother appliance pfSense.

    This will disappoint me, since I will not be able to deploy multiple services on one appliance, so what I suggest is a unified packaging system in all appliances beside the original service, this will allow me to install as much services as needed on the appliance.

    My warm greetings to the development team, keep up the invaluable great work.

    Regards

  17. Chris Buechler Says:

    Laith: the packages available in appliances will all be available on pfSense, the appliances are just for those who want a single purpose device. So if you must do it all on one box, there isn’t anything keeping you from doing so.

  18. marvin Says:

    Scott ..why did you go with FreeBSD 8? I’d really would like to try to get this on a production box but 8 being a current release.. Also is axfrdns included in this build or can it be easily integrated after the install?

  19. John Says:

    This is exactly what I am looking for. Single purpose (well dns/dhcp) so that I let others in and manage dns/dhcp and not have them on pfsense router.

  20. George Says:

    Hi,

    I ams looking for a new solution for firewalls/VPN and DNS for a client and have be pointed to this.

    I am a newbie to this and found it hard to work out how to build this pfdns and what is required.

    Are there any step by step instructions for “Dummies” on how to complete this including what packages are required?

    Thanks
    George

  21. Martin Says:

    What’s the status of pfDNS? Is this still the best ISO to use:

    http://cvs.pfsense.com/~sullrich/pfDNS/pfDNS.iso

    … or is this a better one:

    http://cvs.pfsense.com/~sullrich/pfDNS/pfDNS-09-24-09.iso.gz

    From the looks of it, the latter is the newest one … but maybe not the best?

    Thx

  22. Rainer Says:

    I tried the FreeBSD 8.0-based version.
    I installed it in a VM, with a single interface.
    But when I go to Services->DNS Servers, I get a 404.
    Probably the install went bad.
    Does anybody have a working VM (vmware)?

    Too bad it’s still alpha. I would need something like pfDNS now.

    Best Regards,
    Rainer

  23. phase Says:

    In the beginning, computers were slow. One of them was needed to host each service. We had a mail server, a web server, a DNS server, a proxy server, everything ran on dedicated hardware. As time passed by, the computers became faster, thus allowing multiple appliances to run on a single computer. Man upgraded to faster systems that could run it all on less hardware. Now, under the motto of energy conservation, we step back into the realm of slower, dedicated computers. Kind of like the fashion cycles. Other than that, nice project. I might do a pfIRC server if I can find the time, I like the dedicated appliance ideology. 😉

  24. Chris Buechler Says:

    phase: doesn’t necessarily have to be a dedicated piece of hardware, though an ALIX runs at around 3-5 watts so you can run a bunch of them and use less power than a single PC or server. More commonly I would expect to see this kind of thing running on a virtual machine.

  25. John Carter Says:

    Curious as to what is the best way to get data into a new PFDns system. I see that pfdns can sync to other dns servers, but how about it sucking the data from an existing server and then turn pfdns into the primary for the zone.

  26. edong Says:

    Any updates on this nice project from Pfsense?

  27. Eric Says:

    I agree with John, i would love to use this package/appliance but theres no easy way to import/script previous configs over. Hopefully this functionality will be added soon.

  28. Rick L Says:

    A stand alone DNS is what I would like to use locally. I see this is possibly fallen prey to other priorities. Too bad, an updated version would be very helpful.

Please don’t post technical questions or off-topic comments. It is far more likely that your questions and concerns will be addressed effectively through one of our support channels.

Leave a Reply