====== Subnets ====== {{icons8-subnet-48.png }} {{icons8-subnetv6-48.png }} Subnets define broadcast domains. They are used to register physical or virtual LANs. By default, all subnets must be attached to a subnet block. ==== Subnet Properties ==== ^ Name ^ Type ^ Mandatory? ^ | **General Information** ||| | Organization | Foreign key to a(n) Organization | Yes | | Name | Alphanumeric string | No| | Status | Possible values: allocated, released, reserved, unassigned | Yes | | Type | Alphanumeric string | No | | Note | Multiline character string | No | | Requestor | Foreign key to a(n) Person | No | | Allocation date | Date (year-month-day) | No | | Release date | Date (year-month-day) | No | | **Automation** ||| | Allow automatic IP creation | Possible values: yes, no \\ Brought by the [[extensions:teemip-request-mgmt|IP Request Management]] extension | No | | **IP Information** ||| | Subnet Block | Foreign key to a(n) Subnet Block | Yes | | Subnet IP | IPv4 or IPv6 Address | Yes | | Mask | Possible values:\\ - from /16 down to /32 for IPv4 \\ - from /64 down to /128 for IPv6 | Yes | | Gateway IP | IPv4 or IPv6 Address | No | | Broadcast IP (for IPv4 only) | IPv4 Address | No | * IPv4 **Broadcast IP** is automatically calculated as the Subnet IP - 1 * **Gateway IP** is set in alignment with the default settings for subnets defined in the [[2_x:datamodel:ip-settings|Global IP Settings]]: Subnet IP + 1, Broadcast IP - 1 or Free allocation The attribute **Status** does have an impact on actions that can be done with a subnet. Meanings of different values are: * allocated: subnet is in use * released: subnet is not in use anymore and can be re-allocated if required. IPs of released subnets may be automatically released as well according to the [[2_x:datamodel:ip-settings|Global IP Settings]] * reserved: subnet is not in use yet but will be allocated (activated) at a point in time * unassigned: subnet exists in TeemIp without any clear status ==== Tabs ==== ^ Tab ^ Description ^ | Global Settings | Settings defined for the subnet's organization and values used at creation time | | Summary | Editable dashboard \\ Provides, by default, statistics on the registered IPs. This dashlet may be changed on a per user basis, like any other daslhet. | | Locations | All the Locations for the subnet | | Contacts | All the known contacts for the subnet | | Documents | All the documents linked to this IP Object | | NAT Subnets | All other Subnets linked to this Subnet in a NAT relationship | | VLANs | VLANs hosting the subnet | | VRFs | VRFs hosting the subnet | | Notifications | List of related notifications - Present if a notification trigger exists for that class | | Registered IPs | IP addresses belonging to the subnet | | IP Ranges | IP Ranges containted within the subnet | | IP Requests | IP requests related to the subnet. Brought by the [[extensions:teemip-request-mgmt|IP Request Management]] extension | | Activity panel | History of all changes made to the subnet block | ==== Listing Subnets ==== The Subnets shortcuts under the **IP Management** menu display all the IPv4 or IPv6 subnets of the selected organization or all IPv4 or IPv6 subnets registered in the application if no organization is selected. {{ classlist_ipv4subnet-3x.png }} {{ classlist_ipv6subnet-3x.png }} The **Registered IPs** column gives the percentage of the subnet that is already consumed by all the IP Ranges and IPs within the subnet. This information is not provided for IPv6 subnets due to their very large size. The Search tab will, of course, shorten the list according to the filtering elements you'll define in it. ==== Displaying Tree ==== Display can be switch from the listing view to tree view through the "Display Tree" action in the tool menu. {{ details-popup-menu-subnetdisplaytree-3x.png }} The tree view displays all subnets as well as all subnet blocks. When no default organization is selected, a tree per existing organization is displayed. Otherwise, only the tree that corresponds to the selected organization is displayed. {{ classtree_ipv4subnet-3x.png }} Display can be switched back to the listing view through the "Display List" action available in the tool menu. {{ details-popup-menu-subnetdisplaylist-3x.png }} ==== Subnet Calculator ==== A subnet calculator tool is available from the tool menu of subnet lists and subnet trees as well as from the **Other Actions** menu of the subnet details display. This utility greatly helps network computations using IP address, subnet mask or mask bits for IPv4 subnets and IP address and mask bits for IPv6 subnets. Note that you can as well access the calculator directly from the IP Management menu, under the "Tools" shortcut. {{ calculator_ipv4subnet-3x.png }} {{ calculator_ipv6subnet-3x.png }} Once required information is entered, IPv4 calculation provides : * IP Address * Subnet IP * Mask * CIDR * Wildcard Mask * Broadcast IP * Number of IPs * Number of usable Hosts * Previous Subnet IP * Next Subnet IP {{ calculator_output_ipv4subnet-3x.png }} And IPv6 calculation provides: * IP Address in compressed format * IP Address in canonical format * Network IP * Prefix * Prefix Mask * Last IP * Number of IPs * Previous Subnet IP * Next Subnet IP {{ calculator_output_ipv6subnet-3x.png }} In both cases, the tool will offer the possibility to create 3 subnet blocks and / or 3 subnets: * the one that corresponds to the computed subnet, * the one that corresponds to the previous subnet, * the one that corresponds to the next subnet. ==== Creating a new Subnet ==== From the listing or tree view or from any create action of a subnet badge, click on the {{plus-button.png?nolink|Edit icon}} to display the creation form. {{ classcreate_ipv6subnet-3x.png }} An implicit but intuitive set of rules must be followed when a subnet is created: * A subnet must be CIDR aligned, * A subnet cannot share any space with another subnet. In particular, it cannot contain any other subnet and cannot be contained in a subnet, * Mask for IPv4 subnets must be contained within /16 - /32, * Mask for IPv6 subnets must be contained within /64 - /128, * If not set, “Subnet Block” is automatically computed when “Subnet IP” and “Mask” are defined, * According to the "Symetrical Subnet NAT" parameter defined in [[2_x:datamodel:ip-settings|Global IP Settings]], symetrical NAT relations may be automatically created when subnets are added to the NAT tab. At creation time, global settings “Reserve Subnet, Gateway and Broadcast IPs at Subnet Creation” and "Gateway IP" can be overwritten. Note that a change on these parameters, if any, only applies to the current creation and don’t affect the value of the global parameter. If it is required to change them globally, this can be done through the [[2_x:datamodel:ip-settings|Global IP Settings]] menu. ==== Modifying a Subnet ==== From the detailed view of a subnet, click on the {{pen-icon.png?nolink|Edit icon}} button. The parameters that can be changed here are: Name, Status, Type, Note, Requestor, Allocation date, Release date as well as the lists of Locations, Contacts and Documents, VLANs and VRFs attached to the subnet. Subnet IP and size can only be changed on IPv4 subnets through the specific menus described below. ==== Navigating between adjacent Subnets ==== TeemIp provides an easy and efficient way to navigate between adjacent subnets. If the action is enabled, the left and rights arrows of the object menu {{navigate-icon.png?nolink|Navigate icon}} will bring you to the previous or next registered subnet in TeemIp. This action is driven by default parameters that can be overwritten in the configuration file. 'teemip-ip-mgmt' => array ( ... 'subnet_navigation' => array ( 'enabled' => true, 'within_block_only' => false, ), ... ), ^ Parameter ^ Description ^ | enabled| Enable or disable the function | | within_block_only| Limit the navigation to the block that the subnet belongs to or not | ==== Other Actions ==== Next to standard actions, a set of specific actions can be applied to subnets. These can be found in the "Other Actions" menu available from the details page. {{ details-popup-menu-subnetotheractions-3x.png }} Though size of IPv6 subnet may vary from /64 down to /128, the Shrink, Split and Expand actions are not available to them... yet. These specific actions are described in below chapters. ==== Shrink ==== The **Shrink** action applies only to IPv4 subnets. It is available from the **Other Actions** menu and allows you to reduce the size of a subnet by 2, 4, 8 or 16. When selected, the following page is displayed: {{ classshrink_ipv4subnet-3x.png }} The 3 first lines recall the main characteristics of the subnet. Other lines list the attributes that can be changed: ^ Name ^ Type ^ Mandatory? ^ | Requestor | Foreign key to a(n) Person | No | | Shrink by | Reduction scale to apply to the mask - 2, 4, 8 or 16 | Yes | The rules used at creation time apply here as well. On top of them, the shrink action follows its own set of rules: * Size of subnet must accommodate the scale of shrink. For instance, a /29 cannot be divided by 16. * All IP ranges included in the subnet must remain within the borders of the new subnet. When clicking the **Apply** button, the shrink action is launched and details on the resulting subnet is displayed. ==== Split ==== The **Split** action applies only to IPv4 subnets. It is available from the **Other Actions** menu and allows you to split a subnet in 2, 4, 8 or 16 subnets. When selected, the following page is displayed: {{ classsplit_ipv4subnet-3x.png }} The 3 first lines recall the main characteristics of the subnet. Other lines list the attributes that can be changed: ^ Name ^ Type ^ Mandatory? ^ | Requestor | Foreign key to a(n) Person | No | | Split in | Number of subnet to create within the same space - 2, 4, 8 or 16 | Yes | The rules used at creation time apply here as well. On top of them, the split action follows its own set of rules: * Size of subnet must accommodate the scale of split. For instance, a /29 cannot be split into 16. * All IP ranges included in the subnet must remain within the borders of the new subnets. None of them can sit across new subnets borders. When clicking the **Apply** button, the split action is launched. Result is displayed as follows: {{ classsplit_result_ipv4subnet-3x.png }} ==== Expand ==== The **Expand** action applies only to IPv4 subnets. It is available from the **Other Actions** menu and allows you to increase the size of a subnet. When selected, the following page is displayed: {{ classexpand_ipv4subnet-3x.png }} This action may change the IP of the subnet: * Expanding subnet 10.129.2.0/25 by 2 will produce subnet 10.129.2.0/24 * Expanding subnet 10.129.2.128/25 by 2 will produce same subnet 10.129.2.0/24 * Expanding subnet 10.129.3.0/25 by 4 will produce subnet 10.129.2.0/23 All subnets contained within the border of the new subnet will be absorbed, i.e. they will be deleted and all their IP Ranges and IPs will be kept and integrated in the new subnet. The 3 first lines recall the main characteristics of the subnet. Other lines list the attributes that can be changed: ^ Name ^ Type ^ Mandatory? ^ | Requestor | Foreign key to a(n) Person | No | | Expand by | Expansion scale to apply to the mask - 2, 4, 8 or 16 | Yes | The rules used at creation time apply here as well. On top of them, the expand action follows its own set of rules: * Size of subnet must accommodate the scale of expansion. For instance, a /19 cannot be expanded by 16 as TeemIp doesn’t take into consideration subnets greater than a /16. * The new subnet must be contained within the subnet blocks it is attached to. When clicking the **Apply** button, the expand action is launched and details on the resulting subnet is displayed. ==== List & Pick IPs ==== The **List & Pick IPs** action simply lists, in numerical order, all the IP ranges and IP addresses hosted within a subnet. It lists as well the free IP addresses and provides the possibility to directly register one of them. The list is limited to 4096 IPs. Should the subnet contain more IPs, then a preliminary screen asks the user to shorten subnet boundaries so that less than 4096 IPs are displayed. {{ classlistips1_ipv6subnet-3x.png }} Clicking on **Apply** will generate the list. {{ classlistips2_ipv6subnet-3x.png }} All free IPs can be created by clicking the appropriate {{ipmini-add-xs.png}} button. This will open a popup window where all IP details can be registered. If you don’t wish to proceed, the top right menus will lead you to your next page. ==== Find space ==== This action helps IP administrator to **find free space** of a given size within an IPv4 or IPv6 subnet and to allocate it if required. When selected, the following page is displayed: {{ classfindspace1_ipv4subnet-3x.png }} This screen allows you to select the size of the free space that you are looking for and the maximum number of offers that you want to receive. Note that offered space will not necessarily be CIDR aligned. First available space that matches will be offered. Once parameters are chosen, hitting the **Apply ** button will trigger the search action. The result is then displayed in a list format: {{ classfindspace2_ipv4subnet-3x.png }} All ranges offered can be transformed as IP ranges. By clicking the appropriate {{ipmini-add-xs.png}}, you’ll open a window where you’ll be able to create the requested object. If you don’t wish to proceed, the top right menus will lead you to your next page. ==== CSV Export IPs ==== This function exports in a text format all IPs of a given subnet: IPs that are registered (regardless their status: allocated, reserved, released or unassigned) and IPs that are not registered and that don’t exit as an object in TeemIp data base. The list is limited to 4096 IPs. Should the subnet contain more IPs, then a preliminary screen asks the user to shorten subnet boundaries so that less than 4096 IPs are displayed. {{ classcsvips1_ipv4subnet-3x.png }} Next to the attributes of an IP address, additional information fields are exported with each IP address: ^ Field ^ Possible values ^ Comment ^ | Registered | yes / no | True if registered in data base | | Id | Number | Id of object in data base | | IP Range | String | Name of IP range that the IP belongs to | Text can be selected and copied into another document.