Methods And Systems For Determining An Optimal Subnet

20170289095 · 2017-10-05

    Inventors

    Cpc classification

    International classification

    Abstract

    Methods and systems for recommending an optimal subnet for assignment are disclosed. In some embodiments, the methods include the following: receiving a request for assignment of a subnet, the request including request data; accessing a subnet database to review a current register of subnets; querying the current register of subnets to determine a size of each of the available subnets and a number of available subnets positioned numerically before and after each of the available subnets thereby generating subnet availability data; applying predetermined subnet recommendation rules to both the request data and the subnet availability data to determine a recommended subnet for assignment; updating the current register to indicate that the recommended subnet for assignment is unavailable; presenting the recommended subnet; confirming assignment of the recommended subnet; and if assignment of the recommended subnet is not confirmed, updating the current register to indicate that the recommended subnet is available.

    Claims

    1. A method performed by a data apparatus for recommending an optimal subnet for assignment, said method comprising: receiving a request for assignment of a subnet, said request including request data; accessing a subnet database to review a current register of subnets that includes available subnets for assignment and unavailable subnets for assignment; querying said current register of subnets to determine a size of each of said available subnets and a number of available subnets positioned numerically before and after each of said available subnets, a result of said querying step being generation of subnet availability data; and applying predetermined subnet recommendation rules to both said request data and said subnet availability data to determine a recommended subnet for assignment.

    2. The method according to claim 1, further comprising: updating said current register to indicate that said recommended subnet for assignment is unavailable; presenting said recommended subnet for assignment; confirming assignment of said recommended subnet for assignment; and if assignment of said recommended subnet is not confirmed, updating said current register to indicate that said recommended subnet for assignment is available.

    3. The method according to claim 1, wherein request data includes an estimated number of IP addresses needed.

    4. The method according to claim 3, wherein said estimated number of IP addresses needed is based on at least one of whether any future growth is likely and whether a requester is adding to an existing subnet of IP addresses.

    5. The method according to claim 1, wherein request data includes requester information, said requester information including at least one of a function or group that are associated with said IP addresses and requester credentials.

    6. The method according to claim 5, said subnet recommendation rules including (1) recommending a subnet including a default number of IP addresses based on a function or group associated with said IP addresses, (2) recommending a subnet that includes a default number of unused subnets or IP addresses positioned before and after said recommended subnet based on the function or group associated with said IP addresses, (3) checking said requester credentials to determine size limitations of said recommended subnet, (4) evaluating a selection criteria if multiple subnets meet said subnet recommendation rules to determine said recommended subnet.

    7. The method according to claim 6, wherein said selection criteria include selecting said recommended subnet according to at least one of the group consisting of: an alphabetical designation, by a number of IP addresses, whether it is a last subnet of a group of subnets, where it is a subnet having a largest gap of unassigned subnets between it and an assigned subnet, and its fragmentation index.

    8. A non-transitory computer storage media encoded with computer program instructions that, when executed by one or more processors, cause a computer device to perform an operation for recommending an optimal subnet for assignment, said operation comprising: receiving a request for assignment of a subnet, said request including request data; accessing a subnet database to review a current register of subnets that includes available subnets for assignment and unavailable subnets for assignment; querying said current register of subnets to determine a size of each of said available subnets and a number of available subnets positioned numerically before and after each of said available subnets, a result of said querying step being generation of subnet availability data; applying predetermined subnet recommendation rules to both said request data and said subnet availability data to determine a recommended subnet for assignment; updating said current register to indicate that said recommended subnet for assignment is unavailable; presenting said recommended subnet for assignment; confirming assignment of said recommended subnet for assignment; and if assignment of said recommended subnet is not confirmed, updating said current register to indicate that said recommended subnet for assignment is available.

    9. The computer storage media according to claim 8, wherein request data includes an estimated number of IP addresses needed.

    10. The computer storage media according to claim 9, wherein said estimated number of IP addresses needed is based on at least one of whether any future growth is likely and whether a requester is adding to an existing subnet of IP addresses.

    11. The computer storage media according to claim 8, wherein request data includes requester information.

    12. The computer storage media according to claim 11, wherein said requester information includes at least one of a function or group that are associated with said IP addresses and requester credentials.

    13. The computer storage media according to claim 12, said subnet recommendation rules including (1) recommending a subnet including a default number of IP addresses based on a function or group associated with said IP addresses, (2) recommending a subnet that includes a default number of unused subnets or IP addresses positioned before and after said recommended subnet based on the function or group associated with said IP addresses, (3) checking said requester credentials to determine size limitations of said recommended subnet, (4) evaluating a selection criteria if multiple subnets meet said subnet recommendation rules to determine said recommended subnet.

    14. The computer storage media according to claim 13, wherein said selection criteria include selecting said recommended subnet according to at least one of the group consisting of: an alphabetical designation, by a number of IP addresses, whether it is a last subnet of a group of subnets, where it is a subnet having a largest gap of unassigned subnets between it and an assigned subnet, and its fragmentation index.

    15. A system for recommending an optimal subnet for assignment, said system comprising: a user interface module for allowing a user to input and receive data to and from said system; a subnet database for maintaining a current register of subnets available for assignment and subnets unavailable for assignment and corresponding IP addresses; and a computer processor module in data communication with both said user interface module and said current subnet register database, said computer processor module including one or more processors configured to execute computer program instructions and computer storage media encoded with computer program instructions that, when executed by said one or more processors, cause a computer device to determine and recommend an optimal subnet to said user via said user interface module.

    16. The system according to claim 15, said computer program instructions comprising: receiving a request for assignment of a subnet via said user interface module, said request including request data; accessing a subnet database to review said current register of subnets; querying said current register of subnets to determine a size of each of said available subnets and a number of available subnets positioned numerically before and after each of said available subnets, a result of said querying step being generation of subnet availability data; applying predetermined subnet recommendation rules to both said request data and said subnet availability data to determine a recommended subnet for assignment; updating said current register to indicate that said recommended subnet for assignment is unavailable; presenting said recommended subnet for assignment to said user via said user interface module; confirming assignment of said recommended subnet for assignment via said user interface module; and if assignment of said recommended subnet is not confirmed, updating said current register to indicate that said recommended subnet for assignment is available.

    17. The system according to claim 15, wherein request data includes an estimated number of IP addresses needed.

    18. The system according to claim 15, wherein request data includes requester information, said requester information including at least one of a function or group that are associated with said IP addresses and requester credentials.

    19. The system according to claim 18, said subnet recommendation rules including (1) recommending a subnet including a default number of IP addresses based on a function or group associated with said IP addresses, (2) recommending a subnet that includes a default number of unused subnets or IP addresses positioned before and after said recommended subnet based on the function or group associated with said IP addresses, (3) checking said requester credentials to determine size limitations of said recommended subnet, (4) evaluating a selection criteria if multiple subnets meet said subnet recommendation rules to determine said recommended subnet.

    20. The computer storage media according to claim 19, wherein said selection criteria include selecting said recommended subnet according to at least one of the group consisting of: an alphabetical designation, by a number of IP addresses, whether it is a last subnet of a group of subnets, where it is a subnet having a largest gap of unassigned subnets between it and an assigned subnet, and its fragmentation index.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0006] The drawings show embodiments of the disclosed subject matter for the purpose of illustrating the invention. However, it should be understood that the present application is not limited to the precise arrangements and instrumentalities shown in the drawings, wherein:

    [0007] FIG. 1 is a schematic diagram of a subnet register according to some embodiments of the disclosed subject matter;

    [0008] FIG. 2 is a schematic diagram of methods and systems according to some embodiments of the disclosed subject matter; and

    [0009] FIG. 3 is a chart of a method according to some embodiments of the disclosed subject matter.

    DETAILED DESCRIPTION

    [0010] Referring now to FIGS. 2 and 3, aspects of the disclosed subject matter include systems and methods for automating the process of determining and recommending an optimal subnet for assignment. Some embodiments include a system 100 for recommending an optimal subnet for assignment. In some embodiments, system 100 includes the following cooperating modules that together with a computer device 101 receive and transform data to determine and recommend an optimal subnet for assignment: a user interface module 102; a subnet database 104; and a computer processor module 106.

    [0011] User interface module 102 includes mechanism, e.g., a graphical user interface 108, for allowing a user 110 to input data 111 and receive data 112 to and from the system. Typically, user 110 inputs a request for a subnet assignment and receives a recommended subnet.

    [0012] Subnet database 104 includes a current register 114 of subnets available for assignment and subnets unavailable for assignment and corresponding IP addresses. Referring again to FIG. 1, where available subnets and IP addresses are in bold, register 114 is typically arranged in a nested, multi-level arrangement. IP addresses are on the bottom level. The level immediately above the IP addresses is the subnet level, e.g., IP Addresses 1.1-1.15 are under Subnet 1, and any number of additional levels, e.g., A-C, may be included on top of the subnet level depending on the application. For example Group/Function A may represent a particular building, and Subnets 1 and 2 may include IP addresses assigned to two rooms, 1 and 2, in the building.

    [0013] Computer processor module 106 is in data communication with both user interface module 102 and subnet database 104. Computer processor module 106 includes one or more processors 116 configured to execute computer program instructions and computer storage media 118 encoded with computer program instructions 120 that, when executed by the one or more processors, cause computer device 101, e.g., personal computer, smartphone, etc., to determine and recommend an optimal subnet to user 110 via user interface module 102.

    [0014] Referring now to FIG. 3, some embodiments of the disclosed subject matter include a method 200 performed by a data apparatus for recommending an optimal subnet for assignment. Some embodiments include a non-transitory computer storage media encoded with instructions according to method 200.

    [0015] At 202, a request for assignment of a subnet is received, the request including request data. Request data typically includes an estimated number of IP addresses needed. The estimated number of IP addresses needed is often based on whether any future growth is likely and/or whether a requester is adding to an existing subnet of IP addresses. Request data includes requester information such as the function or group associated with the IP addresses and requester.

    [0016] At 204, a subnet database to review a current register of subnets that includes available subnets for assignment and unavailable subnets for assignment is accessed. At 206, the current register of subnets is queried to determine a size of each of the available subnets and a number of available subnets positioned numerically before and after each of the available subnets. A result of the querying step is the generation of subnet availability data.

    [0017] At 208, predetermined subnet recommendation rules are applied to both the request data and the subnet availability data to determine a recommended subnet for assignment. In some embodiments, the subnet recommendation rules include the following: (1) recommending a subnet including a default number of IP addresses based on a function or group associated with the IP addresses; (2) recommending a subnet that includes a default number of unused subnets or IP addresses positioned before and after the recommended subnet based on the function or group associated with the IP addresses; (3) checking the requester credentials to determine size or other limitations of the recommended subnet, e.g., only subnets that are designated as permitted to be assigned will be recommended and/or specific user may be limited to particular subnets; and (4) evaluating a selection criteria if multiple subnets meet the subnet recommendation rules to determine the recommended subnet. In some embodiments, the selection criteria include selecting said recommended subnet according to at least one of the group consisting of: an alphabetical designation, by a number of IP addresses, whether it is a last subnet of a group of subnets, where it is a subnet having a largest gap of unassigned subnets between it and an assigned subnet, and its fragmentation index.

    [0018] At 210, the current register is updated to indicate that the recommended subnet for assignment is unavailable. At 212, the recommended subnet for assignment is presented to the user, e.g., via a graphical user interface. At 214, assignment of the recommended subnet for assignment is confirmed, e.g., user selects an “accepted” button or similar. At 216, if assignment of the recommended subnet is not confirmed, the current register is updated to indicate that the recommended subnet for assignment is available.

    [0019] In some embodiments, the present disclosure is directed to a fragmentation index. The fragmentation index for a given subnet is the total number of subnets and IP addresses that will become unassignable with assignment of the given subnet, divided by the total number of subnets and IP addresses in the system. The assignable subnet with the lowest fragmentation index is the “optimal” candidate for assignment during the next request. In some embodiments, each subnet and IP address is displayed visually in a branching conformation, with visual identifiers used to differentiate assignable addresses from unassignable address. In some embodiments, this enables users to visualize the network and see assignable and unassignable addresses in an ordered manner, such as all those assignable addresses sharing a particular mask. In some embodiments, the visual identifiers are selected from the group consisting of: colors, alphanumerics, fonts, and the like and combinations thereof. Thus the system described herein efficiently distributes assignment of subnets and IP address while greatly simplifying and streamlining the assignment process.

    [0020] For determining a fragmentation index, the system first produces a binary tree of each subnet and IP addresses. In some embodiments, the system indexes only those addresses associated with a particular mask. Each assignable and unassignable subnet and/or address is then marked accordingly. In some embodiments, the system implements a recursive method wherein relevant (properly sized) assignable subnets are analyzed to determine if the parent subnet is already assigned. In the event all parents are unassigned, the system analyzes the patents of the patent, and so on.

    [0021] Methods and systems according to the disclosed subject matter offer advantages over known systems. No known systems recommend and or assign optimal subnets based on predetermined criteria. Methods and systems according to the disclosed subject matter include a subnet recommendation engine that optimizes use of a company's IP address space.

    [0022] Although the disclosed subject matter has been described and illustrated with respect to embodiments thereof, it should be understood by those skilled in the art that features of the disclosed embodiments can be combined, rearranged, etc., to produce additional embodiments within the scope of the invention, and that various other changes, omissions, and additions may be made therein and thereto, without parting from the spirit and scope of the present invention.