User Tools

Site Tools


2_x:datamodel:ip-settings

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
2_x:datamodel:ip-settings [2018/09/14 22:26] – external edit 127.0.0.12_x:datamodel:ip-settings [2023/09/15 15:36] – [Automatic IP Release] cnaud
Line 1: Line 1:
 +====== IP Settings ======
 +Unlike most iTop's extensions, the definition of TeemIp configuration parameters is split between a **dedicated class of objects**, named Global IP Setting, and the **general configuration file**.
 +  * Global IP Settings host the parameters that are specific to an organization,
 +  * The general configuration file defines parameters that drive TeemIp's generic behaviour and enables the default value of Global IP Settings parameters to be overwritten.
  
 +
 +
 +
 +
 +===== Global IP Setting =====
 +{{icons8-maintenance-48.png  }}
 +Global IP Setting objects store all parameters that drive TeemIp behaviour.
 +==== Global IP Settings Properties ====
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| **General Information** |||
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Name | Alphanumeric string  | No|
 +| Requestor | Foreign key to a(n) Person | No |
 +
 +^  Name  ^  Type  ^  Allowed values  ^  Default value  ^  Extension  ^
 +| **Default Settings for IP Requests** |||| IP Request Management |
 +| Offset for the creation of IPs within IPv4 subnets | Number | Any | 0 | IP Request Management |
 +| Offset for the creation of IPs within IPv6 subnets | Number | Any | 0 | IP Request Management |
 +| **Default Settings for Subnet Blocks** |||||
 +| Minimum size of IPv4 Subnet Blocks | Number | > 1 | 256 | |
 +| Minimum size of IPv6 Subnet Blocks | CIDR | > /64 | /64 | |
 +| Align IPv4 Subnet Blocks to CIDR | Boolean | Yes / No | Yes | |
 +| Align IPv6 Subnet Blocks to CIDR | Boolean | Yes / No | Yes | |
 +| Delegate blocks to children organizations only | Boolean | Yes / No | Yes | |
 +| **Default Settings for Subnets** |||||
 +| Reserve Subnet, Gateway and Broadcast IPs at Subnet Creation | Boolean | Yes / No | No | |
 +| IPv4 Gateway IP | Enum | Broadcast IP - 1 / Subnet IP + 1 / Free Allocation | Subnet IP + 1| |
 +| IPv6 Gateway IP | Enum | Last subnet IP / Subnet IP + 1 / Free Allocation | Subnet IP + 1| |
 +| Symetrical Subnet NAT | Boolean | Yes / No | No | |
 +| Subnet Low Water Mark (%) | Percentage | 0 - 100 | 60 | |
 +| Subnet High Water Mark (%) | Percentage | 0 - 100 | 80 | |
 +| **Default Settings for IP Ranges** |||||
 +| IP Range Low Water Mark (%) | Percentage | 0 - 100 | 60 | |
 +| IP Range High Water Mark (%) | Percentage | 0 - 100 | 80 | |
 +| **Default Settings for IPs** |||||
 +| Allow Duplicate Names | Boolean | Yes / No | No | |
 +| Ping IP before assigning it ? | Boolean | Yes / No | No  ||
 +| Symetrical IP NAT | Boolean | Yes / No | No | |
 +| Copy CI's name into IP's short name | Boolean | Yes / No | No | |
 +| Compute FQDN when short name is empty | Boolean | Yes / No | No | |
 +| Allocate IPs attached to production CIs | Boolean | Yes / No | Yes | |
 +| Release IPs from CIs that become obsolete | Boolean | Yes / No | No | |
 +| Un-allocate IPs that are not attached to a CI | Boolean | Yes / No | No | |
 +| Release IPs from subnets that are released | Boolean | Yes / No | Yes | |
 +| **Domain Information** |||||
 +| Delegate domains to children organizations only | Boolean | Yes / No | No | |
 +| Automatically update DNS records | Boolean | Yse / No | No | DNS Zone Management |
 +| Remove DNS records from obsolete IPs | Boolean | Yes / No | No | DNS Zone Management |
 +| **Other information**|||||
 +| MAC Address Output Format | Enum | Colons / Hyphens / Dots | Colons | |
 +
 +<note>
 +The MAC Address Output Format defines the format used to display MAC addresses: colons (01:23:45:67:89:ab), hyphens (01-23-45-67-89-ab) or dots (0123.4567.89ab). Regardless that format, the MAC address will always be stored in the data base following the colons format. And any format can be used to enter a MAC address.
 +</note>
 +
 +==== Listing Global IP Settings ====
 +From the **Configuration** menu, under the **General Configuration** sub-menu, the **Global IP Settings** shortcut displays the IP Setting used by the different organizations.
 +
 +{{ classlist_globalipsettings3x.png }}
 +
 +<note warning>
 +There can be **only one** Global IP Seetings per organization.
 +</note>
 +
 +
 +==== Creating a new Global IP Settings ====
 +From the listing view, click on the “New…” menu to display the creation form. 
 +
 +{{ classcreate_globalipsettings3x.png }}
 +
 +==== Modifying Global IP Settings ====
 +From the detailed view of a Global IP Setting, click on the “Modify” button. Basically, all parameters can be changed here but, of course, the organization.
 +
 +==== Automatic creation ====
 +A Global IP Setting for a given organization is now mandatory to create an IP object for that organization. First option is to create the Global IP Setting before creating an IP Object. Second option is to directly create the IP Object. Indeed, as soon as the organization is selected in the IP object creation form, TeemIp checks if a corresponding Global IP Setting exits for that organization and automatically creates one if required.
 +
 +When the Global IP Setting is automatically created, parameters are set with the default values defined in TeemIp's data model. It is however possible to overload these default values through the general Configuration file, as described below.
 +===== Configuration File =====
 +The standard General Configuration file that can be reached under the Configuration menu may host parameters for TeemIp. If any, these will be grouped within the "Modules specific settings" part, under the **teemip-ip-mgmt** block. This block hosts different set of parameters dedicated to different TeemIps features.
 +
 +<code>
 + 'teemip-ip-mgmt' => array (
 + 'feature_1' => array (
 +   ...
 + ),
 + ...
 + 'feature_n' => array (
 +   ...
 + ),
 + ),
 +</code>
 +
 +The following chapters describe the different features available.
 +
 +==== Default Global IP Settings ====
 +This block is used to overwrite the default TeemIp parameters defined in the data model. It contains sub-blocks of parameters dedicated to the different TeemIp extensions and a general attribute to enable or disable the whole block. All the parameters defined [[2_x:datamodel:ip-settings#global_ip_settings_properties|here above]] can be reset but only the ones that need to be overwritten should sit here.
 +
 +The structure of the block is as follows:
 +
 +
 +^  Name  ^  Type  ^  Allowed values  ^  Description  ^
 +| enabled | Boolean | true, false |
 +| **core_parameters** |||
 +| ... | All attributes that do not belong to a Teemip extension |||
 +| **ip_request_parameters** |||
 +| ... | All attributes defined in [[extensions:teemip-request-mgmt|TeemIp Request Management]] |||
 +| **zone_parameters** |||
 +| ... | All attributes defined in [[extensions:teemip-zone-mgmt|DNS Zone Management]] |||
 +
 +In the following example, only parameter 'request_creation_ipv4_offset' will be changed to 5 where its defaults value is 0.
 +
 +<code>
 + 'default_global_ip_settings' => array (
 +   'enabled' => true,
 +   'ip_request_parameters' => 
 +   array (
 +     'request_creation_ipv4_offset' => 5,
 +   ),
 + ),
 +
 +</code>
 +
 +==== IP Address Navigation ====
 +This block defines how one can navigate between adjacent IPs, a feature described in the [[2_x:datamodel:ip-addresses#navigating_between_adjacent_ips|IP Address]] chapter. It holds the following parameter:
 +
 +^  Name  ^  Type  ^  Allowed values  ^ Description ^
 +| enabled | Boolean | true, false | Enable the block |
 +| within_subnet_only | Boolean | true, false | Limit the navigation within the subnet the IP belongs to |
 +
 +Example:
 +
 +<code>
 + 'ip_navigation' => array (
 +   'enabled' => true,
 +   'within_subnet_only' => true,
 + ),
 +</code>
 +
 +==== Automatic IP Release ====
 +TeemIp may periodically look for IPs that are attached to obsolete CIs and make sure they are in the "released" status. The behaviour of that feature is defined in the specific 'ip_release_on_ci_status' configuration block and is driven by the following parameters:
 +
 +^  Name  ^  Type  ^  Allowed values  ^ Description ^
 +| enabled | Boolean | true, false | Enable the process |
 +| debug | Boolean | true, false | Activate verbosity within the process | 
 +| periodicity | Number | Any integer | Defines the periodicity of the task |
 +| status_list | Array | List of valid statuses for the CIs | Defines the CI statuses under which the IP should be considered as released |
 +
 +
 +<code>
 + 'ip_release_on_ci_status' => array (
 +   'enabled' => false,
 +   'debug' => false,
 +   'periodicity' => 3600,
 +   'status_list' => 
 +   array (
 +     0 => 'obsolete',
 +   ),
 + ),
 +</code>
 +
 +<note important>
 +By default, the process is disabled both **globally** and at the **Global IP settings** level !
 +</note>
 +
 +==== Automatic IP Allocation ====
 +TeemIp may periodically look for IPs that are attached to implementation or production CIs and make sure they are in the "allocated" status. The behaviour of that feature is defined in the specific 'ip_allocate_on_ci_status' configuration block and is driven by the following parameters:
 +
 +^  Name  ^  Type  ^  Allowed values  ^ Description ^
 +| enabled | Boolean | true, false | Enable the process |
 +| debug | Boolean | true, false | Activate verbosity within the process | 
 +| periodicity | Number | Any integer | Defines the periodicity of the task |
 +| status_list | Array | List of valid statuses for the CIs | Defines the CI statuses under which the IP should be considered as allocated |
 +
 +<code>
 + 'ip_allocate_on_ci_status' => array (
 +   'enabled' => false,
 +   'debug' => false,
 +   'periodicity' => 3600,
 +   'status_list' => 
 +   array (
 +     0 => 'implementation',
 +     1 => 'production',
 +   ),
 + ),
 +</code>
 +==== Automatic IP Un-assignment ====
 +TeemIp may periodically look for IPs that are **not** attached to any CIs and make sure they are in the "unassigned" status. The behaviour of that feature is defined in the specific 'ip_unassign_on_no_ci' configuration block and is driven by the following parameters:
 +
 +^  Name  ^  Type  ^  Allowed values  ^ Description ^
 +| enabled | Boolean | true, false | Enable the process |
 +| debug | Boolean | true, false | Activate verbosity within the process | 
 +| periodicity | Number | Any integer | Defines the periodicity of the task |
 +| target_status | Array | Any IP address status | Defines the status that an IP must have when not attached to a CI |
 +
 +<code>
 + 'ip_unassign_on_no_ci' => array (
 +   'enabled' => false,
 +   'debug' => false,
 +   'periodicity' => 3600,
 +   'target_status' => 'unassigned',
 + ),
 +</code>
 +==== IP Watermarks ====
 +Capacity planning in TeemIp is done on the fly i.e. when an IP address is added or removed to or from an IP Range or subnet. It can be done as well through a background task which behaviour is defined in the specific 'handle_ip_watermarks' configuration block and is driven by the following parameters:
 +
 +^  Name  ^  Type  ^  Allowed values  ^ Description ^
 +| enabled | Boolean | true, false | Enable the process |
 +| debug | Boolean | true, false | Activate verbosity within the process | 
 +| periodicity | Number | Any integer | Defines the periodicity of the task |
 +| target_classes | Array | List of IP classes | Defines the list of IP classes which the capacity planning applies to |
 + 
 +<code>
 + 'handle_ip_watermarks' => array (
 +   'enabled' => false,
 +   'debug' => false,
 +   'periodicity' => 86400,
 +   'target_classes' => 
 +   array (
 +     0 => 'IPv4Subnet',
 +     1 => 'IPv4Range',
 +   ),
 + ),
 +</code>
2_x/datamodel/ip-settings.txt · Last modified: 2024/06/25 14:19 by cnaud