Network Working Group | W. Liu, Ed. |
Internet-Draft | H. Li |
Intended status: Informational | O. Huang |
Expires: September 29, 2014 | Huawei Technologies |
M. Boucadair, Ed. | |
France Telecom | |
N. Leymann | |
Deutsche Telekom AG | |
Z. Cao | |
China Mobile | |
J. Hu | |
China Telecom | |
C. Pham | |
Telstra Corporation | |
March 28, 2014 |
Service Function Chaining (SFC) Use Cases
draft-liu-sfc-use-cases-04
The delivery of value-added services relies on the invocation of advanced Service Functions in a sequential order. This mechanism is called Service Function Chaining (SFC). The set of involved Service Functions and their order depends on the service context.
This document presents a set of use cases of Service Function Chaining (SFC).
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 29, 2014.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The delivery of Value-Added Services (VAS) relies on the invocation of various Service Functions (SFs). Indeed, the traffic is forwarded through a set of Network Elements embedding Service Functions, e.g.:
This document describes some use cases of Service Function Chaining (SFC). It is not the purpose of this document to be exhaustive, but instead, we try to draw the set of deployments context that are likely to see SFC solutions deployed.
For most of the use cases presented in this document,
This document makes use of the terms defined in [I-D.boucadair-sfc-framework].
Service Flow: packets/frames with specific service characteristics (e.g., packets matching a specific tuple of fields in the packet header and/or data) or determined by some service-inferred policies (such as access port and etc.).
Gi interface: 3GPP defines the Gi interface as the reference point between the GGSN (Gateway GPRS Support Node) and an external PDN (Packet Domain Network). This interface reference point is called SGi in 4G networks (i.e., between the PDN Gateway (PGW) and an external PDN)[RFC6459].
Service Function Chains can be deployed in a diversity of scenarios such as broadband networks, mobile networks, and DC center. This section describes a set of scenarios for Service Function Chaining deployment.
In broadband networks, an operator may deploy value-added service nodes on POP (Point of Presence) site. These service nodes compose different Service Function Chains to deliver added-value services.
------ ------ // \\ ******************** // \\ +----+ | | * +---+ * +---+ | | |CPE |--->+ Metro +-->+BNG+>+-------+--->|CR +--->+ Internet | +----+ | | * +---+ | ^ * +---+ | | \\ // * v | * \\ // ------ * ++-------++ * ------ * | Service | * * | Chain | * * +---------+ * ******************** Service Function Chain deployment position
Figure 1: An example of Service Function Chain in Broadband Networks
Figure 1 illustrates a possible deployment position for Service Function Chaining: between BNG and CR (Core Router). The Service Function Chain shown in Figure 1 may include several Service Functions to perform services such as DPI, NAT44, DS-Lite, NPTv6, Parental control, Firewall, load balancer, Cache, etc.
3GPP defines the Gi interface as the reference point between the GGSN (Gateway GPRS Support Node) and an external PDN (Packet Domain Network) [RFC6459]. This interface reference point is called SGi in 4G networks (i.e., between the PDN Gateway (PGW) and an external PDN) [RFC6459]. Note, there is no standard specification of such reference points (i.e., Gi and SGi) in terms of functions to be located in that segment.
Traffic is directed to/from Internet traversing one or more Service Functions. Note, these Service Functions are called "enablers" by some operators. One example of enabler function is a HTTP Header Enrichment Function. There are also other VAS function such as Parental Control or network-based Firewall. Subscribers can opt-in and opt-out to these services anytime using a self-served portal or by calling the Operator’s customer service.
In light of current deployments, plenty of Service Functions are enabled in the Gi Interface (e.g., DPI, billing and charging, TCP optimization, web optimization, video optimization, header enrichment, etc.). Some of these Service Functions are co-located on the same device while others are enabled in standalone boxes. In order to fulfill new business needs, especially to offer innovative added-value services, the number of enabled Service Functions in the Gi Interface is still growing. Some of these functions are not needed to be invoked for all services/UEs, e.g.,:
3GPP has defined Traffic Detection Function (TDF) which implements DPI (detection) functionality along with enforcement and charging of the corresponding detected applications [TS.23203]. TDF resides on Gi/SGi interface. In reference to the examples shown in Figure 2, a TDF function as defined by 3GPP can be used instead of some legacy DPI solutions.
Several (S)Gi Interfaces can be deployed within the same PLMN (Public Land Mobile Network). This depends mainly on the number of PDNs and other factors. Each of these interfaces may involve a differentiated set of Service Functions to be involved.
The current model that consists of adding new "boxes" to fulfill new business guidelines has shown its limit. Concretely, current deployments suffer from the following problems:
Figure 2 illustrates a use case of Gi/SGi Interface scenario. Figure 2 involves many Service Functions that are enabled in the Gi/SGi Interface: WAP GW, TCP Optimizer, Video Optimizer, Content Caching, FW, NAT (44, 64), etc. This list is not exhaustive but it is provided for illustration purposes.
*********************************** * 1 +------+ * * +--------->+WAP GW+----------+ * ------ * | +------+ | * // \\ +-----+ +---+| +---------+ +-----+ v * | | |GGSN/+-->|DPI|+>+Optimizer+->|Cache+ +----->+ Internet | |PGW | +---+| +---------+ +--+--+ ^ * | | +-----+ * | |2 | * \\ // * | v | * ------ * | 3 +-----+ +----+ | * * +----------->+ FW +->|NAT +-+ * * +-----+ +----+ * ***********************************
Figure 2: An example of Service Function Chain scenario in the Gi Interface
For example, the traffic from GGSN/PGW to Internet can be categorized and directed into the following Service Function Chains by DPI:
It is worth mentioning that customers (via their UEs) access to some services through the configuration of various APNs on terminals and GGSN/PGW. In current deployments, a GGSN/PGW may be configured with up to hundreds of different APNs. These various APNs can be considered as a classification parameter; as such a GGSN/PGW can forward the traffic relying the APN name information.
SFC allows for example some specific treatment for a given APN traffic, but still current APN-based forwarding is not challenged by SFC.
SFC does not require new features in terminals or in GGSNs/PGWs besides those already proposed (except if a SF Classifier function is instantiated in the GGSN/PGW).
Other deployment use cases other than the one illustrated in Figure 2 can be considered in mobile networks. As shown in Figure 2, the DPI Service Function is set up once just after GGSN/PGW, but it can also be enabled in GGSN/PGW (PCEF function) or it can be enabled in various devices on the Gi/SGi Interface.
Access to internal services is subject to dedicated policies. For example, a dedicated function to update HTTP flow with a UE identifier may be needed to avoid explicit identification when accessing some service platforms operated by the mobile operator.
------ // \\ +-----+ +----------------------+ | Internal | |GGSN/+--->|HTTP Header Enrichment|----->+ Service | |PGW | +----------------------+ | Network | +-----+ \\ // ------
Figure 3: HTTP Header Enrichment
Figure 3 illustrates a use case of HHE (HTTP Header Enrichment). The HHE SF is able to inject the UE identifier to Internal Service Network for identification purpose.
Note, some mobile networks rely on regional-based service platforms (including interconnection links); while some of Service Functions are serviced in a centralized fashion.
+----+ +---+| +---------+ |GGSN+->|DPI|+->+Optimizer+-+ |/PGW| +---+| +---------+ | ------ ------ +----+ | // \\ // \\ +----+ +---+| +---------+ | | | +-----+ +---+ | | |GGSN+->|DPI|+->+Optimizer+-+->+ Regional |->+ FW +->+NAT+->+ Internet | |/PGW| +---+| +---------+ | | Network | +-----+ +---+ | | +----+ | \\ // \\ // | ------ ------ ... ... -+
Figure 4: Cross-region services
Figure 4 illustrates a use case of cross-region services, in which the functions that consist of the SFC are located at different regions and flows cross a regional network to go through the Service Function Chains.
Besides the deployment use cases listed above, a Service Function Chain is not necessarily implemented in a single location but can also be distributed crossing several portions of the network (e.g., data centers) or even using a Service Function that is located at an network element close to the customer (e.g. certain security functions).
Multiple SFC-enabled domains can be enabled in the same administrative domain.
For steering traffic to subscription-based Service Functions, the SFC Classifier needs to understand which subscriber a flow belong to in order to retrieve the service profile to apply to this flow. In some contexts, it is not possible to identify in a permanent manner the subscriber by the source IP address because that IP address may be assigned dynamically. Out-of-band methods to correlate the source IP address and a subscriber identifier may be needed in a given administrative domain. The SFC Classifier can rely on pull or push methods to correlate an IP address and/or IPv6 prefix to a subscriber identity. Examples are querying the PCRF or receiving RADIUS Accounting messages respectively.
For steering traffic to traffic management Service Functions such as video optimisation platform, in mobile network, it is desirable to perform optimisation on when required. That is when there is congestion in the Radio cells. One option for the SFC Classifier to have this congestion-awareness is for the network to provide this information to the SFC Classifier, directly, or via an intermediate actionable-intelligence function, which can combine other inputs or policies. How those policies and feedback data are configured to the SFC Classifier may be specific to each administrative domain.
In DC (Data Center), like in broadband and mobile networks, Service Function Chains may also be deployed to provide added-value services.
Figure 5 illustrates a possible scenario for Service Function Chain in Data Center: SFs are located between the DC Router (access router) and the Servers. From Servers to Internet, there are multiple Service Functions such as IDS/IPS, FW, NAT lined up and a monolithic SFC created for all incoming traffic.
*********************************************** * +------+ * * |Server+-+ * * +------+ | * ------ * | * // \\ * +------+ | +-------+ +--+ +---+ +---------+ | | * |Server+-+->|IDS/IPS+-->|FW+-->|NAT+-->|DC Router|-->+ Internet | * +------+ | +-------+ +--+ +---+ +---------+ | | * | * \\ // * | * ------ * ... -+ * * * * ... * * * * DC * ***********************************************
Figure 5: Service Function Chain in Data Center
Cloud CPE is one deployment scenario where the value-added service functions are centralized (e.g., hosted in the network or cloud side), leaving the subscriber side box with basic L2/L3 functionalities. In this scenario, all the value added services are configured by subscribers and enabled in the network side.
Subscribers can define their own added value services. The Cloud CPE will translate those services requests into chains of Service Functions. Such architecture must support means to differentiate subscribers and their traffic.
+------+ +------Cloud CPE-----+ |L2-CPE|--+ | +---+ | +------+ | | +--+ /|ACL|-- | +------------+ ... |==Encapsulation==|---|FW|-- +---+ \__|_____| Internet | +------+ | | +--+ \ / | +------------+ |L2-CPE|--+ | +-----+ | +------+ | |TCP-O| | | +-----+ | +--------------------+
Figure 6: SFC in Cloud CPE
This section presents the SFC scenarios from a different angle, i.e., the abstraction of SFC use cases in different deployment scenarios. Each of the use case may belong to one or many of the categories listed below:
+---------------------+-------------------------------------------+ |Category | Description | +---------------------+-------------------------------------------+ |Per-service | Chain different Service Functions based | |Characteristic SFC | on service/application characteristics | +---------------------+-------------------------------------------+ |Per-user/subscription| Chain different Service Functions based | |SFC | on user requirements or subscription | | | information. Note, this does not mean | | | that millions of SFCs will be instantiated| | | but SF classification is subscriber-aware.| +---------------------+-------------------------------------------+ |TE-Oriented SF | Chain different Service Functions for | | | Traffic Engineering purposes. This may | | | includes load, utilisation, planned | | | maintenance, etc. | +---------------------+-------------------------------------------+ |Bi-directional Flow | Function path that contain bi-directional | |SFC | Service Functions | +---------------------+-------------------------------------------+ |SFC over Multi- | Service Functions distributed over | |Underlay Networks | different underlay networks | +---------------------+-------------------------------------------+ |SFC over Service | SFC that contains the paths for different | |Functions Forking | service or applications | +---------------------+-------------------------------------------+
The traffic in a network is usually forwarded based on destination IP or MAC addresses. In an operator's network, some Service Functions are implemented, where traffic is steered through these Service Functions in a certain sequence according to service characteristics and objectives.
+---------------------------+ +-------->|Service Function Chaining A +------------+ | +---------------------------+ ------->|Service |--->| |Classifier | | +---------------------------+ +------------+ +-------->|Service Function Chaining B| +---------------------------+
Figure 7: General Service Function Chain
Traffic enters a SFC-enabled domain in a service classifier, which identifies traffic and classifies it into service flows. Service flows are forwarded on a per SF Map basis.
In operator networks with user subscription information, it is considered as a value added service to provide different subscribers with differentiated services. Subscribers may subscribe different services and the order handling at the operator side will translate those subscription request into configuration operations so that the service will be appropriately delivered to the subscribers. Configuration operations include in particular the provisioning of classification rules.
TE-oriented SFC is required by operators in achieving flexible service operating. For example, if certain paths are congested or certain Service Functions are overloaded, SFC forwarding should be inferred accordingly.
Some Service Functions, for example, NAT or TCP optimization, need to handle bi-directional flows, while others SFs such as video optimization don't need to handle bi-directional flows.
Due to IPv4 address exhaustion, more and more operators have deployed or are about to deploy IPv6 transition technologies such as NAT64 [RFC6146]. The traffic traversing a NAT64 function may go through different types of IP address domains. One key feature of this scenario is that characteristics of packets before and after processed by the service processing function are different, e.g., from IPv6 to IPv4. The unpredictability of processed packets, due to the algorithm in the Service Function, brings difficulties in steering the traffic.
A variety of hosts can be connected to the same network: IPv4-only, dual-stack, and IPv6-only. A differentiated forwarding path can be envisaged for each of these hosts. In particular, DS hosts should not be provided with a DNS64, and as such there traffic should not be delivered to a NAT64 device. Means to guide such differentiated path can be implemented at the host side; but may also be enabled in the network side as well.
+---------+ +----------+ ====>+ SF C + +----------+ | SF E |===>+---+ | +---------+=======>| SF |=======>+----------+ |INT| +<======================| NAT |<=======================|NET| +----------+ +---+
Figure 8: Service Function Chain with NAT64 function
Figure 8 shows a specific example of Service Function Chain with NAT function. Service flow1 is processed by SF(Service Function) C, NAT and E sequentially. In this example, the SF NAT performs NAT64. As a result, packets after processing by the SF NAT are in IPv4, which is a different version of IP header from the packets before processing. Service Function Chaining in this scenario should be able to identify the flow even if it is changed after processed by Service Functions.
Operators may need to deploy their networks with various types of underlay technologies. Therefore, Service Function Chaining needs to support different types of underlay networks.
+---------+ +----------+ +----------+ -->+ SF A | | SF B | | SF C +--> +----+----+ +---+-+----+ +-----+----+ | ^ | ^ | ------ | | ------ | | // \\ | | // \\ | | | Ethernet | | v | | | +->+ network +->+ +->+ IP network +->+ | | | | \\ // \\ // ------ ------
Figure 9: multiple underlay networks: Ethernet and IP
Figure 9 illustrates an example of Ethernet and IP network, very common and easy for deployment based on existing network status, as underlay networks. SF(Service Functions) A, B and C locate in Ethernet and IP networks respectively. To build a Service Function Chain of SF A, B and C, Service Function Chaining needs to support steering traffic across Ethernet and IP underlay networks.
To enable service or content awareness, operators need DPI functions to look into packets. When a DPI function is part of a Service Function Chain, packets processed by the DPI function may be directed to different paths according to result of DPI processing. That means a forking service path.
In this use case, the switching SF is another classifier which need to classify flow and shepherd them to different paths.
+---------+ +----------+ +----------+ | | | | | | ---->| Firewall+------->+ DPI +------->+anti-virus|---> | | | | | | +---------+ +-----+----+ +----------+ | V +-----+----+ | | | Parental | | control | +-----+----+ | V
Figure 10: a forking service path
Figure 10 shows the use case of a forking service path. Traffic first goes through a firewall and then arrives at DPI function which discerns virus risk. If a certain pre-configured pattern is matched, the traffic is directed to an anti-virus function.
Such DPI function may fork out more than one path.
Service function sharing is sub-category of the service function forking. Some carrier grade hardware box or Service Functions running on high performance servers can be shared to support multiple Service Function Chains. Following is an example.
SFC1 +---------+ +--------+ ------->+---------+------->+--------+---> SFC2 |Firewall | |Video | ------->+-->+ | |Opt | +---|-----+ +--------+ | v +---+-----+ | | | |Parental | |Control | +---+-----+ | v
Figure 11: Two Service Function Chains share one Service Function
Figure 11, there are three Service Functions, firewall, VideoOpt and Parental Control, and two Service Functions Chains SFC1 and SFC2. SFC1 serves broadband user group1 which subscribes to secure web surfing and Internet video optimization, while SFC2 serves broadband user group2 which subscribes to secure web surfing with parental control. SF Firewall is shared by both Service Function Chains.
This document does not define an architecture nor a protocol. It focuses on listing use cases and typical Service Function examples. Some of these functions are security-related.
SFC-related security considerations are discussed in [I-D.boucadair-sfc-framework].
Many thanks to A. Goldner, R. Parker, and D. Binet for their comments.
[RFC6674] | Brockners, F., Gundavelli, S., Speicher, S. and D. Ward, "Gateway-Initiated Dual-Stack Lite Deployment", RFC 6674, July 2012. |
[RFC6888] | Perreault, S., Yamagata, I., Miyakawa, S., Nakagawa, A. and H. Ashida, "Common Requirements for Carrier-Grade NATs (CGNs)", BCP 127, RFC 6888, April 2013. |
[RFC6146] | Bagnulo, M., Matthews, P. and I. van Beijnum, "Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers", RFC 6146, April 2011. |
[RFC6459] | Korhonen, J., Soininen, J., Patil, B., Savolainen, T., Bajko, G. and K. Iisakkila, "IPv6 in 3rd Generation Partnership Project (3GPP) Evolved Packet System (EPS)", RFC 6459, January 2012. |
[I-D.boucadair-sfc-framework] | Boucadair, M., Jacquenet, C., Parker, R., Lopez, D., Guichard, J. and C. Pignataro, "Service Function Chaining: Framework & Architecture", Internet-Draft draft-boucadair-sfc-framework-02, February 2014. |
[TS.23203] | , , "Policy and charging control architecture", December 2013. |