# Patent

## Title
Default internet traffic and transparent passthrough

## Abstract

A method for routing packets sent from a user to the internet is provided for systems in which the user is connected to a private network. The method includes: extracting a source network address from the packet; using said source network address to retrieve a user profile for the user; examining said user profile to determine whether to route the packet through the private network or to route the packet directly to the Internet; and routing said packet according to said profile. This allows a user or network provider to choose whether to route packets destined for the Internet directly to the Internet rather than through the private network, thus preventing excessive network traffic on the private network.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of co-pending U.S. patent application Ser. No. 10/117,803, filed on Apr. 4, 2002, entitled “Default Internet Traffic and Transparent Passthrough” in the name of the same inventors and commonly owned herewith, which is a continuation of Ser. No. 09/223,243, filed Dec. 30, 1998, now U.S. Pat. No. 6,490,290.


BACKGROUND OF THE INVENTION
1. Field Of The Invention
The present invention relates to the field of computer networks. More particularly, the present invention relates to allowing communications between a user and the Internet without passing the communications through a private network.
2. The Background
In recent years, “intranets” have been rising in popularity, especially with large companies. An intranet is an internal network that serves only a specific type of person (such as employees of a corporation, or students at a school). The intranet is usually not accessible to the general public. Intranets have become popular mainly because they allow for much more productive communication between users within the network, even when the users are dispersed over a wide geographic area (such as in multi-national corporations).
FIG. 1 is a block diagram depicting one way to connect to an intranet. Personal computer 10 connects through a link 12, generally a Point-to-Point Protocol (PPP) link, to an Internet service provider (ISP) or access point (AP) 14. The ISP or AP 14 then connects through link 16 to the Intranet 18.
Many entities that maintain intranets, however, have also wanted to offer users access to the Internet as well. There were, however, a limited number of ways that this could be accomplished. The first, and most simple, way would be for the user to first terminate the existing connection between the PC 10 and the ISP or access point 14. Then the user could log into the Internet. The major drawbacks of this solution are obvious. It does not allow for simultaneous connection to an intranet and the Internet, thus limiting the productivity of the user. Additionally, it requires termination of the link between the PC and the ISP, thus using up valuable time on the user's end, as he has to re-initiate a connection process.
The second way an entity could offer access to the Internet is to have a preconfigured connection from the intranet to the Internet, such that communications between the user and the second intranet or Internet pass through the intranet. FIG. 2 is a block diagram illustrating a connection to the Internet 62 through an intranet 58. A user at PC 50 maintains a connection 52 to ISP 54, which is connected to the intranet 58. Intranet 58 is then connected through link 60 to the Internet 62. The drawback of this solution is that the traffic from the user at PC 50 to the Internet 62 passes through the intranet 58. This increases the traffic traveling through the intranet 58 and poses a security risk to the information sent via the intranet 58.
A Virtual Private Network (VPN) is a private network configured to communicate with its users over the Internet, utilizing a technique called tunneling as to ensure that the data cannot be read by unauthorized users. Tunneling involves encapsulating a packet of data around a frame or packet of a different protocol for transport. Security protocols such as the IP Security Protocol (IPSEC) may also be utilized in order to further reduce the chances of unauthorized access. Thus, the link between the ISP and the intranet in the examples described above (16 in FIG. 1 and 56 in FIG. 2) may be virtual private networks.
Even when using a VPN, the same problems arise in directing traffic to and from the Internet when the user is connected to an intranet.
What is needed is a method by which an entity may provide Internet access to its users without encountering the problems that arise in passing Internet traffic through the intranet.
SUMMARY OF THE INVENTION
A method for routing packets sent from a user to the internet is provided for systems in which the user is connected to a private network. The method includes: extracting a source network address from the packet; using said source network address to retrieve a user profile for the user; examining said user profile to determine whether to route the packet through the private network or to route the packet directly to the Internet; and routing said packet according to said profile. This allows a user or network provider to choose whether to route packets destined for the Internet directly to the Internet rather than through the private network, thus preventing excessive network traffic on the private network.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram depicting one way for a user to connect to an intranet.
FIG. 2 is a block diagram illustrating a connection to the Internet through an intranet.
FIG. 3 is a diagram illustrating the use of a gateway to couple users with a private network and the Internet in accordance with a presently preferred embodiment of the present invention.
FIG. 4 is a flow diagram illustrating a method for routing a packet sent from a user to the Internet in accordance with a presently preferred embodiment of the present invention.
FIG. 5 is a diagram illustrating a packet in accordance with the IP protocol.
FIG. 6 is a diagram illustrating a user profile corresponding to a single user in accordance with a presently preferred embodiment of the present invention.
FIG. 7 is a diagram illustrating a user profile corresponding to a group of users in accordance with a presently preferred embodiment of the present invention.
FIG. 8 is a block diagram illustrating a gateway for routing a packet in accordance with a presently preferred embodiment of the present invention.



DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
Those of ordinary skill in the art will realize that the following description of the present invention is illustrative only and not in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons.
In accordance with a presently preferred embodiment of the present invention, the components, process steps, and/or data structures are implemented using a gateway device. Different implementations may be used and may include other types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will readily recognize that devices of a less general purpose nature, such as hardwired devices, devices relying on Field Programmable Gate Array (FPGA) or Application-Specific Integrated Circuit (ASIC) technology, or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herewith.
A method for providing Internet access to users connected to a private network is provided. This method may be executed by a gateway. A gateway is a device which performs protocol conversion between different types of networks or applications. The term gateway is not meant to be limited to a single type of device, as any device, hardware or software, that may act as a bridge between the user and the networks may be considered a gateway for purposes of this application.
FIG. 3 is a diagram illustrating the use of a gateway to couple users with a private network and the Internet in accordance with a presently preferred embodiment of the present invention. Computer 80 connects to gateway 82 through a modem 84, while computers 86a and 86b couple to a router 88, then through modem 90 to gateway 82. Gateway 82 may then interface computers 80, 86a, and 86b to an intranet or private network 92 and the Internet 94 or both simultaneously.
FIG. 4 is a flow diagram illustrating a method for routing a packet sent from a user to the Internet according to a presently preferred embodiment of the present invention. This method may be executed by a gateway. The user is connected to the gateway and the gateway is connected to a private network. The gateway may be coupled to the Internet, but does not have to be in order for this method to be performed. If, however, the method determines that the packet should be routed directly to the Internet, a direct Internet connection will have to be established if one does not already exist. At 100, a source address is extracted from the packet. The source address is a unique address which may be used to identify the user who sent the packet. FIG. 5 is a diagram illustrating an IP packet in accordance with a presently preferred embodiment of the present invention. IP packet 150 contains a source address field 153 and a destination address field 154. The source network address may be extracted from the source address field 152. The present invention, however, is not limited to use with IP packets and those of ordinary skill in the art will recognize that different types of packets or transmission data structures may be utilized.
At 102, the gateway determines if the user has logged on to the gateway yet. This may be determined in many ways, including searching through a list of logged on users and seeing if any of their source addresses match the source address from the packet.
If the user has logged on to the gateway, the process moves to 104, where the source address is used to find a user profile of the user who sent the packet. The user profile may contain various pieces of information regarding the user's account, including information as to whether any network traffic sent from the user to the Internet should be routed through the Internet.
The user profile may take on many forms. It may be stored within the gateway. It may be downloaded from an authentication server or other external device. The user profile may correspond to a single user or to a group of users. FIG. 6 is a diagram illustrating a user profile corresponding to a single user in accordance with a presently preferred embodiment of the present invention. The user profile 200 is identified by a user source address 202 and may contain a flag 204 indicating whether traffic sent to the Internet should be directly forwarded to the Internet for the corresponding user. FIG. 7 is a diagram illustrating a user profile corresponding to a group of users in accordance with a presently preferred embodiment of the present invention. This type of user profile may be used to store information on every user who subscribes to an ISP or any other grouping of users. User profile 250 contains a user source address 252 for each user in the group, along with a corresponding flag 254 for each user in the group indicating whether traffic sent to the Internet from each user should be directly forwarded to the Internet.
Both types of user profiles may also contain additional pieces of information about the user. The descriptions of the user profiles above are not meant to be limiting and the exact structure of the profiles may be modified in many different ways.
Referring back to FIG. 4, at 106 the gateway examines the user profile to determine whether to route the packet through the private network or to route the packet directly to the Internet. The precise method by which the gateway performs this task depends on the implementation of the user profile. For the user profile depicted in FIG. 6, this may involve searching through multiple user profiles until one that has a user address 202 matching the user network address is found. For the user profile in FIG. 7, this may involve retrieving the user profile corresponding to the group that the user belongs, and then searching the user addresses 252 in the user profile 250 until one that matches the user network address is found. In both cases, the corresponding flag may be checked in order to determine whether to route the packet through the private network or to route the packet directly to the Internet.
Referring back to FIG. 4, at 108, the gateway then routes said packet according to the user profile.
One additional aspect that should be addressed is how to deal with packets sent from a user who, while connected to the gateway, has not logged on to the gateway yet. A user who has logged on to the gateway may have a user profile. However, if a user has not logged on to the gateway, he cannot have a user profile. There is currently no way to link a user profile with an unknown user, since user profiles are, by definition, associated with particular users (most commonly by utilizing the user's IP address). In order to remedy this situation, the gateway may contain a global flag, indicating whether packets sent from users to the Internet should be routed directly to the Internet or through a private network when those users have not logged in to the gateway. Thus, at 110, the global flag is examined to determine whether to route the packet through the private network or route the packet directly through to the Internet if the user has not logged on to the gateway. At 112, the packet is routed according to the global flag if the user has not logged on to the gateway.
FIG. 8 is a block diagram illustrating a gateway for routing a packet in accordance with a presently preferred embodiment of the present invention. Gateway 300 includes a source network address extractor 302, which extracts a source network address from the packet. Referring to FIG. 5, the source network may be extracted from the source address field 202 of IP packet 200. A user profile retriever 304 is coupled to the source network address extractor 302 and also coupled to one or more user profiles 306. The user profile retriever uses the source address extracted by the source network address extractor 302 to find a user profile corresponding to the user who sent the packet. As described above, the user profile may take many different forms, and the precise process by which the source network address extractor 302 finds the user profile is tied to the structure and organization of the user profiles.
A user profile examiner 308 is coupled to the user profile examiner 306. The user profile examiner examines the user profile found by the user profile retriever 304 to determine whether to route the packet through the private network or route the packet directly to the Internet. Again, the user profile may contain a flag which indicates the answer. A router 310 is coupled to the user profile examiner and is coupled to either a private network or to the Internet by way of a switch 312, the switch controlled by what determination was made by the user profile examiner 308.
A global flag 314 may indicate how to route the packet if the user has not logged on to the gateway. Therefore, a global flag examiner 316 is coupled to the global flag and examines the flag to determine the default setting if the user has not logged on to the gateway. Router 310 is coupled to the global flag examiner 316 via a switch 318 if the user has not logged on to the gateway. The router then uses this information (rather than information taken from a user profile) in routing the packet.
While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.

## Claims

1. A method comprising:
determining whether a device has logged on to a gateway having connections to a private network and to an Internet, wherein a user profile is associated with the device; and
routing a packet according to a global flag, the global flag indicating whether to route the packet to the Internet directly or through the private network, the packet sent from the device to the Internet.

2. The method of claim 1, wherein the user profile corresponds to multiple users in a group.

3. The method of claim 1, wherein the user profile is retrieved from an authentication server.

4. A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method, the method comprising:
determining whether a device has logged on to a gateway having connections to a private network and to an Internet, wherein a user profile is associated with the device; and
routing a packet according to a global flag, the global flag indicating whether to route the packet to the Internet directly or through the private network, the packet sent from the device to the Internet.

5. The program storage device of claim 4, wherein the user profile corresponds to multiple users in a group.

6. The program storage device of claim 4, wherein the user profile is retrieved from an authentication server.

7. An apparatus comprising:
means for determining whether a device has logged on to a gateway having connections to a private network and to an Internet, wherein a user profile is associated with the device; and
means for routing a packet according to a global flag the global flag indicating whether to route the packet to the Internet directly or through the private network, the packet sent from the device to the Internet.

8. The apparatus of claim 7, wherein the user profile corresponds to multiple users in a group.

9. The apparatus of claim 7, wherein the user profile is retrieved from an authentication server.

10. An apparatus for routing a packet sent from a device to the Internet, the device connected to a private network, including:
a global flag examiner configured to examine a global flag to determine whether to route the packet through the private network or to route the packet directly to the Internet if the device has not logged on to a gateway device having connections to the private network and to the Internet, wherein a user profile is associated with the device, and the packet is routed according to the global flag if the device has not logged on to the gateway device.

11. The apparatus of claim 10, wherein the user profile corresponds to multiple users in a group.

12. The apparatus of claim 10, wherein the user profile is retrieved from an authentication server.

13. A network device apparatus for routing comprising:
an input interface;
an output interface;
a processor which executes instructions that cause the processor to:
determining whether a device has logged on to a gateway having connections to a private network and to an Internet, wherein a user profile is associated with the device; and

routing a packet according to a global flag, the global flag indicating whether to route the packet to the Internet directly or through the private network, the packet sent from the device to the Internet.

14. The apparatus of claim 13, wherein the user profile corresponds to multiple users in a group.

15. The apparatus of claim 13, wherein the user profile is retrieved from an authentication server.