PDA

View Full Version : IP Address Management


tmart
05-18-2010, 02:48 PM
There must be a good way to manage IP addresses uniformly. It's very cumbersome to do what I think is probably the only reasonable thing with the currently available tools: to put the used IP addresses in the application comments. Maybe there could be a very "simple" way to identify a list of global assets (such as a list of IP addresses) and have AppLogic enforce that a given asset not be usable by more than one running component at a time. Of course this would quickly get complicated by H/A components that might need duplicate IPs configured.

... so I suspect that it's nearly impossible to govern the use of IP addresses in a good way. So instead maybe you can just provide a GUI tool for voluntarily tracking and/or searching which IP addresses are used by which components in which applications. Whatever, just something to help track IP addresses ... Thanks.

tmart
07-10-2010, 02:08 PM
Here would be what I think is an "easy" way to accomplish this.

First, if you could address this request: http://forum.3tera.com/showthread.php?t=246

Next, allow one or two new "types" of properties. Instead of (or in addition to) an "IP Address" as a property type, provide "AppLogic IP Address" and "RFC1918 IP Address" ... then we could use those types specifically for IP addresses that we broker within a grid.

Finally, allow this property search tool (CLI and possibly GUI) to grep through the configs with some switches such as the following example:

util grep --type="AppLogic IP Address" --app=* --name=* --value=*

... which could, for example, grep through all applications' (ie. --app=*) configurations for properties with any name (ie. --name=*) bearing the given type (ie. --type="AppLogic IP Address"). We might be able to change the "--value=*" to look for IP addresses on a particular block if we happen to have multiple blocks assigned to our grid (eg. --value="4.2.2.*"). We similarly might be able to restrict the search to property values bearing a particular pattern. Please use something like Perl regular expressions or at least BASH glob patterns to provide some familiar pattern search functionality.

As another enhancement, you might consider providing the ability to specify the object prefix within which to search. For example, ( --scope=main.container1.container2.* ) subject to the "--app" spec, of course.

I still think the property/value search tool is essential... but having a way to manage IP addresses is really important as well.

PeterNic
07-11-2010, 10:28 PM
Tim,

Good ideas - thanks.

In AppLogic 2.9, we added a new property type, Owned IP Address -- i.e., an IP address that is owned by the appliance (as opposed to just referenced, like a DNS server or gateway would be). The result is, that for new appliances that use the Owned IP Address, there is an easy way to find the IPs that are used (or could be used) by the appliance. This is a step in the direction of managing the IP addresses.

The search utility would be useful; I had something simpler in mind, which would just find a string value and show it within its scope (app/component). Searching for a property value, filtering properties only of a certain type is not straightforward -- as the property type is specified in the class but the value is in the instance settings. Not impossible but outside of the IP address management I am not sure it would be useful (right?).

If you assume proper use of app boundary (i.e., IP addresses are configured as app properties and not hard-coded in appliance instances), IP management could be simple -- for each app, get the list of properties and their types (via app config --boundary and app config). This can be contrasted to the IP address range, which is now included in grid info --verbose. Using either CLI or the new API, this would be easy to prototype. For backward compatibility, it can be told to list any IP address as owned IP. With a few tweaks, it can even allocate addresses. Let me know what you think - I'll put it in the backlog.

Best regards,
- Peter