The present disclosure relates generally to communication systems and more particularly to a method of forwarding IP data packets through a service network.
Access networks such as 2G/3G, LTE and fixed line access networks are connected to a gateway. Depending on the access type, the gateway node can be e.g. a Border Network Gateway (BNG), a Gateway GPRS Support Node (GGSN) or a Packet Gateway (PGW). At data session activation, the gateway provides end-users with an IP address; it handles authentication, accounting and charging and it may perform additional tasks like acting as Policy and Charging Enforcement Function (PCEF) in 3GPP networks. The gateway is the entry point to the Service Network which refers to an operator controlled network with one or multiple entities attached providing services that add value to the operator or to the end-user.
Service networks often include a number of Transparent Value Added Services (TVAS) which transparently process traffic traversing them. In the logical network architecture as shown in
It shall be noted that the terms “value added service” is to be given a very broad interpretation including real and potential added value which may be value for the end-user, value for the network provider, or potentially for other parties. Examples of TVAS could be Firewalls, Spam filters, Antivirus services, Content Filtering, Parental Control, Transparent Internet Caches, HTTP Header enrichment or Deep Packet Inspection.
The need for TVAS to be deployed in legacy networks has resulted in strong dependencies between the service implementation itself and the transport network, with current TVAS products often being based on networking appliance platforms or making use of such. One example of these dependencies is that on high throughput routing/switching platforms all traffic need to be traversed through TVAS despite of only a fraction of it being really processed. One further example is the need for high-availability comparable to transport equipment even though the service itself does not require such high-availability. It shall be ensured that traffic sent via a TVAS is not dropped due to a TVAS failure. A further example of the dependency between the service implementation and the transport network is the need to implement integrated Network Address Translation (NAT)/Network Address and Port Translation (NAPT) functionality to steer return traffic back to the same function. Strong integration with load balancing functions in cases where stateful TVAS functions require smart load balancing to the right instance results in TVAS product including both load balancers as component, or creating limitations like maximum number of instances or strict connectivity requirement between load balancers and TVAS servers.
An extension of the traffic chain separation as described in
The controller provides paths through the SDN for every data flow, identified by its five-tuple (source IP address, destination IP address, source port, destination port and protocol number). One example of a flow is depicted in
It is an object of the present invention to improve forwarding of IP data packets in a service network. This object is achieved by the independent embodiments. Advantageous embodiments are described in the dependent embodiments.
According to a first aspect, a method of controlling a forwarding of IP data packets through a service network is provided. The service network comprises at least one forwarding node which is configured to forward an IP data packet according to a forwarding rule and at least one controller which is configured to provide forwarding rules to the at least one forwarding node. At least one service-providing server is allocated to the service network. The IP data packet enters the service network through a gateway node and comprises an original source port number. The method comprises the steps of defining, by the controller, a path allocated to a service type through the at least one forwarding node and the at least one service-providing server and allocating an identifier to the service type, identifying the type of service. Further the controller provides path related forwarding rules to the at least one forwarding node based on the identifier and the identifier of the service type and a mapping rule between the identifier and the service type to the gateway node. The gateway node receives the IP data packet and determines to which service type said IP data packet refers to. In a next step the gateway node replaces the original source port number of the IP data packet with a source port number encoding the identifier of the determined service type based on the mapping rule. Then the IP data packet is provided to the at least one forwarding node and then forwarded by the at least one forwarding node on the path.
According to a further aspect of the invention a controller for controlling a forwarding of IP data packets, comprising an original source port, through a service network is provided. The controller is configured to provide forwarding rules to at least one forwarding node in the service network which is configured to forward an IP data packet according to the forwarding rules. At least one service-providing server is allocated to the service network and wherein the IP data packet enters the service network through a gateway node. The controller comprises a processing unit configured to define a path allocated to a service type through the at least one forwarding node and the at least one service-providing server and to allocate an identifier to the service type, identifying the type of service. The controller further comprises a first sending unit, configured to provide path related forwarding rules to the at least one forwarding node based on the identifier and a second sending unit, configured to provide to the gateway node, the identifier of the service type and a mapping rule between the identifier and the service type.
According to a further aspect of the invention a gateway node of a service network is provided. The gateway node comprises a first receiving unit, configured to receive an IP data packet and a second receiving unit, configured to receive an identifier of the service type and a mapping rule between the identifier and the service type. The gateway node further comprises two processing units, wherein the first processing unit is configured to determine which service type said IP data packet refers to and the second processing unit is configured to replace the original source port number in the IP header of the IP data packet with a source port number encoding the identifier of the determined service type based on the mapping rule. Further the gateway node comprises a forwarding unit, configured to forward the IP data packet to at least one forwarding node of the service network.
The present invention also concerns computer programs comprising portions of software codes in order to implement the method as described above when operated by a respective processing unit of a user device and a recipient device. The computer program is stored on a non-transitory computer-readable medium. The computer-readable medium may be a permanent or rewritable memory within the user device or the recipient device or located externally. The respective computer program may also be transferred to the user device or recipient device for example via a cable or a wireless link as a sequence of signals.
Further features and benefits of embodiments of the invention will become apparent from the detailed description below.
In the following section, the invention will be described with reference to exemplary embodiments illustrated in the figures, in which:
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. In the below, for purposes of explanation and not limitation, specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent to one skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. For example, although the exemplary embodiments are described in connection with GSM/UMTS/LTE standard terminology to illustrate the present invention, they are equally applicable to other kinds of mobile communication systems. Also, the invention may be practiced in any network to which mobile users may attach. For example, the present invention is applicable to, besides cellular networks, Local Area Networks (LANs), Wireless LANs (WLANs), or similar wireless networks, but also to wireline networks such as, for example, the intranet of a company or the Internet. Further, the term User Equipment (UE) used herein below may be any kind of mobile communication device like a mobile telephone, a Personal Digital Assistant (PDA), a network card, a laptop or any other mobile communication apparatus which is capable of communicating wirelessly (via an air interface) or wirelined with a network. Although a specific protocol stack is used below to describe the present invention, any other suitable protocol stack may equally be used.
Those skilled in the art will further appreciate that the functions explained herein below may be implemented using hardware circuitry, software means, or a combination thereof. The software means may be in conjunction with a programmed microprocessor or a general purpose computer, using an Application Specific Integrated Circuit (ASIC) and/or Digital Signal Processors (DSPs). It will also be apparent that when the present invention is described as a method, it may also be embodied in a computer processor and a non-transitory memory coupled to the processor, wherein the memory is encoded with one or more programs that perform the method when executed by the processor.
The path of a data packet through the forwarding nodes 44a, 44b, 44c of the SDN 44 can be named as a flow of a data packet. The controller 43 is responsible for defining such flows for the data packets. Further two transparent-value-added-service (TVAS) servers 45, 46 are allocated as service-providing servers to the service network 44. In another example it is possible to have more or less TVASs allocated to the Service Network 44. Each TVAS 45, 46 can be part of a flow for a data packet. It is possible that more than one TVAS 45, 46 may be part of a flow. In the depicted example of
Further a gateway node 42 is depicted in
The controller 43 is configured to define a path which is allocated to a service type. The path describes a way through the Service Network 44. In
For each service type, which could be firewalls with different parameters, spam filters or virus protection services with different level of protection, content filtering like parental control, transparent Internet caches, HTTP header enrichment or deep Packet Inspection a path or flow is defined and an identifier is allocated to the service type. This allocation can also be done in the controller 43. Further the controller 43 may be configured to provide the path related forwarding rules to the OF switches 44a, 44b, 44c based on the identifier so that each switch now comprises a forwarding table with the identifier and the forwarding behavior or route description. This is done in the control plane of the SDN 44. The OF switches 44a, 44b, 44c are now configured to check incoming packets and based on the determined identifier of the data packets the data packet is forwarded to the neighboring OF switch 44a, 44b, 44c or any other neighbor (e.g. a TVAS 45, 46 or an exit node). If the controller 43 receives additional information regarding for example the implementation of another service or the change of a QoS for a service type the controller 43 can update the OF switches 44a, 44b, 44c. If one OF switch 44a, 44b, 44c is out of order due to a technical problem the controller 43 has to re-arrange the paths for the affected service types. The definition of the flows or paths is therefore very flexible and can be adapted according to any circumstances in the SDN 44.
The controller 43 may further provide the identifier of the service type and a mapping rule between the identifier and the service type to the gateway node 42 in the control plane. The mapping rule is a definition of the relationship between a service type and the identifier. This can be done by implementing a table in the gateway node 42 comprising the identifier and the related service type in one row of the table. The service type description can e.g. be a complex fingerprint. With this information the gateway node 42 can assign an identifier to a data packet in relation to the service type which should be executed for this data packet.
An IP data packet is received by the gateway node 42 via the Access Network. The gateway node 42 can be a sole node or its function can be integrated into the GGSN of a UMTS network, the PGW of an LTE network or any other node of an Access Network. Referring to
In another exemplary embodiment, the gateway node 42 considers at least one parameter in one of the header fields of the received IP data packet. It is possible to check the source or destination IP address field in the IP header. Further it is possible that the gateway node 42 checks the original source port number or the destination port number to determine the applications for this IP data packet. Other fields are the protocol type field or multiprotocol label switching (MPLS) data to determine the requested service type. It is further possible that the parameter is a service identifier (I-SID) according to IEEE (Institute of Electrical and Electronic Engineers) standard 802.1ah or a service tag (S-TAG) according to IEEE 802.1ad. In another example the parameter can be a VLAN identifier in the Ethernet header according to standard IEEE 802.1Q.
In the data plane the gateway node 42 will replace the original source port number of the IP data packet with a source port number encoding the identifier of the determined service type based on the mapping rule. In one example the identifier consists of 6 bits which leads to 64 different service types. It is therefore necessary to reduce the port number information to the remaining bits and calculate a new source port number. If the original source port number consists of 16 bits the new source port number has a length of 10 bits+6 bits identifier information. Depending on the setup of the IP network it is also possible to just replace the 6 lowest bits of an original source port number with the identifier to build a new source port number. It is also possible to have more or less bits used for the identifier. Further it is possible to calculate a completely new source port number out of the determined identifier and the original source port number by using any mathematical calculation but it must be possible for the forwarding nodes 44a, 44b, 44c to decode the identifier out of the source port number. Therefore the source port number is not randomly chosen from a pool of ports but instead assigned such that it encodes a specific chain of TVASs 45, 46 and forwarding nodes 44a, 44b, 44c (OF switches) to be passed. The new source port number can also be named as a Traffic Steering Source Port (TSSP). As another example it is possible to allocate more than one path or flow to a service type to be able to do load balancing on the SDN.
The gateway node 42 will then provide the IP data packet with the replaced source port number to the at least one forwarding node 44a, 44b, 44c of the Service Network 44. The forwarding node 44a, 44b, 44c will forward the IP data packet to its neighboring node 44a, 44b, 44c based on the identifier decoded from the source port number. In other words, the IP packets traverse the software defined transport network 44. Provided that pre-defined paths per TVAS chain exist, the OpenFlow switches 44a, 44b, 44c can base the forwarding decision mainly on matching the source port number with entries in their flow tables. This will reduce the number of entries in the flow table and accelerate the processing speed in the OF switches 44a, 44b, 44c.
When the IP data packet enters a TVAS 45, 46 (in the example of
Whenever a new TVAS chain needs to be set up, the Path Provisioner configures the requested bidirectional paths within the OpenFlow network and the TVAS Chain Selector is updated to consider this new chain. New TVAS chains may be setup due to new business cases from the network operator, due to introduction of new TVAS, or due to instantiation of new instances of a particular TVAS for load balancing reasons. It shall be mentioned that load-balancing could also be achieved by different means not requiring the setup of new TVAS chains as seen by the TVAS Chain Selector function.
In another exemplary embodiment, the gateway node 52 sends the information (identifier and original source port number) to the second gateway node 59. After the IP data packet left the second gateway node 59 this information can be kept in the second gateway node 59 for the IP data packets in download direction (from the PDN/Internet 48 to the UE).
As an advantage, the paths are pre-provisioned for every service type. This reduces the amount of forwarding rules in each forwarding nodes of the Service Network. The forwarding rules are very short and easy to handle because they are only related to an identifier of the IP data packet. It is additionally very easy to change the setup of chains or paths in this Service Network 44 if new service-providing servers have to be inserted in any chain or path. Relevant information for the destination server of an IP data packet remains unchanged.
The implementation of a second gateway node 59 has the further advantage that it is possible to change the path during a communication session in which several IP data packets related to this communication are transferred through the Service Network 44. If the path through the service network changes due to (e.g.) congestion or a change in the required TVAS-setup to be applied to the IP data packets, which means different service types are selected implying different encoded service type identifier in the source port number, the second gateway node 59 hide any change on the source port number for a given flow of IP data packets by reassigning the original source port number at the exit of the service network. Depending on the setup of the service network 44 and the use case, the second gateway node 59, which can also be named as an inverse gateway node 59, may not be needed. If a change of service chains is not required during a data flow, this solution will work also without the inverse gateway node 59.
However, if the service chain or path changes for ongoing data flows are envisaged, extra care must be taken of the usage of mapping rules modifications in the Traffic Steering and inverse Traffic Steering. For some (transition) period of times, more than one rule will apply to the same end-to-end IP flows. For uplink traffic (traffic from the Access Network to the PDN/Internet) of a specific flow the mapping function must map traffic according to the new chain. The inverse mapping function must map traffic from both the TSSP of the old chain and the TSSP of the new chain to exactly the same original source port. For downlink traffic of the same flow the inverse mapping function must map traffic according to the new chain. The mapping function in the gateway node 52 must map traffic from both the TSSP of the old and the new chain to exactly the same original source port.
In another exemplary embodiment, the gateway node 52 and the second gateway node 59 may be combined in one physical entity. This will reduce the synchronization overhead.
In another exemplary embodiment, it is necessary that the TVAS requires original source port information. Some services such as TCP proxies may require the original source port information to map data flows internally. In this case, the TVAS 45, 46 can be “shielded” by a pair of inverse or second gateway nodes 59 and gateway nodes 52. Before the data flow enters the TVAS in uplink direction, the source port number is replaced by the original source port number. When the IP packets leave the TVAS towards the next TAVS or PoI, the original source port number is again replaced by the source port number encoding the identifier of the determined service type.
Gateway node 52 and second/inverse gateway node 59 can be implemented in multiple instances: The sufficient precondition to ensure all flows of the same data flow traverse the same instance and that each gateway node needs to be synchronized with a single inverse gateway node, is to enforce that traffic with the same source IP address entering the Service Network is always processed by the same instance. This can be achieved using existing routing technologies (e.g. policy based routing on source address).
The TVAS Chain Selector selects an appropriate TVAS chain, which might consists of at least one TVAS server, relating to a service type. It sends the relation between the five-tuple of an expected data flow and the TSSP/identifier to the gateway node via the second sending unit. The second sending unit is configured to provide to the gateway node the mapping rule between the identifier and the service type. Whenever a new TVAS chain needs to be set up, the Path Provisioner configures the requested bidirectional paths within the Service Network and the TVAS Chain Selector is updated to consider this new chain. New TVAS chains may be setup due to new business cases from the network operator, due to introduction of new TVAS, or due to instantiation of new instances of a particular TVAS for load balancing reasons. It shall be mentioned that load-balancing could also be achieved by different means not requiring the setup of new TVAS chains as seen by the TVAS Chain Selector function. The Controller further calculates the path related to a new service type and provides, via a first sending unit, path related forwarding rules to the at least one forwarding node based on the identifier.
According to
An option to gain capacity using internal instead of external interfaces is to collocate the chain selector and the gateway/inverse gateway in one physical entity. It shall be noted that a “chain selector” function can also be easily replicated into different instances without inter instance synchronization requirements.
In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.
This application claims the priority benefit under 35 U.S.C. §119(e) of U.S. Provisional Application No. 61/772,074 filed on Mar. 4, 2013, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61772074 | Mar 2013 | US |