Embodiments of the present invention relate generally to packet networks. More particularly, this invention relates to a method for managing access point name (APN) and Internet protocol (IP) address.
In the last decade Wi-Fi has become the networking technology of choice at home and at enterprises for wireless users. It is also abundantly present at locations of nomadic computing such as cafes, airports and hotels. The umbrella wireless coverage is usually from macro-cellular network but the cost of carrying wireless data is significantly higher on macro-cellular network.
Many modern devices used by mobile user base (e.g., Smartphone, tablet, and laptop) are capable of using both Wi-Fi and cellular network. So it would seem logical to provide a seamless connectivity service that uses these complementary networks efficiently. Under the umbrella of fixed mobile convergence, there have been many efforts by the industry and by standards bodies to address this need. The interworked WLAN (IWLAN) is one such effort that is standardized by the third generation partnership project (3GPP). Even though IWLAN is an end to end solution complete with standardized architecture and protocols, it has basic shortcomings.
Under conventional architectures of packet core network (CN) that involve mobile devices connecting to the CN via a Wi-Fi Access Point (AP), all Internet protocol (IP) addresses and access point names (APNs) are managed by the CN. Thus, every time a mobile device connects to a mobile network operator's Wi-Fi hotspot, authentication must be performed with the CN. This is an undue, sometimes overwhelming, load on the CN. The overloading effect on the CN is most severe in cases where many mobile devices are moving in and out of the Wi-Fi network frequently, thus causing the CN to experience a signaling storm. Conventional architectures of CN also suffer another shortcoming regarding simultaneous connectivity to multiple APNs. Wi-Fi access mechanism of conventional architectures does not permit multiple simultaneous APNs connectivity as it is possible on a 3GPP network. This is a significant limitation with Wi-Fi networks served by a mobile operator.
Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
Various embodiments and aspects of the inventions will be described with reference to details discussed below, and the accompanying drawings will illustrate the various embodiments. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the present invention. However, in certain instances, well-known or conventional details are not described in order to provide a concise discussion of embodiments of the present inventions.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in conjunction with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification do not necessarily all refer to the same embodiment.
According to some embodiments of the invention, an architecture and set of mechanisms are provided to enable a packet core network (CN), such as a 3GPP network, avoid signaling overhead caused by mobile user equipment (UE), e.g., Wi-Fi devices, authenticating with the CN every time they move in and out of a wireless network, such as a Wi-Fi network, which is communicatively coupled to the CN. In one embodiment of the invention, an architecture and set of mechanisms are also provided to enable UEs to connect to one or more services provided by a network operator, such as a mobile network operator (MNO). In one embodiment, the mechanisms may require capabilities in a wireless local area network (WLAN) controller, such as a Wi-Fi controller, to interact with a WLAN gateway (WGW) coupling a WLAN with the Internet and/or a packet core network. However, the WLAN entity in the user device does not have to change the way it communicates with another entity. Nor would there be a burden on the user device to run end-to-end IPSec tunnel with a 3GPP network (e.g., a 3G or LTE network). Each network operates in its native manner while the correlation and internetworking responsibilities are borne by the WGW. Any system can securely identify and maintain a session with a WLAN endpoint using conventional associated communications mechanism. The WGW, on the other hand, with its wireless wide area network (WWAN) protocol (e.g., 3GPP protocol) abilities can interact with a WWAN subscriber database (e.g., HSS/3GPP authentication, authorization and accounting server) and/or one or more packet data network gateways (PDN GWs). Throughout this application, a Wi-Fi network is described as an example of a WLAN while a 3GPP network is described as an example of a WWAN network. However, it is not so limited; the techniques described herein can also be applied to other types of WLANs and/or WWANs.
According to one embodiment, when a UE transmits a DHCP request to the WGW via a WLAN controller, the WGW invokes an authentication, authorization and accounting (AAA) server of the MNO to authenticate the UE. In one embodiment, the AAA server determines if the UE is a customer of the MNO, and if so, the authenticated UE is granted default permissions, for example, access to the Internet. In one embodiment, the AAA server may also grant the authenticated UE other MNO hosted service(s) according to the service level the UE is eligible for. In one embodiment, when the AAA server determines that the authenticated UE is entitled to one or more of the MNO's hosted services, the AAA server returns the access point names (APNs) of the services that the authenticated UE is allowed to access. In one embodiment, the APNs are maintained in a local APN database maintained by the WGW. According to one aspect of the invention, a set of one or more domain names and/or IP subnet addresses of the host servers of the APN(s) hosting the operator services that the authenticated UE is allowed to access are also returned by AAA server. In another embodiment, the APN associated domain names and/or IP addresses are pre-provisioned in the WGW. In one embodiment, the set of one or more domain names and/or IP subnet addresses of the host servers are also maintained by the WGW in a local APN database maintained by the WGW.
In one embodiment, once a UE is authenticated, a DHCP server within the WGW assigns a local IP (LIP) address to the authenticated UE, wherein the LIP address is an IP address selected from a pool of local IP addresses maintained by the DHCP server. In one embodiment, the WGW communicates the LIP address, e.g., by transmitting it in a DHCP response, to the WLAN controller, which, in one embodiment, is used by WLAN controller to identify traffic to/from the UE while the UE is communicatively coupled to the WLAN network and exchange the UE traffic between the WGW and WLAN controller.
In one embodiment, an authenticated UE attempts to access a granted hosted service by transmitting a DNS request for an IP address of a domain name, i.e., the host server hosting the service. In one embodiment, when the DNS request is received by the WGW, the WGW looks up the local APN database to determine if the domain name is within a range of domains that the UE is allowed to access. In one embodiment, if the WGW determines that the UE is allowed to access the requested service, i.e., the requested domain name is within a range of domain names that UE has access to, the WGW establishes a tunnel, e.g., a GPRS tunneling protocol user plane (GTP-U) tunnel, with a PDN GW, wherein the PDN GW is selected based on the APN corresponding to the desired domain name, as indicated in the APN database. In one embodiment, upon completing the tunnel establishment, the WGW will receive an external IP address from the PDN GW that is assigned to the UE, which is maintained by the WGW in a local network address translation (NAT) database. In one embodiment, the external IP address is assigned to the UE by a DHCP server of the APN.
In one embodiment, after a tunnel is established, the WGW forwards the DNS request originated from the UE to the selected PDN GW which, in turn, forwards it to its local DNS server. In response, the DNS server of the APN provides the IP address of the requested domain name, which is communicated to the UE by the PDN GW, e.g., by transmitting it in a DNS response frame to the UE.
In one embodiment, subsequent data traffic between the UE and the host server passes through the WGW, which performs network address translation between the UE LIP address assigned by the WGW and one or more external IP addresses assigned to the UE by one or more PDN GWs of the MNO, thus allowing the UE to reach one or more APNs in addition to the Internet.
In one embodiment, when the last IP session termination is initiated by a PDN GW, UE, or timeout, the GTP-U tunnel between the WGW and the PDN GW is torn down. In one embodiment, the WGW will also release the external IP address assigned to the UE by the PDN GW, e.g., by sending a message to the PDN GW.
In one embodiment, WGW 115 is communicatively coupled to a mobile packet core network comprising of one or more APNs. Each APN includes a gateway, such as a PDN GW, that interfaces with WGW 115, allowing UEs to communicate with host servers hosting services that UE wishes to access. By way of example,
In one embodiment, when a UE moves within WLAN RAN 103 (e.g., a Wi-Fi hotspot), it attempts to connect with a packet core network, for instance, by transmitting a DHCP request to WGW 115 through WLAN controller 110. In one embodiment, WGW 115 includes, but is not limited to, authenticating and tunnel establishing logic (ATEL) 125 for invoking an AAA server, such as AAA server 180, to authenticate UE 101. In one embodiment, every successfully authenticated DE is granted default permissions, i.e., access to Internet 170. However, access to other MNO hosted services, e.g., those hosted on host server(s) 153 and 163 of APN1 150 and APN2 160, respectively, are permitted according to the service level the UE is eligible for, based on information maintained by AAA server 180. In one embodiment, AAA server 180 returns a set of one or more APNs of one or more hosted services that UE 101 is allowed to access. By way of example, if UE 101 is permitted to access services hosted on host servers 153 of APN1 150, AAA server 180 would return the APN corresponding to APN1 150. In one embodiment, the corresponding domain names and/or IP subnet addresses of the accessible host servers hosting the services are also provided by AAA server 180. Thus, continuing on with the above example, AAA server 180 would also return the domain names and/or IP subnet addresses corresponding to host servers 153. Accordingly, in one embodiment, the IP subnet addresses returned by AAA server 180 correspond to the IP addresses of the servers hosting the services that the UE is permitted to access, and the domain names returned by AAA server 180 are the equivalent text string representation of the IP subnet addresses. In one embodiment, the APNs, the corresponding domain names and/or IP subnet addresses are maintained by WGW 115 in an APN database, such as APN database 130.
Once authenticated, the UE may move in and out of WLAN RAN 103 (e.g., a Wi-Fi device moving in and out of Wi-Fi hotspots), and each time the UE moves back within WLAN RAN 103, it attempts to re-authenticate with the packet core network. This results in a signaling storm on the packet core network when the UE constantly roams in and out of WLAN 103. However, according to one embodiment of the invention, WGW 115 caches the authentication information of the UEs, such that when they move back within WLAN RAN 103, WGW 115 simply uses the cached information rather than re-invoking AAA server 180. Under such an embodiment, the packet core network avoids unnecessary loading when UEs roams around. In one embodiment, the cached authentication information of a UE times out after a predetermined period of inactivity from the UE, and authentication is re-invoked when the UE moves back within WLAN RAN 103.
In one embodiment, after successfully authenticating with AAA server 180, and in response to the DHCP request from UE 101, DHCP server 135 within WGW 115 selects an unused/unallocated UE LIP address from a pool of UE LIP addresses and assigns it to UE 101, which is communicated to the UE by WGW 115, e.g., by transmitting it in a DHCP response to WLAN controller 110. In one embodiment, the assigned UE LIP address is used by WLAN controller 110 to identify traffic to/from the UE while the UE is communicatively coupled to the WLAN and exchange the UE traffic between WGW and WLAN controller. In one embodiment, the allocated UE LIP is also maintained in network address translator (NAT) database 145 within WGW 115. Thus, according to this embodiment, the signaling overhead to the packet core network is avoided because WGW 115 has taken on the burden of allocating the UE with a LIP address, and the IP address allocation is transparent to the packet core network. The avoidance of such overhead is most useful in cases where the UE constantly roams around and moves in and out of hotspots, thus, constantly requesting for new IP addresses, without ever establishing any IP session with the packet core network. In other words, WGW 115 helps to prevent dormant UEs such as Wi-Fi devices passing through Wi-Fi hotspots from unnecessarily overwhelming the packet core network.
In one embodiment, once authenticated, UE 101 attempts to access a service hosted by an MNO's APN host server by sending a DNS request for an IP address of the desired domain name, i.e., the host server hosting the requested service. Upon receiving the DNS request, WGW 115 determines whether UE 101 is permitted to access the desired domain, i.e., whether the UE has permission to access the hosted service. In one embodiment, WGW 115 determines that UE 101 is permitted access to the desired domain if the desired domain is within the range of domains in APN database 130.
According to one embodiment, if WGW 115 determines that UE 101 is not permitted to access the requested service, WGW 115 blocks the DNS request from being forwarded to the packet core network, thus avoiding the unnecessary loading on the core network.
In one embodiment, if WGW 115 determines that UE 101 is permitted to access the requested service, WGW 115 determines the APN of the service according to the information in APN database 130. In one embodiment, WGW 115 identifies a PDN GW based on the APN, and determines if a tunnel exists between WGW 115 and the identified PDN GW. In one embodiment, if a tunnel does not already exist, WGW 115, for example, ATEL 125 of WGW 115, establishes a tunnel, e.g., a GPRS tunneling protocol user plane (GTP-U) tunnel, with the identified PDN GW. During the GTP-U tunnel establishment, the PDN GW assigns an external IP address to the UE, which is maintained by WGW 115 in NAT database 145 as a PDN GW assigned IP (PAIP) address, at an entry corresponding to the LIP address of the UE. In one embodiment, the information maintained in NAT database 145 is used by WGW 115 for performing network address translation, which is described in further details below.
In one embodiment, the DNS request from UE 101 is forwarded to the PDN GW which, in turn, responds by sending a DNS response, containing the IP address of the desired domain name, i.e., host server hosting the requested service, such as host servers 153 of network APN1 150 or host servers 163 of network APN2 160. In one embodiment, the IP address is provided by a DNS server within the network that hosts the service, e.g., DNS server 152 of network APN1 150, or DNS server 162 of network APN2 160. In one embodiment, subsequent communication between UE 101 and the desired domain (host server) passes through WGW 115, which includes network address translator (NAT) unit 140 for translating/replacing the PAIP address assigned to UE 101 by the PDN GW with the LIP address assigned to UE 101 by the WGW in the downlink traffic. In one embodiment, NAT unit 140 is also configured to replace, in the uplink traffic, the LIP address assigned to UE 101 by the WGW with the PAIP address assigned to UE 101 by the PDN GW.
In one embodiment, when the last IP session is terminated, e.g., by the PDN GW, UE, or timeout, the GTP-U tunnel between WGW 115 and corresponding PDN GW is torn down. In one embodiment, WGW 115 will also release the PAIP assigned to the UE by the DHCP server of the corresponding PDN, e.g., by sending a message to the PDN GW indicating that the tunnel should be torn down. In one embodiment, WGW 115 also releases the LIP assigned by DHCP server 135 of WGW 115, e.g., by removing the UE LIP from NAT database 145 and/or removing the UE LIP from APN database 130.
In one embodiment, APN database 130 includes one or more entries of domain definition 220, which identifies the range of domain names (i.e., host servers of services) that a successfully authenticated UE may access. In one embodiment, a successfully authenticated UE may be granted access to one or more hosted services, or it may not be granted access to any hosted services at all. However, in one embodiment, authenticated UEs are granted access to at least the Internet. By way of example, as illustrated in
In one embodiment, APN database 130 includes one or more entries of IP definition 230 which is a numerical equivalent of the text string representation of domain names in entry domain definition 220. Thus, for example, the range of domain names “*mms.operator.com” is numerically represented as an IP subnet address “10.10.10.0/24”, where the “24” indicates that only the 24 most significant bits (MSB) of the IP address identified in IP definition 230 are compared against the destination IP address of frames transmitted by a UE to a host server or against the source IP address of frames transmitted by a host server to the UE. Thus, “10.10.10.0/24” represents a range of IP addresses of host servers hosting the services that the DE is allowed to access. Accordingly, in embodiments of APN database 130 that include both entry domain definition 220 and entry IP definition 230, WGW 115 is capable of processing packets to/from the UE that include domains either represented by a text string or a numeric.
In one embodiment, APN database 130 includes one or more entries of APN 240, which identifies the APN that includes one or more host servers (as identified by entries 220 and/or 230 of the APN database) that host the one or more services that the UE (as identified by entry 210 of the APN database) is allowed to access. In one embodiment, an APN may be associated with one or more host servers. By way of example, as illustrated in
According to one embodiment, an entry of APN database 130 may time out after a predetermined period of inactivity between the corresponding UE and APN. In such a case, the timed-out entry may be removed from APN database 130. In one embodiment, an entry may also be removed from APN database 130 if the last IP session between the UE and APN is terminated, either by the corresponding PDN GW and/or UE.
The above description of APN database 130 is only intended for illustrative purposes. APN database 130 is not limited to the entries described above. APN database 130 of the present invention may include more or less entries than those described above. In one embodiment, WGW 115 may include one or more of such APN database 130. By way of example, in one embodiment, APN database 130 may not include entry 210. In such an embodiment, WGW 115 may include multiple APN databases, each corresponding to one or more UEs. The choice of which entries to include in APN database 130 is implementation specific, and the present invention is not limited to any particular number or type of entries in the APN database.
Referring now to
In one embodiment, NAT database 145 includes one or more entries of PDN GW ID 330, which identifies the PDN GW that assigned the PAIP as identified by entry 320 to the UE identified by entry 310. By way of example, as illustrated in
At block 410, a DHCP server within WGW (e.g., DHCP server 135 of
At block 415, WGW communicates the UE LIP address to the WLAN controller, e.g., by transmitting the UE LIP in a DHCP response to the WLAN controller. In one embodiment, the UE LIP address is used by the WLAN controller to identify traffic to/from the UE while the UE is communicatively coupled to the WLAN and exchange the UE traffic between WGW and WLAN controller.
At block 420, WGW performs network address translation between the LIP address of the UE and an external IP address assigned by one or more networks of the MNO to allow the UE to reach the one or more networks of the MNO in addition to the Internet. According to one embodiment, WGW performs network address translation of packets transmitted to/from UE by performing two operations. During the first operation, WGW compares the destination or source IP address as indicated in a packet to/from the UE against domain definition 220 and/or IP definition 230 of
Consider now a downlink packet transmitted by the same host server to the same UE as described above. In this case, when the downlink packet arrives at WGW 115 from the PDN GW, it will have a source IP address of “blah.mms.operator.com” and a destination IP address of 100.01.01.10. During the first operation, WGW 115 determines that “blah.mms.operator.com” is within the first range of domain definition 220 of APN database 130, and thus, WGW 115 determines that the downlink packet was transmitted by a PDN GW corresponding to APN-MMS. During the second operation, WGW 115 determines that the destination IP address of the downlink packet (100.01.01.10) matches the first IP address of entry PAIP 320, and APN-MMS matches the first APN of entry PDN GW 330 of NAT database 145. In other words, the combination of the destination IP address and the APN derived in the first operation results in a match of the first row of NAT database 145 as illustrated in
The above description of NAT is only intended for illustrative purposes. WGW 115 is not limited to performing NAT using the operations discussed above. WGW 115 of the present invention may use any NAT algorithm known in the art, which may include more or less operations than those described above.
According to one embodiment, WGW 115 stores the APNs and corresponding range of domain names and/or IP subnet addresses in an APN database, such as APN database 130 of
According to one embodiment, subsequent communication between UE 101 and the host server hosting the service passes through WGW 115. For example, transactions 615-617 illustrate the flow of uplink traffic, i.e., traffic from UE 101 to the host server, and transactions 618-620 illustrate the flow of downlink traffic, i.e., traffic from the host server to UE 101. In these transactions, the first IP address in the parenthesis indicates the source address, and the second IP address is the destination address. Thus, at transaction 615, UE 101 sends one or more uplink packets to the host server (not shown) via WLAN controller 110, WGW 115, and PDN GW 151, with the source IP address of “UE LIP” address and the destination IP address of “host IP”. In one embodiment, the UE LIP address is the LIP address assigned by a DHCP server within WGW 115, such as DHCP server 135 of
At transaction 618, PDN GW 151 forwards downlink traffic from a host server to WGW 115, destined for UE 101. In one embodiment, the downlink packets include source address of “host IP” address, and a destination address of “PAIP” address. In one embodiment, the host IP address is the IP address generated at transaction 611 and PAIP address is the IP address assigned to UE 101 at transaction 608. In one embodiment, WGW 115 performs NAT on the downlink packets using the NAT algorithm discussed above, or any other NAT algorithm well known in the art. As a result of the NAT operation, the destination IP address is translated from “PAIP” address to “UE LIP” address, and the downlink packets are forwarded to UE 101 via transactions 619-620.
Although process flow 600 of
According to one embodiment, control card 701 includes configuration database 712, DHCP server 725, authentication and tunnel establishing logic (ATEL) 735, and network address translator (NAT) unit 740. In one embodiment, configuration database 712 may be utilized to store an APN database such as APN database 130 of
In one embodiment, DHCP server 725 is configured to perform functions similar to those performed by DHCP server 125 of
In one embodiment, ATEL 735 is configured to perform functions similar to those performed by ATEL 135 of
In one embodiment, NAT unit 740 is configured to perform functions similar to those performed by NAT unit 140 of
Note that some of the functionality of control card 701 may be delegated or replicated to a line card. For example, certain information of database 712 may be replicated to line cards 702-704 and stored in a storage location (not shown) within line cards 702-704. Also note that some or all of the components as shown in
Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium (e.g., read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.), a machine (e.g., computer) readable transmission medium (electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.)), etc.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method operations. The required structure for a variety of these systems will appear from the description above. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of embodiments of the invention as described herein.
In the foregoing specification, embodiments of the invention have been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application claims the benefit of U.S. Provisional Application No. 61/683,146, filed Aug. 14, 2012, which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61683146 | Aug 2012 | US |