BIND DNS Zone option support
While ONA strives to be solution generic when it comes to support of DNS/DHCP services, there are still needs that arise when building configurations that are specific to one platform or another.
Specifically BIND supports many options that control policies, zone transfers etc etc. These options are not applicable for something like a TinyDNS server.
The current method I envision for allowing full support of these items while remaining fairly generic in nature would be to do the following:
- Create a new text column in the domains table called
domain_options. it should be fairly large so it can contain enough data. - in the GUI create a
textareaedit box for these options - update appropriate domain add/modify modules to support this new column
- update the build_bind plugin to use this data
These changes should allow someone the ability to type in a bind config format configuration in a freeform text field that will get automatically merged in during zone configuration time. This way they have full configuration flexibility without the need for ONA to have full understanding of each and every bind specific option that exists or may exist in the future.
I believe this to be a good mix of feature capability and ease of implementation.
We actually need zone-based options for reverse zones handling our private address space at the university. Obviously these shouldn't be able to be queried from just any network. One option we were thinking about was to set up two separate name servers for PTR delegation but that just feels like a dirty hack to me. Regarding this issue I'd like to make a few suggestions. A free text field isn't quite re-usable and IMHO would result in a lot of redundancy having to specify options for separate zones over and over again. I'd follow a similar approach to how it was done with the DHCP Options located in the Admin menu. Perhaps with a few pre-defined BIND zone options such as "allow-recursion", "recursion", "allow-query", "allow-transfer" and perhaps a generic "include" as well as the option to add custom options as necessary.