U.S. patent application number 15/512173 was filed with the patent office on 2017-08-31 for chaining of network service functions in a communication network.
The applicant listed for this patent is NOKIA SOLUTIONS AND NETWORKS OY. Invention is credited to Hanspeter RUCKSTUHL, Rainer STADEMANN.
Application Number | 20170250917 15/512173 |
Document ID | / |
Family ID | 51585107 |
Filed Date | 2017-08-31 |
United States Patent
Application |
20170250917 |
Kind Code |
A1 |
RUCKSTUHL; Hanspeter ; et
al. |
August 31, 2017 |
CHAINING OF NETWORK SERVICE FUNCTIONS IN A COMMUNICATION
NETWORK
Abstract
In an apparatus of a communication network first packets of a
data flow in a first direction are acquired, each having a first
service chain identifier identifying a first chain of services
which have been applied to the first packets in the first direction
of the data flow. The first service chain identifier represents a
classification result of classification functions used for
selecting the first chain of services. Based on the first service
chain identifier, a packet filter is calculated, which is
associated with a second chain of services to be applied to second
packets of the data flow in a second direction of the data flow
when the second packets enter the communication network in the
second direction.
Inventors: |
RUCKSTUHL; Hanspeter;
(Wolfratshausen, DE) ; STADEMANN; Rainer; (Berg,
DE) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
NOKIA SOLUTIONS AND NETWORKS OY |
Espoo |
|
FI |
|
|
Family ID: |
51585107 |
Appl. No.: |
15/512173 |
Filed: |
September 19, 2014 |
PCT Filed: |
September 19, 2014 |
PCT NO: |
PCT/EP2014/069993 |
371 Date: |
March 17, 2017 |
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 45/306 20130101;
H04L 45/36 20130101; H04L 43/028 20130101; H04L 47/2441 20130101;
H04L 47/32 20130101; H04L 41/5096 20130101; H04L 41/0893 20130101;
H04L 41/0806 20130101; H04L 45/38 20130101 |
International
Class: |
H04L 12/851 20060101
H04L012/851; H04L 12/721 20060101 H04L012/721; H04L 12/725 20060101
H04L012/725; H04L 12/26 20060101 H04L012/26; H04L 12/823 20060101
H04L012/823 |
Claims
1. A method for use by an apparatus of a communication network, the
method comprising: acquiring first packets of a data flow in a
first direction, each having a first service chain identifier
identifying a first chain of services which have been applied to
the first packets in the first direction of the data flow, wherein
the first service chain identifier represents a classification
result of classification functions used for selecting the first
chain of services; and calculating, based on the first service
chain identifier, a packet filter associated with a second chain of
services to be applied to second packets of the data flow in a
second direction of the data flow when the second packets enter the
communication network in the second direction.
2. The method of claim 1, comprising: determining, based on the
first service chain identifier, a second service chain identifier
identifying the second chain of services.
3. The method of claim 1, comprising: extracting from at least one
of the first packets a second service chain identifier identifying
the second chain of services.
4. The method of claim 2 or 3, comprising: determining, as the
second packets, packets which enter the communication network in
the second direction and match the packet filter; and adding the
second service chain identifier to the second packets.
5. The method of claim 1, comprising: storing, for the first
service chain identifier, filter rules for calculating the packet
filter or the second service chain identifier, wherein the filter
rules comprise translation rules for deriving the packet filter
from the first packets.
6. The method of claim 1, comprising: extracting from at least one
of the first packets filter rules for calculating the packet filter
or the second service chain identifier, wherein the filter rules
comprise translation rules for deriving the packet filter from the
first packets.
7. The method of claim 5, wherein the filter rules comprise a
mapping rule for determining the second service chain identifier
from the first service chain identifier.
8. The method of claim 5, wherein the translation rules identify
fields in the first packets used to calculate the filter rules, or
fields in the second packets used to determine the second service
chain identifier.
9. The method of claim 1, wherein the data flow is at least one of
a bidirectional data flow, an associated bidirectional data flow, a
downlink initiated data flow in which the first direction is a
downlink direction and the second direction is an uplink direction,
and an uplink initiated data flow in which the first direction is
the uplink direction and the second direction is the downlink
direction.
10. The method of claim 1, comprising: receiving packets of a data
flow in the first direction; selecting, based on the classification
functions, the first chain of services to be applied to the
packets; and adding filter rules for calculating the packet filter
or the second service chain identifier to the packets and
forwarding the packets as the first packets in the first
direction.
11. The method of claim 1, comprising: detecting packets which
enter the communication network and do not match the packet filter;
and handling the packets by at least one of dropping these packets,
applying a collocated classifier function to these packets,
modifying, adding or deleting header fields of these packets,
forwarding these packets to an L2/L3 routing/forwarding function,
and forwarding these packets to a packet classifier function.
12. The method of claim 1, comprising: advertising reachability of
IP addresses for which the data flow is handled by a service
chaining system providing the services of the first or second
chains.
13. The method of claim 1, comprising: imposing the same service
function instance used for the first packets in the first direction
in the second direction for the second packets.
14. The method of claim 1, comprising: extracting and temporarily
storing metadata from the first packets and injecting the metadata
in the second packets.
15. The method of claim 5, comprising: detecting that at least one
of the filter rules has become obsolete; and canceling the at least
one obsolete filter rule.
16. A computer program product embodied on a non-transitory
computer-readable medium, including a program for a control unit,
comprising software code portions for performing the steps of claim
1 when the program is run on the control unit.
17. (canceled)
18. The computer program product according to claim 16, wherein the
program is directly loadable into an internal memory of the control
unit.
19. An apparatus of a communication network, configured to: acquire
first packets of a data flow in a first direction, each having a
first service chain identifier identifying a first chain of
services which have been applied to the first packets in the first
direction of the data flow, wherein the first service chain
identifier represents a classification result of classification
functions used for selecting the first chain of services; and
calculate, based on the first service chain identifier, a packet
filter associated with a second chain of services to be applied to
second packets of the data flow in a second direction of the data
flow when the second packets enter the communication network in the
second direction.
20. The apparatus of claim 19, configured to: determine, based on
the first service chain identifier, a second service chain
identifier identifying the second chain of services.
21. The apparatus of claim 19, configured to: extract from at least
one of the first packets a second service chain identifier
identifying the second chain of services.
22. The apparatus of claim 20, configured to: determine, as the
second packets, packets which enter the communication network in
the second direction and match the packet filter; and add the
second service chain identifier to the second packets.
23. The apparatus of claim 19, configured to: store, for the first
service chain identifier, filter rules for calculating the packet
filter or the second service chain identifier, wherein the filter
rules comprise translation rules for deriving the packet filter
from the first packets.
24. The apparatus of claim 19, configured to: extract from at least
one of the first packets filter rules for calculating the packet
filter or the second service chain identifier, wherein the filter
rules comprise translation rules for deriving the packet filter
from the first packets.
25. The apparatus of claim 19, configured to: receive packets of a
data flow in the first direction; select, based on the
classification functions, the first chain of services to be applied
to the packets; and add filter rules for calculating the packet
filter or the second service chain identifier to the packets and
forward the packets as the first packets in the first
direction.
26. The apparatus of claim 19, configured to: detect packets which
enter the communication network and do not match the packet filter;
and handle the packets by at least one of dropping these packets,
applying a collocated classifier function to these packets,
modifying, adding or deleting header fields of these packets,
forwarding these packets to an L2/L3 routing/forwarding function,
and forwarding these packets to a packet classifier function.
27. The apparatus of claim 19, configured to: advertise
reachability of IP addresses for which the data flow is handled by
a service chaining system providing the services of the first or
second chains.
28. The apparatus of claim 19, configured to: impose the same
service function instance used for the first packets in the first
direction in the second direction for the second packets.
29. The apparatus of claim 19, configured to: extract and
temporarily store metadata from the first packets and injecting the
metadata in the second packets.
30. The apparatus of claim 23, configured to: detect that at least
one of the filter rules has become obsolete; and cancel the at
least one obsolete filter rule.
Description
BACKGROUND OF THE INVENTION
[0001] Field of the Invention
[0002] The present invention relates to networking, including
Software Defined Networking (SDN) and, more specifically, to
chaining of virtualized or physical network service functions to
provide or customize externally visible network services offered by
a Communication Services Provider (CSP) to his customers.
[0003] Related Background Art
[0004] Prior art which is related to this technical field can e.g.
be found in: [0005] Patent Document U.S. Pat. No. 8,612,612B1
[0006] Patent Document U.S. Pat. No. 8,654,668 B2 [0007] Patent
Document US 2014/0010085 A1 [0008] Patent Document US 2014/0050223
A1
[0009] The following meanings for the abbreviations used in this
specification apply: [0010] 3GPP 3rd Generation Partnership Project
[0011] CSP Communication Services Provider [0012] DF Data Flow--an
aggregate set of packet flows that match a set of [0013] packet
flow header parameter values/ranges [0014] DL Downlink [0015] DPI
Deep Packet Inspection [0016] FW Firewall [0017] IETF Internet
Engineering Taskforce [0018] IP Internet Protocol [0019] IPSec IP
Security [0020] MPLS Multiprotocol Label Switching [0021] NAT
Network Address Translation [0022] SCS Service Chaining System
[0023] SDN Software Defined Networking [0024] SDO Standards
Development Organizations [0025] SFC Service Function Chaining
[0026] TCP Transmission Control Protocol [0027] UDP User Datagram
Protocol [0028] UE User Equipment [0029] UL Uplink [0030] VLAN
Virtual Local Area Network [0031] WG Working Group
[0032] A network service--an externally visible service offered by
a network operator--can be built from distinct service functions
executed in a pre-determined sequence as shown in FIG. 1. Service
functions (e.g. Network Address Translation (NAT), Firewall (FW),
Deep Packet Inspection (DPI)) apply a distinct treatment to packets
of a data flow. Some service functions are bidirectional (i.e.
handle packets flowing in either direction), other service
functions are unidirectional (i.e. handle only uplink or only
downlink packets).
[0033] An ordered sequence of service functions is often referred
to as a service chain. Service chains can be [0034] bidirectional,
i.e. the service chains comprise only bidirectional service
functions and handle bidirectional data flows, which traverse the
same service functions in downlink (DL) and uplink (UL) direction,
albeit in reverse order, or [0035] unidirectional, i.e. the service
chains comprise only unidirectional service functions and handle
unidirectional data flows, or [0036] associated bidirectional, i.e.
the service chains comprise only unidirectional service functions
and handle only one direction of bidirectional data flows.
[0037] Service chains are selected by classification functions,
which match received data packets with policy and
customer/network/service profiles. Dependent on the policies and
profiles in use and data packets received, a packet classifier as
illustrated in FIG. 1 imposes a bidirectional service chain, an
unidirectional service chain or an associated bidirectional service
chain. When data flows are bidirectional, UL and DL classification
must be provisioned with pairs of matching filter rules--which are
referred to as UL filter rules and DL filter rules--such that the
packets flowing in either direction are directed into the desired
bidirectional or associated bidirectional service chain.
[0038] In the prior art, matching filter rules for the UL and DL
directions are used as depicted in FIG. 2 and described in the
above cited Patent Documents which are concerned with service
chaining.
[0039] Two basic deployment alternatives exist for classifiers.
[0040] Deployment alternative 1 (shown in FIG. 1) uses separate
classifiers for either traffic direction. [0041] Deployment
alternative 2 (shown in FIG. 2) uses just one classifier for both
traffic directions.
[0042] For both alternatives uplink and downlink filter rules must
be matched such that the desired service chain is selected for both
the uplink and downlink traffic direction.
[0043] Providing matching uplink and downlink packet filters
becomes challenging if service functions alter header parameters,
which are used to classify the data packets. For this case, in the
prior art there are two solutions alternatives, both with a fair
set of issues, for providing the classifier(s) with matching filter
rules for the UL and DL direction: [0044] Dynamic provisioning of
matching of filter rules as shown in FIG. 3: A filter rule for the
reverse direction is generated dynamically from an original filter
rule and from information provided by service functions. This
requires that the service functions report, in real-time,
modifications of packet header fields used for classification.
[0045] Static Provisioning of matching filter rules: The filter
rule for the reverse direction is derived from the original filter
rule and configuration settings for a packet treatment of service
functions. This allows that the classifier(s) can be configured
with the necessary filter rules already when a service chain is
deployed.
[0046] A common concept of any service chaining systems (as e.g.
the ones described in the referenced Patent Documents) is a service
chain identifier, which is determined by the classifiers. This
service chain identifier represents a classification result and
avoids re-classification at each forwarding element within the
service chaining system. In addition, the service chain identifier
facilitates an aggregation of multiple low bandwidth packet data
flows, which require the same packet treatment, into one high
bandwidth packet data flow.
[0047] Today's service chaining solutions cannot address a wide
range of scenarios, because matching filter rules cannot be
provisioned. These service chaining scenarios include: [0048]
service chains containing service functions, which "silently" alter
packet headers, [0049] service chains containing a large number of
service functions, such that maintaining matching filter rules
becomes too complex operationally, service chains extending across
multiple administrative domains, which are not willing to share
classification information. This case is rather typical for a
virtualized packet core, where one classification function is
provided by a mobile operator (data center tenant) whilst the other
classification function is provided by a data center provider.
SUMMARY OF THE INVENTION
[0050] The present invention aims at overcoming the above
drawbacks. For example, the invention aims at automatically
determining a reverse service chain.
[0051] According to at least one embodiment, the invention provides
a method, an apparatus and a computer program product for
automatically learning a reverse direction for bidirectional and
associated bidirectional service chains such that only single-ended
provisioning of classification rules is required. Once a service
chain has been determined e.g. based on provisioned classification
rules, the reverse service chain is automatically determined based
on information, e.g. a service chain identifier, which is included
in frames/packets belonging to a given service chain.
[0052] In the following the invention will be described by way of
embodiments thereof with reference to the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0053] FIG. 1 shows a diagram for explaining service chaining
terminology and basic architecture.
[0054] FIG. 2 shows a diagram illustrating UL and DL traffic flows
according to the prior art, which are classified using a pair of
matching filter rules to ensure bi-directionally correlated service
handling.
[0055] FIG. 3 shows a diagram illustrating live of a packet through
a service chaining system according to the prior art, which
requires dynamic matching of uplink and downlink filter rules.
[0056] FIG. 4 shows a diagram illustrating a configuration of a
service chaining gateway according to an embodiment of the
invention.
[0057] FIG. 5 shows a schematic block diagram illustrating a
configuration of a control unit in which embodiments of the
invention are implementable.
[0058] FIG. 6 shows a diagram illustrating an embodiment of the
invention in which the service chaining gateway is used within a
tenant gateway of a data center.
[0059] FIG. 7 shows a diagram illustrating the live of packets
through a service chaining system according to an implementation
example of the invention, in which packet filter and service chain
for a reverse path are dynamically learned.
[0060] FIG. 8 shows a diagram illustrating a standalone classifier
and chaining gateway according to an implementation example of the
invention, implementing a bi-directional service chain.
[0061] FIG. 9 shows a diagram illustrating a standalone classifier
and chaining gateway according to an implementation example of the
invention, implementing an associated bi-directional service
chain.
[0062] FIG. 10 shows a diagram illustrating a combined classifier
and chaining gateway according to an implementation example of the
invention, implementing a bi-directional service chain.
[0063] FIG. 11 shows a diagram illustrating a combined classifier
and chaining gateway according to an implementation example of the
invention, implementing an associated bi-directional service
chain.
DESCRIPTION OF THE EMBODIMENTS
[0064] In the following, embodiments and implementation examples of
the invention will be described by particularly referring to FIGS.
4 to 11.
[0065] FIG. 4 shows a diagram illustrating a configuration of a
service chaining gateway according to an embodiment of the
invention. The service chaining gateway can be deployed at the edge
of a service chaining system (SCS), and works in concert with a
(packet) classifier.
[0066] The service chaining gateway is an apparatus of a
communication network e.g. in a core domain, e.g. a mobile core
network, fixed access domain, e.g. a fixed core network, and/or
aggregation domain.
[0067] As depicted in FIG. 4, the service chaining gateway
comprises a dynamic service chain learning element, a service chain
selection element, service chaining policies and a service chain
selection clean-up function, which will be described in more detail
later on.
[0068] As a preliminary matter before exploring details of various
embodiments and implementation examples, reference is made to FIG.
5 for illustrating a simplified block diagram of a control unit 10
suitable for use in practicing the exemplary embodiments of this
invention. The control unit 10 comprises processing resources (e.g.
processing circuitry) 11, memory resources (e.g. memory circuitry)
12 and interfaces (e.g. interface circuitry) 13, connected via a
link 14. The control unit 10 may be part of and/or used by the
service chaining gateway of FIG. 4. The interfaces 13 provide
connections to and from elements outside a service chaining system
and to and from other elements within a service chaining
system.
[0069] According to an implementation example of the invention, the
memory resources 12 store a program assumed to include program
instructions that, when executed by the processing resources 11,
enable the control unit 10 to operate in accordance with the
embodiments of this invention, as detailed below.
[0070] In general, the embodiments of this invention may be
implemented by computer software stored in the memory resources 12
and executable by the processing resources 11, or by hardware, or
by a combination of software and/or firmware and hardware.
[0071] The memory resources 12 may comprise distributed storage
devices, may be of any type suitable to the local technical
environment and may be implemented using any suitable data storage
technology, such as semiconductor-based memory devices, magnetic
memory devices and systems, optical memory devices and systems,
fixed memory and removable memory. The processing resources 11 may
comprise distributed processing devices, may be of any type
suitable to the local technical environment, and may include one or
more of general purpose computers, special purpose computers,
microprocessors, digital signal processors (DSPs) and processors
based on a multi-core processor architecture, as non-limiting
examples.
[0072] The dynamic service chain learning element of the service
chaining gateway dynamically calculates filter rules, i.e. a packet
filter (e.g. TCP/IP 5-tuple--IP source address, IP destination
address, protocol, TCP/UDP source port, TCP/UDP destination port)
and a service chain identifier (also referred to as second service
chain identifier), associated with a reverse service chain (service
chain of reverse direction). This automatic calculation of filter
rules occurs when classified data packets (also referred to as
first packets), i.e. data packets with an associated service chain
identifier (also referred to as first service chain identifier),
are received from a service chaining system. The calculation of the
filter rules for the reverse direction (here also referred to as
second direction) is governed by the service chaining policies,
e.g. stored in a table with one row per service chain identifier,
containing filter rules to construct the packet filter for the
reverse direction and the service chain identifier for the reverse
direction. Note that the filter rules for calculating the packet
filter for the reverse direction are completely independent of a
packet treatment applied by service functions of the service
chain.
[0073] Alternatively, a (packet) classifier may determine not only
the first service chain identifier of the service chain starting at
its end, but also the far end service chaining policies (i.e.
mapping relation between the first service chain identifier and the
second service chain identifier and the translation rule to
determine the packet filter for the second packets from the first
packets) and include them in frames/packets sent into a given
service chain. This will allow the service chaining gateway to
determine the service chain identifier and packet filter for the
data flow in the second direction without locally configured
service chaining policies.
[0074] In other words, according to an embodiment of the invention,
in the service chaining gateway, first packets of a data flow in a
first direction are acquired, wherein each of the first packets has
a first service chain identifier identifying a first chain of
services which have been applied to the first packets in the first
direction of the data flow. The first service chain identifier
represents a classification result of classification functions used
for selecting the first chain of services e.g. by the packet
classifier, wherein the first service chain identifier is deleted
when the first packets leave the communication network.
[0075] Further, in the service chaining gateway, a packet filter is
calculated based on the first service chain identifier, wherein the
packet filter is associated with a second chain of services to be
applied to second packets of the data flow in a second direction of
the data flow when the second packets enter the communication
network in the second direction.
[0076] It is to be noted that the term "service chain identifier"
does neither imply a specific technology nor specific header
field(s).
[0077] According to an embodiment of the invention, the service
chaining gateway determines, based on the first service chain
identifier, a second service chain identifier identifying the
second chain of services.
[0078] There is also a case in which first packets, i.e. packets
with the first service chain identifier, include a second service
chain identifier identifying the second chain of services.
According to an embodiment of the invention, the service chaining
gateway stores, for the first service chain identifier, filter
rules for calculating the packet filter and/or the second service
chain identifier.
[0079] The service chain selection element of the service chaining
gateway installs the filter rules (i.e. packet filter and service
chain identifier) calculated by the dynamic service chain learning
element according to the service chaining policies. If a packet
matches a packet filter, the corresponding service chain identifier
is applied and the corresponding service chain is imposed. The
successful use of a filter rule is recorded, e.g. with some time
stamp, such that active and inactive filter rules can be
distinguished.
[0080] In other words, according to an embodiment of the invention,
the service chaining gateway determines, as the second packets,
packets which enter the communication network in the second
direction and match the packet filter, and adds the second service
chain identifier to the second packets.
[0081] The service chaining policies of the service chain gateway
provide two sets of policy rules: [0082] A mapping rule between the
received, i.e. first service chain identifier (associated with
already classified data packets incoming from the service chaining)
and the second service chain identifier associated with data
packets in the reverse direction. [0083] Translation rules
describing how the packet filter for the reverse direction (i.e.
incoming to the service chaining system) is derived from the
already classified data packets incoming from the service chaining
system. [0084] The translation rules will also identify packet data
fields, which should be used to calculate a new filter rule: [0085]
a) fields of data packets incoming from the service chaining system
(i.e. data packets which the classifier had previously classified,
which are also referred to as first packets), which are to be
evaluated to determine the filter rules, and [0086] b) fields of
data packets incoming to the service chaining system (i.e. data
packets which the chaining gateway has to classify, which are also
referred to as second packets) that must be filtered to determine
the service chain identifier.
[0087] In other words, according to an embodiment of the invention,
the service chaining policy rules (which are also referred to as
filter rules) comprise translation rules for deriving the packet
filter from the first packets, and a mapping rule for determining
the second service chain identifier from the first service chain
identifier. The translation rules may identify fields in the first
packets used to calculate the filter rules, and/or fields in the
second packets used to determine the second service chain
identifier.
[0088] The nature of the service chain, e.g. handling
(bidirectional) TCP/IP flows, typically determines the translation
rule for deriving the packet filter for the second packets from the
first packets. The service chaining policies can therefore be
determined and provisioned automatically when a bidirectional or
associated bidirectional service chain is defined and
provisioned.
[0089] The service chain selection clean-up function of the service
chaining system removes obsolete filter rules (packet filter and
associated service chain identifier) from the service chain
selection element. However, a filter rule installed in the service
chain selection element may be removed due to a number of triggers,
e.g. external triggers via m-, c-, or u-plane, internal triggers
such gateway restart, database reset, etc.
[0090] When the service chain selection element in the service
chaining gateway fails to provide a service chain identifier and
impose the corresponding service chain, e.g. no match with an
active filter rule could be found, handling of the corresponding
data packet is governed by corresponding service chaining policies.
A non-exhaustive set of such policy actions are: [0091] dropping
the data packet [0092] applying a collocated classifier function to
the data packet [0093] modifying, adding or deleting header fields
of the data packet [0094] forwarding the data packet to an L2/L3
routing/forwarding function [0095] forwarding the data packet to a
packet classifier function
[0096] Another embodiment of this invention is a collocation of the
service chaining gateway with a tenant gateway, which is a network
function providing the demarcation between provider and tenant
domain as illustrated in FIG. 6. This embodiment is particularly
well suited for data centers, because all the tenant traffic must
flow through the tenant gateway to get to the service chaining
system. A mobile network operator, who has decided to virtualize
its evolved packet core (EPC) and, in particular, its value adding
services functions (often referred to as the "Gi-LAN") and deploy
them in a data center is a likely candidate for using a data center
provider's service chaining gateway embodied in the tenant gateway.
In this scenario, the 3GPP standardized Packet Gateway Function
comprises the function of the (packet) classifier and the tenant
gateway comprises the service chaining gateway function.
[0097] FIG. 7 shows the life of data packets according to an
implementation example of this invention for a bidirectional
service chain, which performs Network Address Translation (NAT),
and a classifier which includes a packet classifier function (for
UL) and function of the service chaining gateway (for DL).
Essentially, the function of the service chaining gateway derives a
second service chain identifier from a first service chain
identifier associated with already classified data packets (first
packets) received from a User Equipment (UE) according to the
filter rule for chain 4711 "second service chain identifier is
4712", and the filter rule for the second packets according to the
translation rule "filter second packets on
sPort+dPort+Protocol+sIP+dIP with values of header fields
dPort+sPort+Protocol+dIP+sIP from first packets". The resulting
filter rule
(sPort=4000+dPort=80+Protocol=6+sIP=9.9.9.9+dIP=1.2.3.4=>Chain
Identifier is 4712) is applied to not yet classified data packets
received from the Internet.
[0098] As described above, the service chaining gateway enables
bidirectional (see FIG. 8) and associated bidirectional service
chains (see FIG. 9). For associated bidirectional service chains it
is possible to map 1 to n incoming service paths to an arbitrary
reverse service function path.
[0099] Further, the service chaining gateway supports bidirectional
(see FIGS. 8 and 10) and associated bidirectional service chains
(see FIGS. 9 and 11). The service chaining gateway supports both
uplink (see FIGS. 8, 9 and 10) and downlink (see FIG. 11) initiated
data flows alike.
[0100] Also, the service chaining gateway allows various deployment
variants such as: [0101] Separate classifier and service chaining
gateway (see FIGS. 8 and 9). This deployment may be desired if only
uplink or only downlink initiated data flows are to be classified
and individually processed by the service chaining system. If both
uplink and downlink initiated data flows are to be processed by the
service chaining system, the service chaining gateway has to be
configured to forward data packets, for which no active rule is
found, to the classifier. [0102] Collocation of classifier and
service chaining gateway and single deployment. This means that
uplink and downlink initiated data flows traverse the same combined
element when entering and leaving the service chaining system as
illustrated in FIG. 10. Note that uplink and downlink initiation
entails different traffic flows, which each have to be assigned to
a service chain. [0103] Collocation of classifier and service
chaining gateway and dual deployment. This means that uplink and
downlink initiated data flows are classified by different instances
of this combined element as illustrated in FIG. 11. Such a
deployment may be desired for service chaining systems which are
connected to separate upstream and downstream routing
functions.
[0104] According to an embodiment of the invention in which the
service chaining gateway further comprises functions of the
classifier, e.g. in the collocation deployment described above, the
service chaining gateway receives packets of a data flow in the
first direction, selects, based on the classification functions,
the first chain of services to be applied to the packets, which
match the packets with at least one of policy, customer, network
and service profile, and adds the first service chain identifier to
the packets and forwards the packets as the first packets in the
first direction.
[0105] According to an embodiment of the invention, the service
chaining gateway includes additional elements such as: [0106] A
routing control function, which advertises--be it directly (e.g. by
means of a routing protocol) or indirectly (e.g. via an SDN
controller)--the reachability of IP addresses for which
corresponding data traffic flows must be handled by the service
chaining system. [0107] A load balancing function, which uses
header information of data packets incoming from the service
chaining system--such as transport layer source IP of an upstream
service function instance--to impose the same service function
instance for the reverse path for data packets incoming to the
service chaining system. [0108] A metadata mirror function, which
extracts and temporarily stores metadata received from first data
packets and injects this metadata in the reverse direction on a per
data flow basis.
[0109] Dynamic learning of reverse service chains by means of the
service chaining gateway according to the present invention has
many advantages:
[0110] The service chaining system is simplified by eliminating the
complex, error prone and often proprietary solutions for generating
matching uplink and downlink filter rules. The filter rules
matching function is replaced with a generic (i.e. classifier
agnostic) service chaining gateway. [0111] Some service functions
modify u-plane data packet fields that feed into the classification
function. Examples are carrier grade NAT or IPSec encapsulation.
This implies that different classification/filter rules must be
applied for the UL and DL direction. The determination of the
"matching" classification rules during service chain definition and
deployment quickly becomes prohibitively complex given that a
service path can comprise multiple service functions that modify
data packets fields. Dynamic determination of "matching"
classification rules based on information provided by the service
functions requires very low latency communication and processing
(classification rule for the reverse direction must be provided in
real-time). Because a matching rule must be generated for every new
packet data flow, such a solution, which relies on distributed
information collection and processing, incurs a lot of signaling
and will have limited scalability. [0112] Prior art solutions often
use a single classifier for the UL and DL direction. Imposing the
same classifier instance for UL and DL direction may require
special routing configuration and may result in sub-optimal (e.g.
non shortest path) routing. The above-described service chaining
gateway allows separate classifiers for UL and DL initiated data
flows without incurring additional complexity as shown by FIG.
11.
[0113] According to an aspect of the invention, an apparatus of a
communication network is provided, which may include and/or use the
control unit 10 shown in FIG. 5. The apparatus comprises means for
acquiring first packets of a data flow in a first direction, each
having a first service chain identifier identifying a first chain
of services which have been applied to the first packets in the
first direction of the data flow, wherein the first service chain
identifier represents a classification result of classification
functions used for selecting the first chain of services, and means
for calculating, based on the first service chain identifier, a
packet filter associated with a second chain of services to be
applied to second packets of the data flow in a second direction of
the data flow when the second packets enter the communication
network in the second direction.
[0114] The apparatus may further comprise means for determining,
based on the first service chain identifier, a second service chain
identifier identifying the second chain of services.
[0115] Alternatively, the apparatus may comprise means for
extracting from at least one of the first packets a second service
chain identifier identifying the second chain of services.
[0116] The means for determining may determine, as the second
packets, packets which enter the communication network in the
second direction and match the packet filter, and the apparatus may
comprise means for adding the second service chain identifier to
the second packets.
[0117] The apparatus may comprise means for storing, for the first
service chain identifier, filter rules for calculating the packet
filter and/or the second service chain identifier, wherein the
filter rules comprise translation rules for deriving the packet
filter from the first packets.
[0118] Alternatively, the means for extracting may extract from at
least one of the first packets filter rules for calculating the
packet filter and/or the second service chain identifier, wherein
the filter rules comprise translation rules for deriving the packet
filter from the first packets.
[0119] The apparatus may comprise means for detecting that at least
one of the filter rules has become obsolete, and means for
canceling the at least one obsolete filter rule.
[0120] The filter rules may comprise a mapping rule for determining
the second service chain identifier from the first service chain
identifier.
[0121] The translation rules may identify fields in the first
packets used to calculate the filter rules, and/or fields in the
second packets used to determine the second service chain
identifier.
[0122] The data flow may be at least one of a bidirectional data
flow, an associated bidirectional data flow, a downlink initiated
data flow in which the first direction is a downlink direction and
the second direction is an uplink direction, and an uplink
initiated data flow in which the first direction is the uplink
direction and the second direction is the downlink direction.
[0123] The apparatus may comprise means for receiving packets of a
data flow in the first direction, means for selecting, based on the
classification functions, the first chain of services to be applied
to the packets, and the means for adding may add filter rules for
calculating the packet filter and/or the second service chain
identifier to the packets, and the apparatus may comprise means for
forwarding the packets as the first packets in the first
direction.
[0124] The means for detecting may detect packets which enter the
communication network and do not match the packet filter, and the
apparatus may comprise means for handling the packets by at least
one of dropping these packets, applying a collocated classifier
function to these packets, modifying, adding or deleting header
fields of these packets, forwarding these packets to an L2/L3
routing/forwarding function, and forwarding these packets to a
packet classifier function.
[0125] The apparatus may comprise means for advertising
reachability of IP addresses for which the data flow is handled by
a service chaining system providing the services of the first
and/or second chains.
[0126] The apparatus may comprise means for imposing the same
service function instance used for the first packets in the first
direction in the second direction for the second packets.
[0127] The means for extracting may extract and the means for
storing may temporarily storing metadata from the first packets,
and the apparatus may include means for injecting the metadata in
the second packets.
[0128] According to an implementation example of the invention, the
above means for acquiring, calculating, determining, extracting,
adding, storing, receiving, selecting, detecting, canceling,
handling, forwarding, advertising, imposing and injecting are
implemented by the processing resources 11, memory resources 12 and
interfaces 13.
[0129] It is to be understood that the above description is
illustrative of the invention and is not to be construed as
limiting the invention. Various modifications and applications may
occur to those skilled in the art without departing from the true
spirit and scope of the invention as defined by the appended
claims.
* * * * *