Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm looking for a tool that will manage IP addresses for me (keeping track of what customer has what IP, finding unused ones when I need one, etc) that can also update DNS and/or kick off external scripts when I make changes. I know there are lots of IP management tools out there, both free and paid. TIPP comes well recommended on NANOG. The solution might be a plugin to that to take care of this, I don't know.

My ideal workflow is something like this:

  1. I go to the app (web based, preferably) and click "new machine". I fill in a hostname (blarg.internalspace.) and select the IP range I want (172.18.38/24). It returns "ok, blarg.internalspace. -> 172.18.38.239".
  2. DNS is updated in a couple of places:
    1. blarg IN A 172.18.38.239 gets added to internalspace.zone
    2. 239 IN PTR blarg.internalspace. gets added to 38.18.172.in-addr.arpa.zone
    3. Appropriate serial numbers get updated.
    4. rndc reload is run. Maybe I need to do this manually, I don't know.
  3. Other stuff. Update my puppet configs? Something. I can write code to do this.

Any thoughts?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

TIPP is probably your best bet for this. I wrote custom software that did each half of this (DNS/IP & Netblock) a long time ago because something like TIPP didn't exist, but if I had to do now I'd extend & use TIPP.

Re: the DNS part, unless you're using LDAP/SQL-backed DNS my suggestion would be to export the reverse zones from TIPP on some schedule (hourly) & trigger reloads of any that changed (to avoid beating up your DNS servers for every little IP assignment).

Looking at TIPP it should be easy enough to do these exports -- I don't see a direct way, but it's postgres-backed, so you can use the inet/cidr operators to extract "all addresses & ip_extras contained in a subnet" and whip up some PHP or perl to spit them out as a zone file.

TIPP is actually pretty sweet - I may implement the DNS bits in my spare time & send the author a patch :-)

share|improve this answer
    
That sounds good. I'm not doing many updates, so updating as I do it isn't too bad (that's what I'm doing now, manually). I suppose some kind of batching would be good... Let me know if you write it :) I might do the same, mattering on development time availability. –  Bill Weiss Feb 3 '10 at 18:44
    
I've started playing with this - the annoying part is extracting the host part of the .arpa name for the PTR records (in a v4/v6 agnostic way), but code snippets going to the TIPP maintainer as soon as I figure that out :-) –  voretaq7 Feb 4 '10 at 3:56
    
Woot! That's an even better answer than I expected :) –  Bill Weiss Feb 4 '10 at 14:20

This is exactly what OpenNetAdmin can do for you (http://opennetadmin.com). It has a nice AJAX web front end as well as a full CLI batch tool to manage the data with. Once you have entered data into the system you can then build configuration for both DNS and DHCP servers. We currently support several types of servers such as Bind, Tinydns, DLZ, and ISC DHCP.

There is also a plugin framework for extending the functionality of the system so much more is possible.

share|improve this answer
    
That looks pretty neat! I'll give it a look. –  Bill Weiss Dec 22 '11 at 14:31

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.