Networking connection resolution assistant

Embodiments for automated accommodation of network configuration settings by a processor. A network connection request is detected. A learned, preexisting network configuration setting corresponding to the network connection request is matched to the network connection request. The network connection is established via the preexisting network configuration setting.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates in general to computing systems, and more particularly to, various embodiments for facilitating connection to a network using a computing processor.

Description of the Related Art

In today's society, consumers, users, and other individuals find themselves in interconnected computing environments (e.g., computing environments where the user is connected to another computing environment via one or more networks). Networked computing devices are increasingly found in places throughout homes, businesses, churches, and other locations. Additionally, the user may use a single device in a number of settings, with each setting having different networking criteria. For example, the user may use one network to connect his smartphone at home, and use a different network to connect his smartphone at work.

SUMMARY OF THE INVENTION

Various embodiments for automated accommodation of network configuration settings by a processor are provided. In one embodiment, by way of example only, a method for automated accommodation of network configuration settings is provided. A network connection request is detected. A learned, preexisting network configuration setting corresponding to the network connection request is matched to the network connection request. The network connection is established via the preexisting network configuration setting.

DETAILED DESCRIPTION OF THE DRAWINGS

As previously indicated, the use of devices connected through various networks has proliferated in recent years. Moreover, the use of the same device in a number of locations to access various networks has also proliferated. Attendant with each network connection (e.g., Local Area Networks (LANs), Wide Area Networks (WANs), Virtual Private Networks (VPNs), File Transfer Protocol (FTP) networks, and the like) are particular network configuration settings that enable the device to reach the particular network destination.

If, for example, a user works for some sort of business, more likely than not that business requires modification to the networking flow in order to connect to the business' internal business network. An example of such modification is use of the aforementioned VPN. A user would normally launch a VPN client (e.g., VPN application), click “connect,” wait for that connection to take place, and finally visit the private network they wish to access.

However, a user often forgets the VPN launch step (or other required network security measure(s), and simply, for example, opens a browser and expects to have access to a particular website. Only after the web browser or other application fails to connect to the remote Uniform Resource Locator (URL) address (e.g., “times out”) does it then dawn on the user that they have forgotten a necessary network configuration step in the connection process, such as forgetting to launch the VPN. In some situations, the issue may give rise to a service or help desk call, or at a minimum cause the expenditure of time and resources on the part of the user and/or IT support personnel, not to mention the lost productivity of the user until the situation is resolved.

In view of the foregoing, a need exists for mechanisms that identify, learn, categorize, and implement in real time, network configuration settings adjustments for devices to help alleviate the challenges described previously. To address these challenges, the mechanisms of the present invention present various solutions for automated network configuration settings management in, for example, a centralized setting and featuring control within and between distributed computing components. For example, IT administrators may assign automated networking configuration tasks per specific devices, such that if a recognized device attempts to make a connection, the appropriate networking configuration tasks are implemented as a background process (e.g., the user simply opens the web browser and the browser navigates to the internal private network address without delay). Additional related aspects and features of the mechanisms of the illustrated embodiments will be further described, following.

It will be noted that the terminology used herein referring to “network configuration settings” may refer to a wide variety of configuration settings relating in any way to any network. For example, the network configuration settings may specifically refer to VPN settings (including mechanisms for launching VPN applications, configuring VPN settings, and managing a VPN network). The network configuration settings may refer to local network management settings, remote network management settings, wireless and similar communication protocols settings, and still other settings. Thus, use of the terminology “network configuration settings” herein is intended to broadly refer to settings for facilitating the opening/establishment/closing of network connections, among other settings, and not simply the management of network settings themselves.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Computer system/server12may also communicate with one or more external devices14such as a keyboard, a pointing device, a display24, etc.; one or more devices that enable a user to interact with computer system/server12; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server12to communicate with one or more other computing devices. In addition, and as is contemplated, the computer system/server12may communicate to computing devices14attempting to perform network configuration operations, such as computers, smartphones, tables, and other devices. Such communication can occur via Input/Output (I/O) interfaces22. Still yet, computer system/server12can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter20. As depicted, network adapter20communicates with the other components of computer system/server12via bus18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

Workloads layer90provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation91; software development and lifecycle management92; virtual classroom education delivery93; data analytics processing94; transaction processing95; and, in the context of the illustrated embodiments of the present invention, various network configuration workloads and functions96. In addition, network configuration workloads and functions96may include such operations as network analytics, historical analysis, and as will be further described, network configuration control functions.

As will be described, various functional components referred to herein that perform various aspects of the present invention may be, in one embodiment, thought to be encompassed by the functionality depicted in network configuration workloads and functions96. These may include centralized repositories of network configuration information, for example. A centralized version of reference structures such as IP mappings, VPN databases, routing tables, and other information may be initiated, organized, searched, shared, and the like, for example.

One of ordinary skill in the art will appreciate that the network configuration workloads and functions96may also work in conjunction with other portions of the various abstractions layers, such as those in hardware and software60, virtualization70, management80, and other workloads90(such as data analytics processing94, for example) to accomplish the various purposes of the illustrated embodiments of the present invention.

As previously mentioned, users may have challenges when connecting to a particular network, such as a VPN in a business setting. Businesses and IT administrators would prefer, however, that the user's connection process be seamless. If a user directs, for example, their web browser to a URL or an application, which makes a call to a specific hostname/IP address (e.g., w3.tools.XYZ.com or 9.112.123.10), and every time the user makes the connection the associated traffic proceeds through a VPN tunnel, then it may be assumed that the instant VPN connection is needed for that particular connection. In addition, if every time a user connects to any URL that resolves to 9.* IP addresses, it may be assumed that the particular VPN tunnel is needed. These assumptions may be learned generalizations by the mechanisms of the present invention as will be further described.

The mechanisms of the illustrated embodiments seek to allow such generalizations to be memorialized as what will be termed “rules” herein. These rules may be configured (e.g., by an IT administrator), and/or the rules may be learned by the system. Since most users of such technology may belong to a particular business organization, most of the users will have the majority of the same rules. Accordingly, sets of rules may be distributed in the computing devices of various groups of employees, for example, and/or synchronized between various employee computing devices.

In one embodiment, the mechanisms of the illustrated embodiments may implement a variety of stored configuration settings and network alterations to facilitate a particular connection, as described, yet also, in case of a particular error (e.g., HTTP 404 or the like for other protocols), check the maintained stored configuration settings to find a matching setting, and in real time, recover, so the user continues to their intended destination.

In one embodiment, the present invention may implement two aspects to further the purposes of the present invention. A first aspect is a reference structure associating such network information as URLs and IP address. The reference structure may exist in the form of a cache on the client device, for example (e.g., external device14,FIG. 1). The reference structure may contain learned network configuration information, such as a last known IP address, to which a given URL resolved to. In an alternative embodiment, the learned network configuration information may include a specific IP address that the given URL resolves to most often. In the case of network configuration embodiments making use of VPN configuration information to automate connectivity, the reference structure may be referred to as a “VPNDNS” structure.

A second aspect of the present invention concerns what is referred to herein as a “rules engine.” In one embodiment, the rules engine is an IP rules engine, inclusive of a mapping between various IP addresses or a segment of an IP address (e.g., such as a “9.*”), and one or more actions to take if the client device attempts to access a specified IP (or, for example, an IP address in a given range) and fails/times out. The rules engine also may reside on the client device. The rules engine may be manually configured to associate various actions, such as associating a necessary VPN, for example, to protected network resources. In addition to the foregoing, in various embodiments, the rules engine may also engage in learning activities to glean historical behavior information from a user's network connection activity accessing protected network resources. For example, if a client device is determined to launch “XYZ VPN” whenever the client device accesses “9.*”, the rules engine may store this observation as a new rule.

In alternative embodiments, the rules engine and/or reference structure/VPNDNS may be synced to a new user device, and the information from the reference structure and rules engine may then be transferred to the new user device. In addition, the information in the reference structure and rules engine may be “shared” in various scenarios between existing devices and the new user device (or, for example, between an IT administrator device and the new device). To accomplish the various syncing functionality, centralized repositories of the information contained in the reference structure/VPNDNS and/or IP rules may reside (e.g., on computer system/server12, or elsewhere) as one of ordinary skill in the art will appreciate.

Turning now toFIG. 4, a block diagram of various structures (hardware and/or software) that may be implemented in effecting various mechanisms of the present invention. In addition, a flow chart diagram of an exemplary method400for automated accommodation of network configuration settings is depicted, in which various aspects of the present invention may be implemented.

The exemplary method400depicts exemplary various structures that are engaged to effect various steps of the method400, although one of ordinary skill in the art will appreciate that additional hardware, software and/or firmware components may be leveraged to effect various aspects of the present invention.

A common browser application402is represented (denoted for the application's use in the method400as “1”). Associated with the browser402is the IP stack404, inclusive of a plug-in networking watcher module406as shown. In one embodiment, the networking watcher module406executes on, or is otherwise associated with, the IP stack404. The IP stack404and networking watcher module406's contribution to method400is denoted inFIG. 4as “2” as shown.

The reference structure/VPNDNS408as shown includes various mapping information for network configuration settings, such as the URL “ABC.com” mapped to IP address 9.2.2.2 as shown, along with the URL “Partner.com” shown mapped to IP address 74.125.2.2. The VPNDNS structure408is denoted with “3” to show the VPNDNS408's contribution to the various steps in the exemplary method400.

Similarly, the IP rules engine410(denoted with “4” to show the rules engine's contribution to the method400), includes the various learned (or configured) IP configuration settings shown, such as any IP address with 9.*.*.* mapped to XYZConnectAnytime.exe, and the segment of IP addresses corresponding to 74.125.*.* mapping to ZYXClient.exe as shown.

In view of the foregoing, consider the following exemplary usage embodiment of various aspects of the present invention. A user may first attempt to access a website, such as “acme.com,” from a browser. The user's computing device then performs a DNS lookup, and determines the corresponding IP address (e.g., 9.x.x.x). The TCP/IP stack on the user's computing device, based on the DNS lookup and from historical data, may then determine whether the device has a valid or invalid route to this resource, and also make a determination whether a VPN is needed to access the destination.

The networking watcher then examines the IP rules engine for the found IP address, or at least part of the subject IP address starting from the left of the IP address. For example, a rule for “9.*” will match a given IP address of 9.5.11.111. At this stage, the networking watcher knows if the watcher has a corresponding rule for the given IP address.

If the destination IP address is one that does not require any network alterations, such as implementation of a VPN, the TCP/IP stack then sends the request to the proper destination. If the destination IP address is one that is determined to need networking alterations, such as launching a VPN, the networking watcher then determines the appropriate actions and executes them. Any actions found in the IP Rules Engine are executed by the Networking Watcher (for example, Launch XYZ VPN.exe). If a particular VPN has a dependency on another VPN, for example, the system will launch the VPNs in order of dependency.

Consider now method400, which illustrates exemplary steps in which various aspects of the present invention may be implemented. Method400begins (step414) with a user initiating loading a URL in his browser in step416) as performed by the browser. The client device's IP stack then performs a DNS lookup and attempts to determine the corresponding IP address (e.g., 9.x.x.x) (step418).

If an IP address is found, decision step420moves to step424, which queries whether the browser is routable to the intended destination. If an IP address is not found, the method400moves to step422, which again involves the client device's IP stack finding the last valid IP address in the VPNDNS structure matching the respective IP address, and then moves to step424.

Again, in step424, the method400queries whether the destination sought is routable from the browser. If yes, the method400then moves to step434below, where the destination page is loaded. The method400then ends (step436).

Returning to step424, if the given IP address is determined not to be routable, then a corresponding IP rule is attempted to be located in the IP rules engine (step426). If a match is not found (decision step428), a load failure occurs (step430). If a match is found, the corresponding action set is executed (step432) to allow the user device access, and the respective page is loaded (step434). The method400then ends (again, step436).

Turning now toFIG. 5, an additional flow chart of an exemplary method for automated accommodation of network configuration settings is depicted in method500, here again in which aspects of the present invention may be implemented. Method500begins (step502) with the detection of a network connection request. One or more learned and/or preexisting network configuration settings are matched to the corresponding network connection request (step506). The network connection is then established via preexisting network configuration setting(s) (step508). The method500then ends (step510).