Multi-Layer Active OAM for Service Function Chains in Networks ZTE Corp.gregimirsky@gmail.comZTE CorporationNo.50 Software Avenue, Yuhuatai DistrictNanjingChinameng.wei2@zte.com.cn,vally.meng@gmail.comZTE TX, Inc.55 Madison Avenue, Suite 160Morristown, New Jersey 07960USAbhumip.khasnabish@ztetx.comlindawangjoy@gmail.com
Routing
SFC WGRequest for CommentsRFCInternet DraftI-D
A multi-layer approach to the task of Operation, Administration
and Maintenance (OAM) of Service Function Chains (SFCs) in networks is presented.
Based on the requirements towards active OAM for SFC, a multi-layer model is introduced.
A mechanism to detect and localize defects using the multi-layer model
is also described.
defines components necessary to implement
Service Function Chain (SFC). These include a classifier
which performs classification of incoming packets. A Service Function Forwarder (SFF)
is responsible for forwarding traffic to one or more connected Service Functions (SFs) according to
the information carried in the SFC encapsulation. SFF also handles traffic coming back from
the SF and transports the data packets to the next SFF. And the SFF serves as termination
element of the Service Function Path (SFP). SF is responsible for specific treatment
of received packets.
Resulting from that SFC is constructed by a number of these components,
there are different views from different levels of the SFC.
One is the SFC, fully abstract entity, that defines an ordered set of SFs that must
be applied to packets selected as a result of classification.
But SFC doesn't define exact mapping between SFFs and SFs. Thus there exists another
semi-abstract entity referred as SFP. SFP is
the instantiation of the SFC in the network and provides a level of indirection
between the fully abstract SFC and a fully specified ordered
list of SFFs and SFs identities that the packet will visit when
it traverses the SFC. The latter entity is being referred as Rendered Service Path (RSP).
The main difference between SFP and RSP is that in the former the authority to
select the SFF/SF has been delegated to the network.
This document proposes the multi-layer model of SFC active Operation, Administration
and Maintenance (OAM), per definition of active OAM,
lists requirements to improve the troubleshooting efficiency and
defines SFC Echo request and Echo reply that enables on-demand
Continuity Check, Connectivity Verification among other operations over SFC in networks.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14
when, and only when, they appear in all capitals, as shown here.
Unless explicitly specified in this document, active OAM in SFC and SFC OAM
are being used interchangeably.
e2e: End-to-EndFM: Fault ManagementNSH: Network Service HeaderOAM: Operations, Administration, and MaintenanceRDI: Remote Defect IndicationRSP: Rendered Service PathSF: Service FunctionSFC: Service Function ChainSFF: Service Function ForwarderSFP: Service Function Path
As described in , multiple
layers come into play to realize the SFC,
including the Service layer, the underlying Network layer, as well as the Link layer,
which are depicted in :
The Service layer consists of classifiers and/or service functions/SFs. Network and Transport layers leverage various overlay network technologies
interconnecting SFs to establish SFP.The Link layer is technology specific and reflects the technology used in
the underlay network.
To perform the OAM task of fault management (FM) in an SFC, that includes failure detection, defect
characterization and localization, this document defines the
multi-layer model of OAM, presented in , and set of requirements
towards active OAM mechanisms to be used on an SFC.
In example presented in the service SFP1 may be realized
through two RSPs, RSP1(SF1--SF3--SF5) and RSP2(SF2--SF4--SF6). To perform
end-to-end (e2e) FM SFC OAM:
REQ#1: Packets of active OAM in SFC SHOULD be fate sharing with data traffic,
i.e. in-band with the monitored traffic, i.e. follow exactly
the same RSP, in forward direction, i.e. from ingress toward egress end
point(s) of the OAM test.
REQ#2: SFC OAM MUST support pro-active monitoring of any element in the SFC
availability.
The egress, SFF3 in example in ,
is the entity that detects the failure of the SFC. It must
be able to signal the new defect state to the ingress, i.e. SFF1.
Hence the following requirement:
REQ#3: SFC OAM MUST support Remote Defect Indication (RDI)
notification by egress to the ingress, i.e. source of
continuity checking.
REQ#4: SFC OAM MUST support connectivity verification.
Definition of mis-connectivity defect entry and exit
criteria are outside the scope of this document.
Once the SFF1 detects the defect objective of OAM switches from failure detection
to defect characterization and localization.
REQ#5: SFC OAM MUST support fault localization of Loss of
Continuity check in the SFC.
REQ#6: SFC OAM MUST support tracing an SFP in order to realize the RSP.
It is practical, as presented in , that several SFs share the same SFF.
In such case SFP1 may be realized over two RSPs, RSP1(SF1--SF3--SF5) and RSP2(SF2--SF4--SF6).
REQ#7: SFC OAM MUST have the ability to discover and exercise
all available RSPs in the transport network.
In process of localizing the SFC failure separating SFC OAM layers is very attractive and efficient approach.
To achieve that continuity among SFFs that are part of the same SFP should be verified. Once SFFs reachability
along the particular SFP has been confirmed task of defect localization may focus on SF reachability verification.
Because reachability of SFFs has already been verified, SFF local to the SF may be used as source.
REQ#8: SFC OAM MUST be able to trigger on-demand FM with
responses being directed towards initiator of such proxy
request.
The multi-layer model OAM that confirms to the above listed requirements enables active OAM protocols
that are capable to perform efficient defect localization on an SFC. does not provide
definition for identification of an SFC active OAM packet. This document defines that active OAM packet on
SFC MUST have OAM bit set and MUST have the value on the Next Protocol field set to OAM (TBA1)
according to .
It is very unlikely that a single protocol will address all the requirements listed in . Protocols
may be identified by destination UDP port number if IP/UDP encapsulation used. But extra IP/UDP headers, especially
in case of IPv6, add noticeable overhead. This document defines Active OAM Header
to demultiplex active OAM protocols on an SFC.
V - two bits long field indicates the current version of the SFC active OAM header. The current value is 0.Msg Type - six bits long field identifies OAM protocol, e.g. Echo Request/Reply or BFD.Flags - eight bits long field carries bit flags that define optional capability and thus processing of the
SFC active OAM control packet, e.g. optional timestamping.Length - two octets long field that is length of the SFC active OAM control packet in octets. presents a use case of applying the proposed SFC OAM multi-layer model.
In this scenario operator needs to discover SFFs and SFs of the same SFC.
The Layer 1 includes the SFFs that are part of the SFP. The Layer 2 - the SFs along the RSP.
When trying to do SFC OAM, classifier or service nodes select and
confirm which SFC OAM layering they plan to do,
then encapsulate the layering information in the SFC OAM packets, and
send the SFC OAM packets along the service function paths
to the destination. When receiving the SFC OAM packets, service nodes
analyze the layering information and then decide
whether sending these packets to next SFFs directly without being processed
by SFs for Layer 1 process or sending to SFs for Layer 2 process.
Echo Request/Reply is well-known active OAM mechanism that is
extensively used to detect inconsistencies between states in control plane
and data plane, localize defects in the data plane. The format of the Echo request/Echo reply control packet is to support
ping and traceroute functionality in SFC in networks
resembles the format of MPLS LSP Ping with some exceptions.
The interpretation of the fields is as following:
The Version reflects the current version. The version number is to
be incremented whenever a change is made that affects the ability of
an implementation to correctly parse or process control packet.
The Global Flags is a bit vector field The Message Type filed reflects the type of the packet. Value TBA3 identifies echo request and TBA4 - echo replyThe Reply Mode defines the type of the return path requested by the sender of the echo request. Return Codes and Subcodes can be used to inform the sender about result of processing its request. The Sender's Handle is filled in by the sender, and returned unchanged by the receiver in the echo reply. The Sequence Number is assigned by the sender and can be (for example) used to detect missed replies. TLVs (Type-Length-Value tuples) have the two octets long Type field, two
octets long Length field that is length of the Value field in octets.
SFC echo request control packet MUST use the appropriate encapsulation of the monitored
SFP. If Network Service Header (NSH) is used, echo request MUST set O bit, as defined in .
SFC NSH MUST
be immediately followed by the SFC Active OAM Header defined in . Message Type field
in the SFC Active OAM Header MUST be set to SFC Echo Request/Echo Reply value (TBA2) per .
Value of the Reply Mode field MAY be set to:
Do Not Reply (TBA5) if one-way monitoring is desired. If echo request is used to measure synthetic packet loss,
the receiver may report loss measurement results to a remote node.
Reply via an IPv4/IPv6 UDP Packet (TBA6) value likely will be the most used.
Reply via Application Level Control Channel (TBA7) value if the SFP
may have bi-directional paths.
Reply via Specified Path (TBA7) value in order to enforce use of the particular
return path specified in the included TLV to verify bi-directional continuity and
also increase robustness of the monitoring by selecting more stable path.
The Reply Mode field directs whether and how the echo reply message should be sent.
The sender of the echo request MAY use TLVs to request that corresponding echo reply
be sent using the specified path. Value TBA3 is referred as "Do not reply" mode and
suppresses transmission of echo reply packet. Default value (TBA6) for the Reply mode field requests
the responder to send the echo reply packet out-of-band as IPv4 or IPv6 UDP packet.
Responder to the SFC echo request sends the echo reply over IP network if the Reply mode is
Reply via an IPv4/IPv6 UDP Packet.
Because SFC NSH does not identify the ingress of the SFP
the echo request MUST include this information that to be used as IP destination address for IP/UDP encapsulation of the SFC echo reply.
Sender of the SFC echo request MUST include SFC Source TLV .
where
SFC OAM Source Id Type is two octets in length and has the value of TBA9 .
Length is two octets long field and the values is equal to the length of the Value field.
Value field contains IP address of the sender of the SFC OAM control message, IPv4 or IPv6.
The UDP destination port for SFC Echo Reply
TBA10 will be allocated by IANA .
Overlay Echo Request/Reply operates withing the domain of the overlay network and thus inherits
any security considerations that apply to the use of that overlay technology and, consequently, underlay data plane.
Also, the security needs for SFC echo request/reply are similar to those of ICMP ping ,
and MPLS LSP ping .
There are at least three approaches of attacking a node in the overlay network using the
mechanisms defined in the document. One is a Denial-of-Service attack, by
sending SFC ping to overload an element of the SFC.
The second may use spoofing, hijacking, replying, or otherwise
tampering with SFC echo requests and/or replies to
misrepresent, alter operator's view of the state of the SFC.
The third is an unauthorized source using an SFC
echo request/reply to obtain information about the
SFC and/or its elements, e.g. SFF or SF.
To mitigate potential Denial-of-Service attacks, it is RECOMMENDED that
implementations throttle the SFC ping traffic going to the control plane.
Reply and spoofing attacks involving faking or
replying SFC echo reply messages would have to
match the Sender's Handle and Sequence Number of
an outstanding SFC echo request message which is highly unlikely.
Thus the non-matching reply would be discarded.
To protect against unauthorized sources trying to obtain information about the overlay and/or underlay
an implementation MAY check that the source of the echo request is indeed part of the SFP.
IANA is requested to assign new type from the SFC Next Protocol registry as follows:
ValueDescriptionReferenceTBA1SFC Active OAMThis document
IANA is requested to create new registry called "SFC Active OAM Message Type".
All code points in the range 1 through 32767 in this registry shall be allocated
according to the "IETF Review" procedure as specified in
.
Remaining code points are allocated according to the table :
ValueDescriptionReference0Reserved1 - 32767ReservedIETF Consensus32768 - 65530ReservedFirst Come First Served65531 - 65534ReservedPrivate Use65535Reserved
IANA is requested to assign new type from the SFC Active OAM Message Type registry as follows:
ValueDescriptionReferenceTBA2SFC Echo Request/Echo ReplyThis document
IANA is requested to create new SFC Echo Request/Echo Reply Parameters registry.
IANA is requested to create in the SFC Echo Request/Echo Reply
Parameters registry the new sub-registry Message Types.
All code points in the range 1 through 191 in this registry shall be allocated
according to the "IETF Review" procedure as specified in
and assign values as follows:
ValueDescriptionReference0ReservedTBA3SFC Echo RequestThis documentTBA4SFC Echo ReplyThis documentTBA4+1-191UnassignedIETF Review192-251UnassignedFirst Come First Served252-254UnassignedPrivate Use255Reserved
IANA is requested to create in the SFC Echo Request/Echo Reply
Parameters registry the new sub-registry Reply Modes
All code points in the range 1 through 191 in this registry shall be allocated
according to the "IETF Review" procedure as specified in
and assign values as follows:
ValueDescriptionReference0ReservedTBA5Do Not ReplyThis documentTBA6Reply via an IPv4/IPv6 UDP PacketThis documentTBA7Reply via Application Level Control ChannelThis documentTBA8Reply via Specified PathThis documentTBA8+1-191UnassignedIETF Review192-251UnassignedFirst Come First Served252-254UnassignedPrivate Use255Reserved
IANA is requested to create SFC OAM TLV Type registry.
All code points in the range 1 through 32759 in this registry shall be allocated
according to the "IETF Review" procedure as specified in .
Code points in the range
32760 through 65279 in this registry shall be allocated according to the "First Come First Served" procedure as
specified in .
Remaining code points are allocated according to the :
ValueDescriptionReference0ReservedThis document1- 32759UnassignedIETF Review32760 - 65279UnassignedFirst Come First Served65280 - 65519ExperimentalThis document65520 - 65534Private UseThis document65535ReservedThis document This document defines the following new value in SFC OAM TLV Type registry:ValueDescriptionReferenceTBA9Source IP AddressThis document
IANA is requested to allocate UDP port number according to
Service Name Port Number Transport Protocol Description Semantics Definition Reference SFC OAMTBA10UDPSFC OAMThis document