| < draft-ietf-mpls-forwarding-00.txt | draft-ietf-mpls-forwarding-01.txt > | |||
|---|---|---|---|---|
| MPLS C. Villamizar, Ed. | MPLS C. Villamizar, Ed. | |||
| Internet-Draft OCCNC | Internet-Draft OCCNC | |||
| Intended status: Informational K. Kompella | Intended status: Informational K. Kompella | |||
| Expires: October 18, 2013 Contrail Systems | Expires: April 12, 2014 Contrail Systems | |||
| S. Amante | S. Amante | |||
| Level 3 Communications, Inc. | Level 3 Communications, Inc. | |||
| A. Malis | A. Malis | |||
| Verizon | Verizon | |||
| C. Pignataro | C. Pignataro | |||
| Cisco | Cisco | |||
| April 16, 2013 | October 9, 2013 | |||
| MPLS Forwarding Compliance and Performance Requirements | MPLS Forwarding Compliance and Performance Requirements | |||
| draft-ietf-mpls-forwarding-00 | draft-ietf-mpls-forwarding-01 | |||
| Abstract | Abstract | |||
| This document provides guidelines for implementors regarding MPLS | This document provides guidelines for implementers regarding MPLS | |||
| forwarding and a basis for evaluations of forwarding implementations. | forwarding and a basis for evaluations of forwarding implementations. | |||
| Guidelines cover many aspects of MPLS forwarding. Topics are | Guidelines cover many aspects of MPLS forwarding. Topics are | |||
| highlighted where implementors might potentially overlook practical | highlighted where implementers might potentially overlook practical | |||
| requirements which are unstated or underemphasized or are optional | requirements which are unstated or under emphasized or are optional | |||
| for conformance to RFCs. | for conformance to RFCs but are often considered mandatory by | |||
| providers. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 18, 2013. | This Internet-Draft will expire on April 12, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 21 ¶ | skipping to change at page 2, line 23 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction and Document Scope . . . . . . . . . . . . . . . 4 | 1. Introduction and Document Scope . . . . . . . . . . . . . . . 4 | |||
| 1.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.2. Use of Requirements Language . . . . . . . . . . . . . . . 8 | 1.2. Use of Requirements Language . . . . . . . . . . . . . . . 8 | |||
| 1.3. Apparent Misconceptions . . . . . . . . . . . . . . . . . 9 | 1.3. Apparent Misconceptions . . . . . . . . . . . . . . . . . 9 | |||
| 1.4. Target Audience . . . . . . . . . . . . . . . . . . . . . 10 | 1.4. Target Audience . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 2. Forwarding Issues . . . . . . . . . . . . . . . . . . . . . . 10 | 2. Forwarding Issues . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 2.1. Forwarding Basics . . . . . . . . . . . . . . . . . . . . 10 | 2.1. Forwarding Basics . . . . . . . . . . . . . . . . . . . . 11 | |||
| 2.1.1. MPLS Reserved Labels . . . . . . . . . . . . . . . . . 11 | 2.1.1. MPLS Special Purpose Labels . . . . . . . . . . . . . 12 | |||
| 2.1.2. MPLS Differentiated Services . . . . . . . . . . . . . 12 | 2.1.2. MPLS Differentiated Services . . . . . . . . . . . . . 12 | |||
| 2.1.3. Time Synchronization . . . . . . . . . . . . . . . . . 13 | 2.1.3. Time Synchronization . . . . . . . . . . . . . . . . . 13 | |||
| 2.1.4. Uses of Multiple Label Stack Entries . . . . . . . . . 13 | 2.1.4. Uses of Multiple Label Stack Entries . . . . . . . . . 14 | |||
| 2.1.5. MPLS Link Bundling . . . . . . . . . . . . . . . . . . 14 | 2.1.5. MPLS Link Bundling . . . . . . . . . . . . . . . . . . 15 | |||
| 2.1.6. MPLS Hierarchy . . . . . . . . . . . . . . . . . . . . 14 | 2.1.6. MPLS Hierarchy . . . . . . . . . . . . . . . . . . . . 15 | |||
| 2.1.7. MPLS Fast Reroute (FRR) . . . . . . . . . . . . . . . 14 | 2.1.7. MPLS Fast Reroute (FRR) . . . . . . . . . . . . . . . 15 | |||
| 2.1.8. Pseudowire Encapsulation . . . . . . . . . . . . . . . 15 | 2.1.8. Pseudowire Encapsulation . . . . . . . . . . . . . . . 16 | |||
| 2.1.8.1. Pseudowire Sequence Number . . . . . . . . . . . . 15 | 2.1.8.1. Pseudowire Sequence Number . . . . . . . . . . . . 16 | |||
| 2.1.9. Layer-2 and Layer-3 VPN . . . . . . . . . . . . . . . 16 | 2.1.9. Layer-2 and Layer-3 VPN . . . . . . . . . . . . . . . 17 | |||
| 2.2. MPLS Multicast . . . . . . . . . . . . . . . . . . . . . . 16 | 2.2. MPLS Multicast . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 2.3. Packet Rates . . . . . . . . . . . . . . . . . . . . . . . 17 | 2.3. Packet Rates . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 2.4. MPLS Multipath Techniques . . . . . . . . . . . . . . . . 19 | 2.4. MPLS Multipath Techniques . . . . . . . . . . . . . . . . 20 | |||
| 2.4.1. Pseudowire Control Word . . . . . . . . . . . . . . . 20 | 2.4.1. Pseudowire Control Word . . . . . . . . . . . . . . . 21 | |||
| 2.4.2. Large Microflows . . . . . . . . . . . . . . . . . . . 20 | 2.4.2. Large Microflows . . . . . . . . . . . . . . . . . . . 22 | |||
| 2.4.3. Pseudowire Flow Label . . . . . . . . . . . . . . . . 21 | 2.4.3. Pseudowire Flow Label . . . . . . . . . . . . . . . . 22 | |||
| 2.4.4. MPLS Entropy Label . . . . . . . . . . . . . . . . . . 21 | 2.4.4. MPLS Entropy Label . . . . . . . . . . . . . . . . . . 22 | |||
| 2.4.5. Fields Used for Multipath . . . . . . . . . . . . . . 22 | 2.4.5. Fields Used for Multipath Load Balance . . . . . . . . 23 | |||
| 2.4.5.1. MPLS Fields in Multipath . . . . . . . . . . . . . 22 | 2.4.5.1. MPLS Fields in Multipath . . . . . . . . . . . . . 23 | |||
| 2.4.5.2. IP Fields in Multipath . . . . . . . . . . . . . . 23 | 2.4.5.2. IP Fields in Multipath . . . . . . . . . . . . . . 25 | |||
| 2.4.5.3. Fields Used in Flow Label . . . . . . . . . . . . 25 | 2.4.5.3. Fields Used in Flow Label . . . . . . . . . . . . 26 | |||
| 2.4.5.4. Fields Used in Entropy Label . . . . . . . . . . . 25 | 2.4.5.4. Fields Used in Entropy Label . . . . . . . . . . . 27 | |||
| 2.5. MPLS-TP and UHP . . . . . . . . . . . . . . . . . . . . . 26 | 2.5. MPLS-TP and UHP . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 2.6. Local Delivery of Packets . . . . . . . . . . . . . . . . 26 | 2.6. Local Delivery of Packets . . . . . . . . . . . . . . . . 27 | |||
| 2.6.1. DoS Protection . . . . . . . . . . . . . . . . . . . . 26 | 2.6.1. DoS Protection . . . . . . . . . . . . . . . . . . . . 28 | |||
| 2.6.2. MPLS OAM . . . . . . . . . . . . . . . . . . . . . . . 28 | 2.6.2. MPLS OAM . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 2.6.3. Pseudowire OAM . . . . . . . . . . . . . . . . . . . . 29 | 2.6.3. Pseudowire OAM . . . . . . . . . . . . . . . . . . . . 31 | |||
| 2.6.4. MPLS-TP OAM . . . . . . . . . . . . . . . . . . . . . 30 | 2.6.4. MPLS-TP OAM . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 2.6.5. MPLS OAM and Layer-2 OAM Interworking . . . . . . . . 31 | 2.6.5. MPLS OAM and Layer-2 OAM Interworking . . . . . . . . 32 | |||
| 2.6.6. Extent of OAM Support by Hardware . . . . . . . . . . 32 | 2.6.6. Extent of OAM Support by Hardware . . . . . . . . . . 33 | |||
| 2.7. Number and Size of Flows . . . . . . . . . . . . . . . . . 32 | 2.7. Number and Size of Flows . . . . . . . . . . . . . . . . . 34 | |||
| 3. Questions for Suppliers . . . . . . . . . . . . . . . . . . . 33 | 3. Questions for Suppliers . . . . . . . . . . . . . . . . . . . 34 | |||
| 3.1. Basic Compliance . . . . . . . . . . . . . . . . . . . . . 33 | 3.1. Basic Compliance . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 3.2. Basic Performance . . . . . . . . . . . . . . . . . . . . 35 | 3.2. Basic Performance . . . . . . . . . . . . . . . . . . . . 36 | |||
| 3.3. Multipath Capabilities and Performance . . . . . . . . . . 35 | 3.3. Multipath Capabilities and Performance . . . . . . . . . . 37 | |||
| 3.4. Pseudowire Capabilities and Performance . . . . . . . . . 36 | 3.4. Pseudowire Capabilities and Performance . . . . . . . . . 37 | |||
| 3.5. Entropy Label Support and Performance . . . . . . . . . . 36 | 3.5. Entropy Label Support and Performance . . . . . . . . . . 38 | |||
| 3.6. DoS Protection . . . . . . . . . . . . . . . . . . . . . . 37 | 3.6. DoS Protection . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 3.7. OAM Capabilities and Performance . . . . . . . . . . . . . 37 | 3.7. OAM Capabilities and Performance . . . . . . . . . . . . . 38 | |||
| 4. Forwarding Compliance and Performance Testing . . . . . . . . 37 | 4. Forwarding Compliance and Performance Testing . . . . . . . . 39 | |||
| 4.1. Basic Compliance . . . . . . . . . . . . . . . . . . . . . 38 | 4.1. Basic Compliance . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.2. Basic Performance . . . . . . . . . . . . . . . . . . . . 38 | 4.2. Basic Performance . . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3. Multipath Capabilities and Performance . . . . . . . . . . 39 | 4.3. Multipath Capabilities and Performance . . . . . . . . . . 41 | |||
| 4.4. Pseudowire Capabilities and Performance . . . . . . . . . 40 | 4.4. Pseudowire Capabilities and Performance . . . . . . . . . 41 | |||
| 4.5. Entropy Label Support and Performance . . . . . . . . . . 40 | 4.5. Entropy Label Support and Performance . . . . . . . . . . 42 | |||
| 4.6. DoS Protection . . . . . . . . . . . . . . . . . . . . . . 41 | 4.6. DoS Protection . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 4.7. OAM Capabilities and Performance . . . . . . . . . . . . . 42 | 4.7. OAM Capabilities and Performance . . . . . . . . . . . . . 43 | |||
| 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 42 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 43 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 44 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 43 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 45 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 44 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 46 | |||
| Appendix A. Organization of References Section . . . . . . . . . 49 | Appendix A. Organization of References Section . . . . . . . . . 51 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 49 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 1. Introduction and Document Scope | 1. Introduction and Document Scope | |||
| The initial purpose of this document was to address concerns raised | The initial purpose of this document was to address concerns raised | |||
| on the MPLS WG mailing list about shortcomings in implementations of | on the MPLS WG mailing list about shortcomings in implementations of | |||
| MPLS forwarding. Documenting existing misconceptions and potential | MPLS forwarding. Documenting existing misconceptions and potential | |||
| pitfalls might potentially avoid repeating past mistakes. The | pitfalls might potentially avoid repeating past mistakes. The | |||
| document has grown to address a broad set of forwarding requirements. | document has grown to address a broad set of forwarding requirements. | |||
| The focus of this document is MPLS forwarding, base pseudowire | The focus of this document is MPLS forwarding, base pseudowire | |||
| skipping to change at page 4, line 33 ¶ | skipping to change at page 4, line 33 ¶ | |||
| interpret the MPLS payload as IPv4 or IPv6 based on the contents of | interpret the MPLS payload as IPv4 or IPv6 based on the contents of | |||
| the first nibble of payload. The use of IP addresses, the IP | the first nibble of payload. The use of IP addresses, the IP | |||
| protocol field, and UDP and TCP port number fields in multipath load | protocol field, and UDP and TCP port number fields in multipath load | |||
| balancing are considered within scope. The use of any other IP | balancing are considered within scope. The use of any other IP | |||
| protocol fields, such as tunneling protocols carried within IP, are | protocol fields, such as tunneling protocols carried within IP, are | |||
| out of scope. | out of scope. | |||
| Implementation details are a local matter and are out of scope. Most | Implementation details are a local matter and are out of scope. Most | |||
| interfaces today operate at 1 Gb/s or greater. It is assumed that | interfaces today operate at 1 Gb/s or greater. It is assumed that | |||
| all forwarding operations are implemented in specialized forwarding | all forwarding operations are implemented in specialized forwarding | |||
| hardware rather than on a special purpose processor. This is often | hardware rather than on a general purpose processor. This is often | |||
| referred to as "fast path" and "slow path" processing. Some | referred to as "fast path" and "slow path" processing. Some | |||
| recommendations are made regarding implemeting control or management | recommendations are made regarding implementing control or management | |||
| plane functionality in specialized hardware or with limited | plane functionality in specialized hardware or with limited | |||
| assistance from specialized hardware. This advise is based on | assistance from specialized hardware. This advise is based on | |||
| expected control or management protocol loads and on the need for | expected control or management protocol loads and on the need for | |||
| denial of service (DoS) protection. | denial of service (DoS) protection. | |||
| 1.1. Acronyms | 1.1. Acronyms | |||
| The following acronyms are used. | The following acronyms are used. | |||
| AC Attachment Circuit ([RFC3985]) | AC Attachment Circuit ([RFC3985]) | |||
| ACH Associated Channel Header (pseudowires) | ACH Associated Channel Header (pseudowires) | |||
| ACK Acknowledgement (TCP flag and type of packet) | ACK Acknowledgement (TCP flag and type of TCP packet) | |||
| AIS Alarm Indication Signal (MPLS-TP OAM) | AIS Alarm Indication Signal (MPLS-TP OAM) | |||
| ATM Asynchronous Transfer Mode (legacy switched circuits) | ATM Asynchronous Transfer Mode (legacy switched circuits) | |||
| BFD Bidirectional Forwarding Detection | BFD Bidirectional Forwarding Detection | |||
| BGP Border Gateway Protocol | BGP Border Gateway Protocol | |||
| CC-CV Connectivity Check and Connectivity Verification | CC-CV Connectivity Check and Connectivity Verification | |||
| skipping to change at page 9, line 4 ¶ | skipping to change at page 9, line 4 ¶ | |||
| "RECOMMENDED", "MAY", and "OPTIONAL" are used only where the | "RECOMMENDED", "MAY", and "OPTIONAL" are used only where the | |||
| requirement is specified in an existing RFC. These keywords SHOULD | requirement is specified in an existing RFC. These keywords SHOULD | |||
| be interpreted as described in RFC 2119 [RFC2119]. | be interpreted as described in RFC 2119 [RFC2119]. | |||
| Advice given in this document does not use the upper case RFC 2119 | Advice given in this document does not use the upper case RFC 2119 | |||
| keywords, except where explicitly noted that the keywords indicate | keywords, except where explicitly noted that the keywords indicate | |||
| that operator experiences indicate a requirement, but there are no | that operator experiences indicate a requirement, but there are no | |||
| existing RFC requirements. Such advice may be ignored by | existing RFC requirements. Such advice may be ignored by | |||
| implementations. Similarly, implementations not claiming conformance | implementations. Similarly, implementations not claiming conformance | |||
| to specific RFCs may ignore the requirements of those RFCs. In both | to specific RFCs may ignore the requirements of those RFCs. In both | |||
| cases, implementators may be doing so at their own peril. | cases, implementers should consider the risk of doing so. | |||
| 1.3. Apparent Misconceptions | 1.3. Apparent Misconceptions | |||
| In early generations of forwarding silicon (which might now be behind | In early generations of forwarding silicon (which might now be behind | |||
| us), there apparently were some misconceptions about MPLS. The | us), there apparently were some misconceptions about MPLS. The | |||
| following statements provide clarifications. | following statements provide clarifications. | |||
| 1. There are practical reasons to have more than one or two labels | 1. There are practical reasons to have more than one or two labels | |||
| in an MPLS label stack. Under some circumstances the label stack | in an MPLS label stack. Under some circumstances the label stack | |||
| can become quite deep. See Section 2.1. | can become quite deep. See Section 2.1. | |||
| 2. The label stack MUST be considered to be arbitrarily deep. | 2. The label stack MUST be considered to be arbitrarily deep. | |||
| Section 3.27.4. "Hierarchy: LSP Tunnels within LSPs" of RFC 3031 | Section 3.27.4. "Hierarchy: LSP Tunnels within LSPs" of RFC3031 | |||
| [RFC3031] states "The label stack mechanism allows LSP tunneling | states "The label stack mechanism allows LSP tunneling to nest to | |||
| to nest to any depth." If a bottom of the label stack cannot be | any depth." [RFC3031] If a bottom of the label stack cannot be | |||
| found, but sufficient number of labels exist to forward, an LSR | found, but sufficient number of labels exist to forward, an LSR | |||
| MUST forward the packet. An LSR MUST NOT assume the packet is | MUST forward the packet. An LSR MUST NOT assume the packet is | |||
| malformed unless the end of packet is found before bottom of | malformed unless the end of packet is found before bottom of | |||
| stack. See Section 2.1. | stack. See Section 2.1. | |||
| 3. In networks where deep label stacks are encountered, they are not | 3. In networks where deep label stacks are encountered, they are not | |||
| rare. Full packet rate performance is required regardless of | rare. Full packet rate performance is required regardless of | |||
| label stack depth, except where multiple pop operations are | label stack depth, except where multiple pop operations are | |||
| required. See Section 2.1. | required. See Section 2.1. | |||
| 4. Research has shown that long bursts of short packets with 40 byte | 4. Research has shown that long bursts of short packets with 40 byte | |||
| or 44 byte IP payload sizes in these bursts are quite common. | or 44 byte IP payload sizes in these bursts are quite common. | |||
| This is due to TCP ACK compression [ACK-compression]. | This is due to TCP ACK compression [ACK-compression]. The | |||
| following two sub-bullets constitutes advice that reflects very | ||||
| common hard requirements of providers. Implementers may ignore | ||||
| this advice but should consider the risk of doing so. | ||||
| A. A forwarding engine SHOULD, if practical, be able to sustain | A. A forwarding engine SHOULD, if practical, be able to sustain | |||
| an arbitrarily long sequence of small packets arriving at | an arbitrarily long sequence of small packets arriving at | |||
| full interface rate. | full interface rate. | |||
| B. If indefinite full packet rate for small packets is not | B. If indefinite full packet rate for small packets is not | |||
| practical, a forwarding engine MUST be able to buffer a long | practical, a forwarding engine MUST be able to buffer a long | |||
| sequence of small packets inbound to the on-chip decision | sequence of small packets inbound to the on-chip decision | |||
| engine and sustain full interface rate for some reasonable | engine and sustain full interface rate for some reasonable | |||
| average packet rate. Absent this small on-chip buffering, | average packet rate. Absent this small on-chip buffering, | |||
| QoS agnostic packet drops can occur. | QoS agnostic packet drops can occur. | |||
| See Section 2.3. | See Section 2.3. | |||
| 5. The implementor and system designer MUST support pseudowire | 5. The implementer and system designer MUST support pseudowire | |||
| control word if MPLS-TP is supported or if ACH is being used on a | control word (CW) if MPLS-TP is supported or if ACH [RFC5586] is | |||
| pseudowire [RFC5586]. The implementor and system designer SHOULD | being used on a pseudowire. The implementer and system designer | |||
| support pseudowire control word if MPLS-TP and [RFC5586] are not | SHOULD support pseudowire CW even if MPLS-TP and ACH [RFC5586] | |||
| used [RFC5085]. Deployments SHOULD enable pseudowire control | are not used, using instead CW and VCCV Type 1 [RFC5085] to allow | |||
| word. See Section 2.4.1. | the use of multipath in the underlying network topology without | |||
| impacting the PW traffic. | ||||
| [I-D.ietf-pwe3-vccv-impl-survey-results] does note that there are | ||||
| still some deployments where the CW is not always used. It also | ||||
| notes that many service providers do enable the CW. See | ||||
| Section 2.4.1 for more discussion on why deployments SHOULD | ||||
| enable the pseudowire CW. | ||||
| 6. The implementor and system designer SHOULD support adding a | 6. The implementer and system designer SHOULD support adding a | |||
| pseudowire Flow Label [RFC6391]. Deployments MAY enable this | pseudowire Flow Label [RFC6391]. Deployments MAY enable this | |||
| feature for appropriate pseudowire types. See Section 2.4.3. | feature for appropriate pseudowire types. See Section 2.4.3. | |||
| 7. The implementor and system designer SHOULD support adding an MPLS | 7. The implementer and system designer SHOULD support adding an MPLS | |||
| entropy label [RFC6790]. Deployments MAY enable this feature. | entropy label [RFC6790]. Deployments MAY enable this feature. | |||
| See Section 2.4.4. | See Section 2.4.4. | |||
| 1.4. Target Audience | 1.4. Target Audience | |||
| This document is intended for multiple audiences: implementor | This document is intended for multiple audiences: implementer | |||
| (implementing MPLS forwarding in silicon or in software); systems | (implementing MPLS forwarding in silicon or in software); systems | |||
| designer (putting together a MPLS forwarding systems); deployer | designer (putting together a MPLS forwarding systems); deployer | |||
| (running an MPLS network). These guidelines are intended to serve | (running an MPLS network). These guidelines are intended to serve | |||
| the following purposes: | the following purposes: | |||
| 1. Explain what to do and what not to do when a deep label stack is | 1. Explain what to do and what not to do when a deep label stack is | |||
| encountered. (audience: implementor) | encountered. (audience: implementer) | |||
| 2. Highlight pitfalls to look for when implementing an MPLS | 2. Highlight pitfalls to look for when implementing an MPLS | |||
| forwarding chip. (audience: implementor) | forwarding chip. (audience: implementer) | |||
| 3. Provide a checklist of features and performance specifications to | 3. Provide a checklist of features and performance specifications to | |||
| request. (audience: systems designer, deployer) | request. (audience: systems designer, deployer) | |||
| 4. Provide a set of tests to perform. (audience: systems designer, | 4. Provide a set of tests to perform. (audience: systems designer, | |||
| deployer). | deployer). | |||
| The implementor, systems designer, and deployer have a transitive | The implementer, systems designer, and deployer have a transitive | |||
| supplier customer relationship. It is in the best interest of the | supplier customer relationship. It is in the best interest of the | |||
| supplier to review their product against their customer's checklist | supplier to review their product against their customer's checklist | |||
| and customer's customer's checklist if applicable. | and customer's customer's checklist if applicable. | |||
| 2. Forwarding Issues | 2. Forwarding Issues | |||
| A brief review of forwarding issues is provided in the subsections | A brief review of forwarding issues is provided in the subsections | |||
| that follow. This section provides some background on why some of | that follow. This section provides some background on why some of | |||
| these requirements exist. The questions to ask of suppliers and | these requirements exist. The questions to ask of suppliers and | |||
| testing is covered in the following sections, Section 3 and | testing is covered in the following sections, Section 3 and | |||
| skipping to change at page 11, line 40 ¶ | skipping to change at page 12, line 5 ¶ | |||
| 2. The entropy label indicator (ELI) and entropy label (EL) are | 2. The entropy label indicator (ELI) and entropy label (EL) are | |||
| defined by [RFC6790]. | defined by [RFC6790]. | |||
| A few RFCs update RFC3209. Those that are listed as updating RFC3209 | A few RFCs update RFC3209. Those that are listed as updating RFC3209 | |||
| generally impact only RSVP-TE signaling. Forwarding is modified by | generally impact only RSVP-TE signaling. Forwarding is modified by | |||
| major extension built upon RFC3209. | major extension built upon RFC3209. | |||
| RFCs which impact forwarding are discussed in the following | RFCs which impact forwarding are discussed in the following | |||
| subsections. | subsections. | |||
| 2.1.1. MPLS Reserved Labels | 2.1.1. MPLS Special Purpose Labels | |||
| [RFC3032] specifies that label values 0-15 are reserved labels with | [RFC3032] specifies that label values 0-15 are special purpose labels | |||
| special meanings. Three values of NULL label are defined (two of | with special meanings. Three values of NULL label are defined (two | |||
| which are later updated by [RFC4182]) and a router-alert label is | of which are later updated by [RFC4182]) and a router-alert label is | |||
| defined. The original intent was that reserved labels, except the | defined. The original intent was that special purpose labels, except | |||
| NULL labels, could be sent to the routing engine CPU rather than be | the NULL labels, could be sent to the routing engine CPU rather than | |||
| processed in forwarding hardware. Hardware support is required by | be processed in forwarding hardware. Hardware support is required by | |||
| new RFCs such as those defining entropy label and OAM processed as a | new RFCs such as those defining entropy label and OAM processed as a | |||
| result of receiving a GAL. For new reserved labels, some | result of receiving a GAL. For new special purpose labels, some | |||
| accommodation is needed for LSR that will send the labels to a | accommodation is needed for LSR that will send the labels to a | |||
| general purpose CPU or other highly programmable hardware. For | general purpose CPU or other highly programmable hardware. For | |||
| example, ELI will only be sent to LSR which have signaled support for | example, ELI will only be sent to LSR which have signaled support for | |||
| [RFC6790] and high OAM packet rate must be negotiated among | [RFC6790] and high OAM packet rate must be negotiated among | |||
| endpoints. | endpoints. | |||
| [RFC3429] reserves a label for ITU-T Y.1711, however Y.1711 does not | [RFC3429] reserves a label for ITU-T Y.1711, however Y.1711 does not | |||
| work with multipath and its use is strongly discouraged. | work with multipath and its use is strongly discouraged. | |||
| The current list of reserved labels can be found on the | The current list of special purpose labels can be found on the | |||
| "Multiprotocol Label Switching Architecture (MPLS) Label Values" | "Multiprotocol Label Switching Architecture (MPLS) Label Values" | |||
| registry reachable at IANA's pages at <http://www.iana.org>. | registry reachable at IANA's pages at <http://www.iana.org>. | |||
| When an unknown reserved label is encountered or a reserved label not | [I-D.ietf-mpls-special-purpose-labels] introduces an IANA "Extended | |||
| directly handled in forwarding hardware is encountered, the packet | Special Purpose MPLS Label Values" registry and makes use of the | |||
| should be sent to a general purpose CPU by default. If this | "extension" label, label 15, to indicate that the next label is an | |||
| capability is supported, there must be an option to either drop or | extended special purpose label and requires special handling. The | |||
| rate limit such packets on a per reserved label value basis. | range of only 16 values for special purpose labels allows a table to | |||
| be used. The range of extended special purpose labels with 20 bits | ||||
| available for use may have to be handled in some other way in the | ||||
| unlikely event that in the future the range of currently reserved | ||||
| values 256-1048575 are used. If only the standards action range, 16- | ||||
| 239, and the experimental range, 240-255, are used, then a table of | ||||
| 256 entries can be used. | ||||
| Unknown special purpose labels and unknown extended special purpose | ||||
| labels are handled the same. When an unknown special purpose label | ||||
| is encountered or a special purpose label not directly handled in | ||||
| forwarding hardware is encountered, the packet should be sent to a | ||||
| general purpose CPU by default. If this capability is supported, | ||||
| there must be an option to either drop or rate limit such packets on | ||||
| a per special purpose label value basis. | ||||
| 2.1.2. MPLS Differentiated Services | 2.1.2. MPLS Differentiated Services | |||
| [RFC2474] deprecates the IP Type of Service (TOS) and IP Precedence | [RFC2474] deprecates the IP Type of Service (TOS) and IP Precedence | |||
| (Prec) fields and replaces them with the Differentiated Services | (Prec) fields and replaces them with the Differentiated Services | |||
| Field more commonly known as the Differentiated Services Code Point | Field more commonly known as the Differentiated Services Code Point | |||
| (DSCP) field. [RFC2475] defines the Differentiated Services | (DSCP) field. [RFC2475] defines the Differentiated Services | |||
| architecture, which in other forum is often called a Quality of | architecture, which in other forum is often called a Quality of | |||
| Service (QoS) architecture. | Service (QoS) architecture. | |||
| skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 31 ¶ | |||
| provides a means to support up to eight E-LSP-like mappings of | provides a means to support up to eight E-LSP-like mappings of | |||
| DSCP to TC. | DSCP to TC. | |||
| To meet Differentiated Services requirements specified in [RFC3270], | To meet Differentiated Services requirements specified in [RFC3270], | |||
| the following forwarding requirements must be met. An ingress LER | the following forwarding requirements must be met. An ingress LER | |||
| MUST be able to select an LSP and then apply a per LSP map of DSCP | MUST be able to select an LSP and then apply a per LSP map of DSCP | |||
| into TC. A midpoint LSR MUST be able to apply a per LSP map of TC to | into TC. A midpoint LSR MUST be able to apply a per LSP map of TC to | |||
| PHB. The number of mappings supported will be far less than the | PHB. The number of mappings supported will be far less than the | |||
| number of LSP supported. | number of LSP supported. | |||
| To meet Differentiated Services requirements specified in [RFC4124], | ||||
| the following forwarding requirements must be met. An ingress LER | ||||
| MUST be able to select an LSP and then apply a per LSP map of DSCP | ||||
| into TC. A midpoint LSR MUST be able to apply a per LSP map to CT | ||||
| map and then use Class Type (CT) to map TC to PHB. Since there are | ||||
| only eight allowed values of CT, only eight maps of TC to PHB need to | ||||
| be supported. The LSP label can be used directly to find the TC to | ||||
| PHB mapping, as is needed to support [RFC3270] L-LSP. | ||||
| While support for [RFC4124] and not [RFC3270] would allow support for | ||||
| only eight mappings of TC to PHB, it is common to support both and | ||||
| simply state a limit on the number of unique TC to PHB mappings which | ||||
| can be supported. | ||||
| 2.1.3. Time Synchronization | 2.1.3. Time Synchronization | |||
| PTP or NTP may be carried over MPLS [I-D.ietf-tictoc-1588overmpls]. | PTP or NTP may be carried over MPLS [I-D.ietf-tictoc-1588overmpls]. | |||
| Generally NTP will be carried within IP with IP carried in MPLS | Generally NTP will be carried within IP with IP carried in MPLS | |||
| [RFC5905]. Both PTP and NTP benefit from accurate time stamping of | [RFC5905]. Both PTP and NTP benefit from accurate time stamping of | |||
| incoming packets and the ability to insert accurate time stamps in | incoming packets and the ability to insert accurate time stamps in | |||
| outgoing packets. PTP correction which occurs when forwarding | outgoing packets. PTP correction which occurs when forwarding | |||
| requires updating a timestamp compensation field based on the | requires updating a timestamp compensation field based on the | |||
| difference between packet arrival at an LSR and packet transmit time | difference between packet arrival at an LSR and packet transmit time | |||
| at that same LSR. | at that same LSR. | |||
| skipping to change at page 13, line 39 ¶ | skipping to change at page 14, line 31 ¶ | |||
| MPLS deployments in the early part of the prior decade (circa 2000) | MPLS deployments in the early part of the prior decade (circa 2000) | |||
| tended to support either LDP or RSVP-TE. LDP was favored by some for | tended to support either LDP or RSVP-TE. LDP was favored by some for | |||
| its ability to scale to a very large number of PE devices at the edge | its ability to scale to a very large number of PE devices at the edge | |||
| of the network, without adding deployment complexity. RSVP-TE was | of the network, without adding deployment complexity. RSVP-TE was | |||
| favored, generally in the network core, where traffic engineering | favored, generally in the network core, where traffic engineering | |||
| and/or fast reroute were considered important. | and/or fast reroute were considered important. | |||
| Both LDP and RSVP-TE are used simultaneously within major Service | Both LDP and RSVP-TE are used simultaneously within major Service | |||
| Provider networks using a technique known as "LDP over RSVP-TE | Provider networks using a technique known as "LDP over RSVP-TE | |||
| Tunneling". This technique allows service providers to carry LDP | Tunneling". This technique allows service providers to carry LDP | |||
| tunnels, originating and terminating at PE's, inside of RSVP-TE | tunnels, originating and terminating at PEs, inside of RSVP-TE | |||
| tunnels, generally between Inter-City P routers, to take advantage of | tunnels, generally between Inter-City P routers, to take advantage of | |||
| Traffic Engineering and Fast Re-Route on more expensive Inter-City | Traffic Engineering and Fast Re-Route on more expensive Inter-City | |||
| and Inter-Continental Transport paths. LDP over RSVP-TE tunneling | and Inter-Continental Transport paths. LDP over RSVP-TE tunneling | |||
| requires a minimum of two MPLS labels: one each for LDP and RSVP-TE. | requires a minimum of two MPLS labels: one each for LDP and RSVP-TE. | |||
| The use of MPLS FRR [RFC4090] might add one more label to MPLS | The use of MPLS FRR [RFC4090] might add one more label to MPLS | |||
| traffic, but only when FRR protection was in use. If LDP over | traffic, but only when FRR protection is in use (active). If LDP | |||
| RSVP-TE is in use, and FRR protection is in use, then at least three | over RSVP-TE is in use, and FRR protection is in use, then at least | |||
| MPLS labels are present on the label stack on the links through which | three MPLS labels are present on the label stack on the links through | |||
| the Bypass LSP traverses. FRR is covered in Section 2.1.7. | which the Bypass LSP traverses. FRR is covered in Section 2.1.7. | |||
| LDP L2VPN, LDP IPVPN, BGP L2VPN, and BGP IPVPN added support for VPN | LDP L2VPN, LDP IPVPN, BGP L2VPN, and BGP IPVPN added support for VPN | |||
| services that are deployed in the vast majority of service providers. | services that are deployed in the vast majority of service providers. | |||
| These VPN services added yet another label, bringing the label stack | These VPN services added yet another label, bringing the label stack | |||
| depth (when FRR is active) to four. | depth (when FRR is active) to four. | |||
| Pseudowires and VPN are discussed in further detail in Section 2.1.8 | Pseudowires and VPN are discussed in further detail in Section 2.1.8 | |||
| and Section 2.1.9. | and Section 2.1.9. | |||
| MPLS hierarchy as described in [RFC4206] can in principle add up to | ||||
| four additional labels. MPLS hierarchy is discussed in | ||||
| Section 2.1.6. | ||||
| Other features such as Entropy Label (discussed in Section 2.4.4) and | ||||
| Flow Label (discussed in Section 2.4.3) can add additional labels to | ||||
| the label stack. | ||||
| Although theoretical scenarios can easily result in eight or more | ||||
| labels, such cases are rare if they occur at all today. For the | ||||
| purpose of forwarding, only the top label needs to be examined if PHP | ||||
| is used, a few more if UHP is used (see Section 2.5). For deep label | ||||
| stacks, quite a few labels may have to be examined for the purpose of | ||||
| load balancing across parallel links (see Section 2.4), however this | ||||
| depth can be bounded by a provider through use of Entropy Label. | ||||
| 2.1.5. MPLS Link Bundling | 2.1.5. MPLS Link Bundling | |||
| MPLS Link Bundling was the first RFC to address the need for multiple | MPLS Link Bundling was the first RFC to address the need for multiple | |||
| parallel links between nodes [RFC4201]. MPLS Link Bundling is | parallel links between nodes [RFC4201]. MPLS Link Bundling is | |||
| notable in that it tried not to change MPLS forwarding, except in | notable in that it tried not to change MPLS forwarding, except in | |||
| specifying the "All-Ones" component link. MPLS Link Bundling is | specifying the "All-Ones" component link. MPLS Link Bundling is | |||
| seldom if ever deployed. Instead multipath techniques described in | seldom if ever deployed. Instead multipath techniques described in | |||
| Section 2.4 are used. | Section 2.4 are used. | |||
| 2.1.6. MPLS Hierarchy | 2.1.6. MPLS Hierarchy | |||
| skipping to change at page 14, line 36 ¶ | skipping to change at page 15, line 44 ¶ | |||
| remains the most likely means of providing further scaling in an | remains the most likely means of providing further scaling in an | |||
| RSVP-TE MPLS network, particularly where the network is designed to | RSVP-TE MPLS network, particularly where the network is designed to | |||
| provide RSVP-TE connectivity to the edges. This is the case for | provide RSVP-TE connectivity to the edges. This is the case for | |||
| envisioned MPLS-TP networks. The use of the MPLS PSC hierarchy can | envisioned MPLS-TP networks. The use of the MPLS PSC hierarchy can | |||
| add as many as four labels to a label stack, though it is likely that | add as many as four labels to a label stack, though it is likely that | |||
| only one layer of PSC will be used in the near future. | only one layer of PSC will be used in the near future. | |||
| 2.1.7. MPLS Fast Reroute (FRR) | 2.1.7. MPLS Fast Reroute (FRR) | |||
| Fast reroute is defined by [RFC4090]. Two significantly different | Fast reroute is defined by [RFC4090]. Two significantly different | |||
| methods are the "One-to-One Backup" method which uses the "Detour | methods are defined in RFC4090, the "One-to-One Backup" method which | |||
| LSP" and the " Facility Backup" which uses a "bypass tunnel". These | uses the "Detour LSP" and the " Facility Backup" which uses a "bypass | |||
| are commonly referred to as the detour and bypass methods | tunnel". These are commonly referred to as the detour and bypass | |||
| respectively. | methods respectively. | |||
| The detour method makes use of a presignaled LSP. Hardware | The detour method makes use of a presignaled LSP. Hardware | |||
| assistance is needed for detour FRR only if necessary to accomplish | assistance is needed for detour FRR only if necessary to accomplish | |||
| local repair of a large number of LSP within the 10s of milliseconds | local repair of a large number of LSP within the 10s of milliseconds | |||
| target. For each affected LSP a swap operation must be reprogrammed | target. For each affected LSP a swap operation must be reprogrammed | |||
| or otherwise switched over. The use of detour FRR doubles the number | or otherwise switched over. The use of detour FRR doubles the number | |||
| of LSP terminating at any given hop and will increase the number of | of LSP terminating at any given hop and will increase the number of | |||
| LSP within a network by a factor dependent on the average detour path | LSP within a network by a factor dependent on the average detour path | |||
| length. | length. | |||
| The bypass method makes use of a tunnel that is unused when no fault | The bypass method makes use of a tunnel that is unused when no fault | |||
| exists but may carry many LSP when a local repair is required. There | exists but may carry many LSP when a local repair is required. There | |||
| is no presignaling indicating which working LSP will be diverted into | is no presignaling indicating which working LSP will be diverted into | |||
| any specific bypass LSP. The egress LSR of the bypass LSP MUST use | any specific bypass LSP. The merge LSR (egress LSR of the bypass | |||
| platform label space (as defined in [RFC3031]) so that an LSP working | LSP) MUST use platform label space (as defined in [RFC3031]) so that | |||
| path on any give interface can be backed up using a bypass LSP | an LSP working path on any give interface can be backed up using a | |||
| terminating on any other interface. Hardware assistance is needed if | bypass LSP terminating on any other interface. Hardware assistance | |||
| necessary to accomplish local repair of a large number of LSP within | is needed if necessary to accomplish local repair of a large number | |||
| the 10s of milliseconds target. For each affected LSP a swap | of LSP within the 10s of milliseconds target. For each affected LSP | |||
| operation must be reprogrammed or otherwise switched over with an | a swap operation must be reprogrammed or otherwise switched over with | |||
| additional push of the bypass LSP label. In addition the use of | an additional push of the bypass LSP label. The use of platform | |||
| platform label space impacts the size of the LSR ILM for LSR with a | label space impacts the size of the LSR ILM for LSR with a very large | |||
| very large number of interfaces. | number of interfaces. | |||
| 2.1.8. Pseudowire Encapsulation | 2.1.8. Pseudowire Encapsulation | |||
| The pseudowire (PW) architecture is defined in [RFC3985]. A | The pseudowire (PW) architecture is defined in [RFC3985]. A | |||
| pseudowire, when carried over MPLS, adds one or more additional label | pseudowire, when carried over MPLS, adds one or more additional label | |||
| entries to the MPLS label stack. A PW Control Word is defined in | entries to the MPLS label stack. A PW Control Word is defined in | |||
| [RFC4385] with motivation for defining the control word in [RFC4928]. | [RFC4385] with motivation for defining the control word in [RFC4928]. | |||
| The PW Associated Channel defined in [RFC4385] is used for OAM in | The PW Associated Channel defined in [RFC4385] is used for OAM in | |||
| [RFC5085]. The PW Flow Label is defined in [RFC6391] and is | [RFC5085]. The PW Flow Label is defined in [RFC6391] and is | |||
| discussed further in this document in Section 2.4.3. | discussed further in this document in Section 2.4.3. | |||
| skipping to change at page 17, line 17 ¶ | skipping to change at page 18, line 26 ¶ | |||
| The P2MP LSP have a single source. An LSR may be a leaf node, an | The P2MP LSP have a single source. An LSR may be a leaf node, an | |||
| intermediate node, or a "bud" node. A bud serves as both a leaf and | intermediate node, or a "bud" node. A bud serves as both a leaf and | |||
| intermediate. At a leaf an MPLS pop is performed. The payload may | intermediate. At a leaf an MPLS pop is performed. The payload may | |||
| be a IP Multicast packet that requires further replication. At an | be a IP Multicast packet that requires further replication. At an | |||
| intermediate node a MPLS swap operation is performed. The bud | intermediate node a MPLS swap operation is performed. The bud | |||
| requires that both a pop operation and a swap operation be performed | requires that both a pop operation and a swap operation be performed | |||
| for the same incoming packet. | for the same incoming packet. | |||
| One strategy to support P2MP functionality is to pop at the LSR | One strategy to support P2MP functionality is to pop at the LSR | |||
| ingress and then optionally push labels at each LSR egress. A given | interface serving as ingress to the P2MP traffic and then optionally | |||
| LSR egress chip may support multiple egress interfaces, each of which | push labels at each LSR interface serving as egress to the P2MP | |||
| requires a copy, but each with a different set of added labels and | traffic at that same LSR. A given LSR egress chip may support | |||
| layer-2 encapsulation. Some physical interfaces may have multiple | multiple egress interfaces, each of which requires a copy, but each | |||
| sub-interfaces (such as Ethernet VLAN or channelized interfaces) each | with a different set of added labels and layer-2 encapsulation. Some | |||
| requiring a copy. | physical interfaces may have multiple sub-interfaces (such as | |||
| Ethernet VLAN or channelized interfaces) each requiring a copy. | ||||
| If packet replication is performed at LSR ingress, then the ingress | If packet replication is performed at LSR ingress, then the ingress | |||
| interface performance may suffer. If the packet replication is | interface performance may suffer. If the packet replication is | |||
| performed within a LSR switching fabric and at LSR egress, congestion | performed within a LSR switching fabric and at LSR egress, congestion | |||
| of egress interfaces cannot make use of backpressure to ingress | of egress interfaces cannot make use of backpressure to ingress | |||
| interfaces using techniques such as virtual output queuing (VOQ). If | interfaces using techniques such as virtual output queuing (VOQ). If | |||
| buffering is primarily supported at egress, then the need for | buffering is primarily supported at egress, then the need for | |||
| backpressure is minimized. There may be no good solution for high | backpressure is minimized. There may be no good solution for high | |||
| volumes of multicast traffic if VOQ is used. | volumes of multicast traffic if VOQ is used. | |||
| MP2MP LSP differ in that any branch may provide an input, including a | MP2MP LSP differ in that any branch may provide an input, including a | |||
| leaf. Packets must be replicated onto all other branches. This | leaf. Packets must be replicated onto all other branches. This | |||
| forwarding is often implemented as multiple P2MP forwarding trees, | forwarding is often implemented as multiple P2MP forwarding trees, | |||
| one for each potential input. | one for each potential input interface at a given LSR. | |||
| 2.3. Packet Rates | 2.3. Packet Rates | |||
| While average packet size of Internet traffic may be large, long | While average packet size of Internet traffic may be large, long | |||
| sequences of small packets have both been predicted in theory and | sequences of small packets have both been predicted in theory and | |||
| observed in practice. Traffic compression and TCP ACK compression | observed in practice. Traffic compression and TCP ACK compression | |||
| can conspire to create long sequences of packets of 40-44 bytes in | can conspire to create long sequences of packets of 40-44 bytes in | |||
| payload length. If carried over Ethernet, the 64 byte minimum | payload length. If carried over Ethernet, the 64 byte minimum | |||
| payload applies, yielding a packet rate of approximately 150 Mpps | payload applies, yielding a packet rate of approximately 150 Mpps | |||
| (million packets per second) for the duration of the burst on a | (million packets per second) for the duration of the burst on a | |||
| nominal 100 Gb/s link. The peak rate is higher for other | nominal 100 Gb/s link. The peak rate is higher for other | |||
| encapsulations can be as high as 250 Mpps (for example IP or MPLS | encapsulations and can be as high as 250 Mpps (for example IP or MPLS | |||
| encapsulated using GFP over OTN ODU4). | encapsulated using GFP over OTN ODU4). | |||
| It is also possible that the packet rates for a minimum payload size, | It is also possible that the packet rates for a minimum payload size, | |||
| such as 64 byte (64B) payload for Ethernet, is acceptable, but the | such as 64 byte (64B) payload for Ethernet, is acceptable, but the | |||
| rate declines for other packet sizes, such as 65B payload. There are | rate declines for other packet sizes, such as 65B payload. There are | |||
| other packet rates of interest besides TCP ACK. For example, a TCP | other packet rates of interest besides TCP ACK. For example, a TCP | |||
| ACK carried over an Ethernet PW over MPLS over Ethernet may occupy | ACK carried over an Ethernet PW over MPLS over Ethernet may occupy | |||
| 82B or 82B plus an increment of 4B if additional MPLS labels are | 82B or 82B plus an increment of 4B if additional MPLS labels are | |||
| present. | present. | |||
| skipping to change at page 18, line 29 ¶ | skipping to change at page 19, line 39 ¶ | |||
| important, a larger drop for 82B packets. | important, a larger drop for 82B packets. | |||
| The loss of some TCP ACK packets are not the primary concern when | The loss of some TCP ACK packets are not the primary concern when | |||
| such a burst occurs. When a burst occurs, any other packets, | such a burst occurs. When a burst occurs, any other packets, | |||
| regardless of packet length and packet QoS are dropped once on-chip | regardless of packet length and packet QoS are dropped once on-chip | |||
| input buffers prior to the decision engine are exceeded. Buffers in | input buffers prior to the decision engine are exceeded. Buffers in | |||
| front of the packet decision engine are often very small or non- | front of the packet decision engine are often very small or non- | |||
| existent (less than one packet of buffer) causing significant QoS | existent (less than one packet of buffer) causing significant QoS | |||
| agnostic packet drop. | agnostic packet drop. | |||
| Internet service providers and content providers generally specify | Internet service providers and content providers at one time | |||
| full rate forwarding with 40 byte payload packets as a requirement. | specified full rate forwarding with 40 byte payload packets as a | |||
| This requirement often can be waived if the provider can be convinced | requirement. Today, this requirement often can be waived if the | |||
| that when long sequence of short packets occur no packets will be | provider can be convinced that when long sequence of short packets | |||
| dropped. | occur no packets will be dropped. | |||
| Many equipment suppliers have pointed out that the extra cost in | Many equipment suppliers have pointed out that the extra cost in | |||
| designing hardware capable of processing the minimum size packets at | designing hardware capable of processing the minimum size packets at | |||
| full line rate is significant for very high speed interfaces. If | full line rate is significant for very high speed interfaces. If | |||
| hardware is not capable of processing the minimum size packets at | hardware is not capable of processing the minimum size packets at | |||
| full line rate, then that hardware MUST be capable of handling large | full line rate, then that hardware MUST be capable of handling large | |||
| burst of small packets, a condition which is often observed. This | burst of small packets, a condition which is often observed. This | |||
| level of performance is necessary to meet Differentiated Services | level of performance is necessary to meet Differentiated Services | |||
| [RFC2475] requirements for without it, packets are lost prior to | [RFC2475] requirements for without it, packets are lost prior to | |||
| inspection of the IP DSCP field [RFC2474] or MPLS TC field [RFC5462]. | inspection of the IP DSCP field [RFC2474] or MPLS TC field [RFC5462]. | |||
| With adequate on-chip buffers before the packet decision engine, an | With adequate on-chip buffers before the packet decision engine, an | |||
| LSR can absorb a long sequence of short packets. Even if the output | LSR can absorb a long sequence of short packets. Even if the output | |||
| is slowed to the point where light congestion occurs, the packets, | is slowed to the point where light congestion occurs, the packets, | |||
| having cleared the decision process, can make use of larger VOQ or | having cleared the decision process, can make use of larger VOQ or | |||
| output side buffers and be dealt with according to configured QoS | output side buffers and be dealt with according to configured QoS | |||
| treatment, rather than dropped completely at random. | treatment, rather than dropped completely at random. | |||
| skipping to change at page 19, line 19 ¶ | skipping to change at page 20, line 29 ¶ | |||
| of 64 bytes in length, or 256KB, corresponds to 2 msec on a 10 Mb/s | of 64 bytes in length, or 256KB, corresponds to 2 msec on a 10 Mb/s | |||
| link and 0.2 usec on a 100 Gb/s link. If the packet decision engine | link and 0.2 usec on a 100 Gb/s link. If the packet decision engine | |||
| is capable of handling packets at 90% of the full rate for small | is capable of handling packets at 90% of the full rate for small | |||
| packets, then the maximum added delay is 0.2 msec and 20 nsec | packets, then the maximum added delay is 0.2 msec and 20 nsec | |||
| respectively, and this delay only applies if a 4K burst of short | respectively, and this delay only applies if a 4K burst of short | |||
| packets occurs. When no burst of short packets was being processed, | packets occurs. When no burst of short packets was being processed, | |||
| no delay is added. | no delay is added. | |||
| Packet rate requirements apply regardless of which network tier | Packet rate requirements apply regardless of which network tier | |||
| equipment is deployed in. Whether deployed in the network core or | equipment is deployed in. Whether deployed in the network core or | |||
| near the network edges, one of the two conditions MUST be met: | near the network edges, one of the two conditions MUST be met if | |||
| Differentiated Services requirements are to be met: | ||||
| 1. Packets must be processed at full line rate with minimum sized | 1. Packets must be processed at full line rate with minimum sized | |||
| packets. -OR- | packets. -OR- | |||
| 2. Packets must be processed at a rate well under generally accepted | 2. Packets must be processed at a rate well under generally accepted | |||
| average packet sizes, with sufficient buffering prior to the | average packet sizes, with sufficient buffering prior to the | |||
| packet decision engine to accommodate long bursts of small | packet decision engine to accommodate long bursts of small | |||
| packets. | packets. | |||
| 2.4. MPLS Multipath Techniques | 2.4. MPLS Multipath Techniques | |||
| skipping to change at page 20, line 14 ¶ | skipping to change at page 21, line 26 ¶ | |||
| deployed base of edge equipment without the ability to add an entropy | deployed base of edge equipment without the ability to add an entropy | |||
| label. | label. | |||
| A generation of edge equipment supporting the ability to add an MPLS | A generation of edge equipment supporting the ability to add an MPLS | |||
| entropy label is needed before the performance requirements for core | entropy label is needed before the performance requirements for core | |||
| LSR can be relaxed. However, it is likely that two generations of | LSR can be relaxed. However, it is likely that two generations of | |||
| deployment in the future will allow core LSR to support full packet | deployment in the future will allow core LSR to support full packet | |||
| rate only when a relatively small number of MPLS labels need to be | rate only when a relatively small number of MPLS labels need to be | |||
| inspected before hashing. For now, don't count on it. | inspected before hashing. For now, don't count on it. | |||
| Common practice today is to reinspect the packet at each LSR and | Common practice today is to reinspect the packet at each LSR and use | |||
| information from the packet combined with a hash seed that is | information from the packet combined plus a hash seed that is | |||
| selected by each LSR. Where flow labels or entropy labels are used, | selected by each LSR. Where flow labels or entropy labels are used, | |||
| a hash seed must be used when creating these labels. | a hash seed must be used when creating these labels. | |||
| 2.4.1. Pseudowire Control Word | 2.4.1. Pseudowire Control Word | |||
| Within the core of a network some form of multipath is almost certain | Within the core of a network some form of multipath is almost certain | |||
| to be used. Multipath techniques deployed today are likely to be | to be used. Multipath techniques deployed today are likely to be | |||
| looking beneath the label stack for an opportunity to hash on IP | looking beneath the label stack for an opportunity to hash on IP | |||
| addresses. | addresses. | |||
| skipping to change at page 21, line 25 ¶ | skipping to change at page 22, line 39 ¶ | |||
| 2.4.3. Pseudowire Flow Label | 2.4.3. Pseudowire Flow Label | |||
| Unlike a pseudowire control word, a pseudowire flow label [RFC6391], | Unlike a pseudowire control word, a pseudowire flow label [RFC6391], | |||
| is required only for relatively large capacity pseudowires. There | is required only for relatively large capacity pseudowires. There | |||
| are many cases where a pseudowire flow label makes sense. Any | are many cases where a pseudowire flow label makes sense. Any | |||
| service such as a VPN which carries IP traffic within a pseudowire | service such as a VPN which carries IP traffic within a pseudowire | |||
| can make use of a pseudowire flow label. | can make use of a pseudowire flow label. | |||
| Any pseudowire carried over MPLS which makes use of the pseudowire | Any pseudowire carried over MPLS which makes use of the pseudowire | |||
| control word and does not carry a flow label is in effect a single | control word and does not carry a flow label is in effect a single | |||
| microflow (in [RFC2475] terms). | microflow (in [RFC2475] terms) and may result in the types of | |||
| problems described in Section 2.4.2. | ||||
| 2.4.4. MPLS Entropy Label | 2.4.4. MPLS Entropy Label | |||
| The MPLS entropy label simplifies flow group identification [RFC6790] | The MPLS entropy label simplifies flow group identification [RFC6790] | |||
| in the network core. Prior to the MPLS entropy label core LSR needed | at midpoint LSR. Prior to the MPLS entropy label midpoint LSR needed | |||
| to inspect the entire label stack and often the IP headers to provide | to inspect the entire label stack and often the IP headers to provide | |||
| an adequate distribution of traffic when using multipath techniques | an adequate distribution of traffic when using multipath techniques | |||
| (see Section 2.4.5). With the use of MPLS entropy label, a hash can | (see Section 2.4.5). With the use of MPLS entropy label, a hash can | |||
| be performed closer to network edges, placed in the label stack, and | be performed closer to network edges, placed in the label stack, and | |||
| used within the network core. | used by midpoint LSR without fully reinspecting the label stack and | |||
| inspecting the payload. | ||||
| The MPLS entropy label is capable of avoiding full label stack and | The MPLS entropy label is capable of avoiding full label stack and | |||
| payload inspection within the core where performance levels are most | payload inspection within the core where performance levels are most | |||
| difficult to achieve (see Section 2.3). The label stack inspection | difficult to achieve (see Section 2.3). The label stack inspection | |||
| can be terminated as soon as the first entropy label is encountered, | can be terminated as soon as the first entropy label is encountered, | |||
| which is generally after a small number of labels are inspected. | which is generally after a small number of labels are inspected. | |||
| In order to provide these benefits in the core, LSR closer to the | In order to provide these benefits in the core, LSR closer to the | |||
| edge must be capable of adding an entropy label. This support may | edge must be capable of adding an entropy label. This support may | |||
| not be required in the access tier, the tier closest to the customer, | not be required in the access tier, the tier closest to the customer, | |||
| but is likely to be required in the edge or the border to the network | but is likely to be required in the edge or the border to the network | |||
| core. LSR peering with external networks will also need to be able | core. LSR peering with external networks will also need to be able | |||
| to add an entropy label. | to add an entropy label on incoming traffic. | |||
| 2.4.5. Fields Used for Multipath | 2.4.5. Fields Used for Multipath Load Balance | |||
| The most common multipath techniques are based on a hash over a set | The most common multipath techniques are based on a hash over a set | |||
| of fields. Regardless of whether a hash is used or some other method | of fields. Regardless of whether a hash is used or some other method | |||
| is used, the there is a limited set of fields which can safely be | is used, the there is a limited set of fields which can safely be | |||
| used for multipath. | used for multipath. | |||
| 2.4.5.1. MPLS Fields in Multipath | 2.4.5.1. MPLS Fields in Multipath | |||
| If the "outer" or "first" layer of encapsulation is MPLS, then label | If the "outer" or "first" layer of encapsulation is MPLS, then label | |||
| stack entries are used in the hash. Within a finite amount of time | stack entries are used in the hash. Within a finite amount of time | |||
| (and for small packets arriving at high speed that time can quite | (and for small packets arriving at high speed that time can be quite | |||
| limited) only a finite number of label entries can be inspected. | limited) only a finite number of label entries can be inspected. | |||
| Pipelined or parallel architectures improve this, but the limit is | Pipelined or parallel architectures improve this, but the limit is | |||
| still finite. | still finite. | |||
| The following guidelines are provided for use of MPLS fields in | The following guidelines are provided for use of MPLS fields in | |||
| multipath load balancing. | multipath load balancing. | |||
| 1. Only the 20 bit label field SHOULD be used. The TTL field SHOULD | 1. Only the 20 bit label field SHOULD be used. The TTL field SHOULD | |||
| NOT be used. The S bit MUST NOT be used. The TC field (formerly | NOT be used. The S bit MUST NOT be used. The TC field (formerly | |||
| EXP) MUST NOT be used. See below this list for reasons. | EXP) MUST NOT be used. See text following this list for reasons. | |||
| 2. If an ELI label is found, then if the LSR supports entropy label, | 2. If an ELI label is found, then if the LSR supports entropy label, | |||
| the EL label field in the next label entry (the EL) SHOULD be | the EL label field in the next label entry (the EL) SHOULD be | |||
| used and label entries below that label SHOULD NOT be used and | used and label entries below that label SHOULD NOT be used and | |||
| the MPLS payload SHOULD NOT be used. See below this list for | the MPLS payload SHOULD NOT be used. See below this list for | |||
| reasons. | reasons. | |||
| 3. Reserved labels (label values 0-15) MUST NOT be used. In | 3. Special purpose labels (label values 0-15) MUST NOT be used. | |||
| particular, GAL and RA MUST NOT be used so that OAM traffic | Extended special purpose labels (any label following label 15) | |||
| follows the same path as payload packets with the same label | MUST NOT be used. In particular, GAL and RA MUST NOT be used so | |||
| stack. | that OAM traffic follows the same path as payload packets with | |||
| the same label stack. | ||||
| 4. The most entropy is generally found in the label stack entries | 4. The most entropy is generally found in the label stack entries | |||
| near the bottom of the label stack (innermost label, closest to | near the bottom of the label stack (innermost label, closest to | |||
| S=1 bit). If the entire label stack cannot be used (or entire | S=1 bit). If the entire label stack cannot be used (or entire | |||
| stack up to an EL), then it is better to use as many labels as | stack up to an EL), then it is better to use as many labels as | |||
| possible closest to the bottom of stack. | possible closest to the bottom of stack. | |||
| 5. If no ELI is encountered, and the first nibble of payload | 5. If no ELI is encountered, and the first nibble of payload | |||
| contains a 4 (IPv4) or 6 (IPv6), an implementation SHOULD support | contains a 4 (IPv4) or 6 (IPv6), an implementation SHOULD support | |||
| the ability to interpret the payload as IPv4 or IPv6 and extract | the ability to interpret the payload as IPv4 or IPv6 and extract | |||
| skipping to change at page 24, line 34 ¶ | skipping to change at page 25, line 47 ¶ | |||
| version field is equal to 4 (an IPv4 packet) that the IP protocol | version field is equal to 4 (an IPv4 packet) that the IP protocol | |||
| will either be TCP (IP protocol 6) or UDP (IP protocol 17) and | will either be TCP (IP protocol 6) or UDP (IP protocol 17) and | |||
| blindly fetch the data at the offset where the TCP or UDP ports | blindly fetch the data at the offset where the TCP or UDP ports | |||
| would be found. With IPv6, TCP and UDP port numbers are not at | would be found. With IPv6, TCP and UDP port numbers are not at | |||
| fixed offsets. With IPv4 packets carrying IP options, TCP and | fixed offsets. With IPv4 packets carrying IP options, TCP and | |||
| UDP port numbers are not at fixed offsets. | UDP port numbers are not at fixed offsets. | |||
| 4. The IPv6 header flow field SHOULD be used. This is the explicit | 4. The IPv6 header flow field SHOULD be used. This is the explicit | |||
| purpose of the IPv6 flow field, however observed flow fields | purpose of the IPv6 flow field, however observed flow fields | |||
| rarely contains a non-zero value. Some uses of the flow field | rarely contains a non-zero value. Some uses of the flow field | |||
| have been defined such as [RFC6438]. In the absense of MPLS | have been defined such as [RFC6438]. In the absence of MPLS | |||
| encapsulation, the IPv6 flow field can serve a role equivalent to | encapsulation, the IPv6 flow field can serve a role equivalent to | |||
| entropy label. | entropy label. | |||
| 5. Support other protocols that share a common Layer-4 header such | 5. Support for other protocols that share a common Layer-4 header | |||
| as RTP, UDP-lite, SCTP and DCCP SHOULD be provided, particularly | such as RTP, UDP-lite, SCTP and DCCP SHOULD be provided, | |||
| for edge or access equipment where additional entropy may be | particularly for edge or access equipment where additional | |||
| needed. Equipment SHOULD also use RTP, UDP-lite, SCTP and DCCP | entropy may be needed. Equipment SHOULD also use RTP, UDP-lite, | |||
| headers when creating an entropy label. | SCTP and DCCP headers when creating an entropy label. | |||
| 6. The following IP header fields should not or must not be used: | 6. The following IP header fields should not or must not be used: | |||
| A. Similar to avoiding TC in MPLS, the IP DSCP, and ECN bits | A. Similar to avoiding TC in MPLS, the IP DSCP, and ECN bits | |||
| MUST NOT be used. | MUST NOT be used. | |||
| B. The IPv4 TTL or IPv6 Hop Count SHOULD NOT be used. | B. The IPv4 TTL or IPv6 Hop Count SHOULD NOT be used. | |||
| C. Note that the IP TOS field was deprecated ([RFC0791] was | C. Note that the IP TOS field was deprecated ([RFC0791] was | |||
| updated by [RFC2474]). No part of the IP DSCP field can be | updated by [RFC2474]). No part of the IP DSCP field can be | |||
| used (formerly IP PREC and IP TOS bits). | used (formerly IP PREC and IP TOS bits). | |||
| 7. Some IP encapsulations support tunneling, such as IP-in-IP, GRE, | 7. Some IP encapsulations support tunneling, such as IP-in-IP, GRE, | |||
| L2TPv3, and IPSEC. These provide a greater source of entropy | L2TPv3, and IPSEC. These provide a greater source of entropy | |||
| which some provider networks carrying large amounts of tunneled | which some provider networks carrying large amounts of tunneled | |||
| traffic may need. The use of tunneling header information is out | traffic may need. The use of tunneling header information is out | |||
| of scope for this document. | of scope for this document. | |||
| This document makes the following recommendations. These | This document makes the following recommendations. These | |||
| recommendations are not required to claim compliance to any existing | recommendations are not required to claim compliance to any existing | |||
| RFC therefore implementors are free to ignore them, but due to | RFC therefore implementers are free to ignore them, but due to | |||
| service provider requirements may be doing so at their own peril. | service provider requirements should consider the risk of doing so. | |||
| The use of IP addresses MUST be supported and TCP and UDP ports | The use of IP addresses MUST be supported and TCP and UDP ports | |||
| (conditional on the protocol field and properly located) MUST be | (conditional on the protocol field and properly located) MUST be | |||
| supported. The ability to disable use of UDP and TCP ports MUST be | supported. The ability to disable use of UDP and TCP ports MUST be | |||
| available. Though potentially very useful in some networks, it is | available. Though potentially very useful in some networks, it is | |||
| uncommon to support using payloads of tunneling protocols carried | uncommon to support using payloads of tunneling protocols carried | |||
| over IP. Though the use of tunneling protocol header information is | over IP. Though the use of tunneling protocol header information is | |||
| out of scope for this document, it is not discouraged. | out of scope for this document, it is not discouraged. | |||
| 2.4.5.3. Fields Used in Flow Label | 2.4.5.3. Fields Used in Flow Label | |||
| skipping to change at page 27, line 14 ¶ | skipping to change at page 28, line 32 ¶ | |||
| equipment from denial of service (DoS) attacks is sufficient, | equipment from denial of service (DoS) attacks is sufficient, | |||
| particularly for high speed interfaces. This problem is not specific | particularly for high speed interfaces. This problem is not specific | |||
| to MPLS, but is a topic that cannot be ignored when implementing or | to MPLS, but is a topic that cannot be ignored when implementing or | |||
| evaluating MPLS implementations. | evaluating MPLS implementations. | |||
| Two types of protections are often cited as primary means of | Two types of protections are often cited as primary means of | |||
| protecting against attacks of all kinds. | protecting against attacks of all kinds. | |||
| Isolated Control/Management Traffic | Isolated Control/Management Traffic | |||
| Control and Management traffic can be carried out-of-band (OOB), | Control and Management traffic can be carried out-of-band (OOB), | |||
| meaning not intermixed with payload. For MPLS use of G-ACh and | meaning not intermixed with payload. For MPLS, use of G-ACh and | |||
| GAL to carry control and management traffic provides a means of | GAL to carry control and management traffic provides a means of | |||
| isolation from potentially malicious payload. Used alone, the | isolation from potentially malicious payload. Used alone, the | |||
| compromise of a single node, including a small computer at a | compromise of a single node, including a small computer at a | |||
| network operations center, could compromise an entire network. | network operations center, could compromise an entire network. | |||
| Implementations which send all G-ACh/GAL traffic directly to a | Implementations which send all G-ACh/GAL traffic directly to a | |||
| routing engine CPU are subject to DoS attack as a result of such | routing engine CPU are subject to DoS attack as a result of such | |||
| a compromise. | a compromise. | |||
| Cryptographic Authentication | Cryptographic Authentication | |||
| Cryptographic authentication can very effectively prevent | Cryptographic authentication can very effectively prevent | |||
| skipping to change at page 27, line 47 ¶ | skipping to change at page 29, line 18 ¶ | |||
| additional measures can reduce the potential for a minor breach to be | additional measures can reduce the potential for a minor breach to be | |||
| leveraged to a full network attack. | leveraged to a full network attack. | |||
| Some of the additional protections are supported by hardware packet | Some of the additional protections are supported by hardware packet | |||
| filtering. | filtering. | |||
| GTSM | GTSM | |||
| [RFC5082] defines a mechanism that uses the IPv4 TTL or IPv6 Hop | [RFC5082] defines a mechanism that uses the IPv4 TTL or IPv6 Hop | |||
| Limit fields to insure control traffic that can only originate | Limit fields to insure control traffic that can only originate | |||
| from an immediate neighbor is not forged and originating from a | from an immediate neighbor is not forged and originating from a | |||
| distant source. GTSM can be applies to many control protocols | distant source. GTSM can be applied to many control protocols | |||
| which are routable, for example LDP [RFC6720]. | which are routable, for example LDP [RFC6720]. | |||
| IP Filtering | IP Filtering | |||
| At the very minimum, packet filtering plus classification and use | At the very minimum, packet filtering plus classification and use | |||
| of multiple queues supporting rate limiting is needed for traffic | of multiple queues supporting rate limiting is needed for traffic | |||
| that could potentially be sent to a general purpose CPU used as a | that could potentially be sent to a general purpose CPU used as a | |||
| routing engine. The first level of filtering only allows | routing engine. The first level of filtering only allows | |||
| connections to be initiated from specific IP prefixes to specific | connections to be initiated from specific IP prefixes to specific | |||
| destination ports and then preferably passes traffic directly to | destination ports and then preferably passes traffic directly to | |||
| a cryptographic engine and/or rate limits. The second level of | a cryptographic engine and/or rate limits. The second level of | |||
| skipping to change at page 28, line 38 ¶ | skipping to change at page 30, line 5 ¶ | |||
| number of parallel cryptographic engines can provide the processing | number of parallel cryptographic engines can provide the processing | |||
| capacity to handle a large scale DoS or distributed DoS (DDoS) | capacity to handle a large scale DoS or distributed DoS (DDoS) | |||
| attack. For many forwarding chips this much processing power | attack. For many forwarding chips this much processing power | |||
| requires significant chip real estate and power, and therefore | requires significant chip real estate and power, and therefore | |||
| reduces system space and power density. For this reason, | reduces system space and power density. For this reason, | |||
| cryptographic authentication is not considered a viable first line of | cryptographic authentication is not considered a viable first line of | |||
| defense. | defense. | |||
| For some networks the first line of defense is some means of | For some networks the first line of defense is some means of | |||
| supporting OOB control and management traffic. In the past this OOB | supporting OOB control and management traffic. In the past this OOB | |||
| channel migh make use of overhead bits in SONET or OTN or a dedicated | channel might make use of overhead bits in SONET or OTN or a | |||
| DWDM wavelength. G-ACh and GAL provide an alternative OOB mechanism | dedicated DWDM wavelength. G-ACh and GAL provide an alternative OOB | |||
| which is independent of underlying layers. In other networks, | mechanism which is independent of underlying layers. In other | |||
| including most IP/MPLS networks, perimeter filtering serves a similar | networks, including most IP/MPLS networks, perimeter filtering serves | |||
| purpose, though less effective without extreme vigilance. | a similar purpose, though less effective without extreme vigilance. | |||
| A second line of defense is filtering, including GTSM. For protocols | A second line of defense is filtering, including GTSM. For protocols | |||
| such as EBGP, GTSM and other filtering is often the first line of | such as EBGP, GTSM and other filtering is often the first line of | |||
| defense. Cryptographic authentication is usually the last line of | defense. Cryptographic authentication is usually the last line of | |||
| defense and insufficient by itself to mitigate DoS or DDoS attacks. | defense and insufficient by itself to mitigate DoS or DDoS attacks. | |||
| 2.6.2. MPLS OAM | 2.6.2. MPLS OAM | |||
| [RFC4377] defines requirements for MPLS OAM that predate MPLS-TP. | [RFC4377] defines requirements for MPLS OAM that predate MPLS-TP. | |||
| [RFC4379] defines what is commonly referred to as LSP Ping and LSP | [RFC4379] defines what is commonly referred to as LSP Ping and LSP | |||
| skipping to change at page 29, line 25 ¶ | skipping to change at page 30, line 41 ¶ | |||
| [RFC5880] defines Bidirectional Forwarding Detection (BFD), a | [RFC5880] defines Bidirectional Forwarding Detection (BFD), a | |||
| protocol intended to detect faults in the bidirectional path between | protocol intended to detect faults in the bidirectional path between | |||
| two forwarding engines. [RFC5884] and [RFC5885] define BFD for MPLS. | two forwarding engines. [RFC5884] and [RFC5885] define BFD for MPLS. | |||
| BFD can provide failure detection on any kind of path between | BFD can provide failure detection on any kind of path between | |||
| systems, including direct physical links, virtual circuits, tunnels, | systems, including direct physical links, virtual circuits, tunnels, | |||
| MPLS Label Switched Paths (LSPs), multihop routed paths, and | MPLS Label Switched Paths (LSPs), multihop routed paths, and | |||
| unidirectional links as long as there is some return path. | unidirectional links as long as there is some return path. | |||
| The processing requirements for BFD are less than for LSP Ping, | The processing requirements for BFD are less than for LSP Ping, | |||
| making BFD somewhat better suited for relatively high rate proactive | making BFD somewhat better suited for relatively high rate proactive | |||
| monitoring. BFD does not verify that the data plane against the | monitoring. BFD does not verify that the data plane matches the | |||
| control plane, where LSP Ping does. LSP Ping somewhat better suited | control plane, where LSP Ping does. LSP Ping is somewhat better | |||
| for on-demand monitoring including relatively low rate periodic | suited for on-demand monitoring including relatively low rate | |||
| verification of data plane and as a diagnostic tool. | periodic verification of data plane and as a diagnostic tool. | |||
| Hardware assistance is often provided for BFD response where BFD | Hardware assistance is often provided for BFD response where BFD | |||
| setup or parameter change is not involved and may be necessary for | setup or parameter change is not involved and may be necessary for | |||
| relatively high rate proactive monitoring. If both BFD and LSP Ping | relatively high rate proactive monitoring. If both BFD and LSP Ping | |||
| are recognized in filtering prior to passing traffic to a general | are recognized in filtering prior to passing traffic to a general | |||
| purpose CPU, appropriate DoS protection can be applied (see | purpose CPU, appropriate DoS protection can be applied (see | |||
| Section 2.6.1). Failure to recognize BFD and LSP Ping and at least | Section 2.6.1). Failure to recognize BFD and LSP Ping and at least | |||
| rate limit creates the potential for misconfiguration to cause | rate limit creates the potential for misconfiguration to cause | |||
| outages rather than cause errors in the misconfigured OAM. | outages rather than cause errors in the misconfigured OAM. | |||
| skipping to change at page 31, line 43 ¶ | skipping to change at page 33, line 11 ¶ | |||
| OAM solution that is based on Ethernet encodings and mechanisms. | OAM solution that is based on Ethernet encodings and mechanisms. | |||
| [RFC6310] and [I-D.ietf-pwe3-mpls-eth-oam-iwk] specifies the mapping | [RFC6310] and [I-D.ietf-pwe3-mpls-eth-oam-iwk] specifies the mapping | |||
| of defect states between many types of hardware Attachment Circuits | of defect states between many types of hardware Attachment Circuits | |||
| (ACs) and associated Pseudowires (PWs). This functionality SHOULD be | (ACs) and associated Pseudowires (PWs). This functionality SHOULD be | |||
| supported in forwarding hardware. | supported in forwarding hardware. | |||
| It is beneficial if an MPLS OAM implementation can interwork with the | It is beneficial if an MPLS OAM implementation can interwork with the | |||
| underlying server layer and provide a means to interwork with a | underlying server layer and provide a means to interwork with a | |||
| client layer. For example, [RFC6427] specifies an inter-layer | client layer. For example, [RFC6427] specifies an inter-layer | |||
| propogation of AIS and LDI from MPLS server layer to client MPLS | propagation of AIS and LDI from MPLS server layer to client MPLS | |||
| layers. Where the server layer is a Layer-2, such as Ethernet, PPP | layers. Where the server layer is a Layer-2, such as Ethernet, PPP | |||
| over SONET/SDH, or GFP over OTN, interwork among layers is also | over SONET/SDH, or GFP over OTN, interwork among layers is also | |||
| beneficial. For high speed interfaces, supporting this interworking | beneficial. For high speed interfaces, supporting this interworking | |||
| in forwarding hardware helps insure that protection based on this | in forwarding hardware helps insure that protection based on this | |||
| interworking can meet recovery time requirements even for faults | interworking can meet recovery time requirements even for faults | |||
| affecting a large number of LSP. | affecting a large number of LSP. | |||
| 2.6.6. Extent of OAM Support by Hardware | 2.6.6. Extent of OAM Support by Hardware | |||
| Where certain requirements must be met, such as relatively high CC-CV | Where certain requirements must be met, such as relatively high CC-CV | |||
| skipping to change at page 32, line 41 ¶ | skipping to change at page 34, line 8 ¶ | |||
| origination of RDI triggered by CC-CV, response to RDI, and PSC | origination of RDI triggered by CC-CV, response to RDI, and PSC | |||
| functionality may be supported by hardware, but expansion to a large | functionality may be supported by hardware, but expansion to a large | |||
| number of client LSP and transmission of AIS or RDI to the client LSP | number of client LSP and transmission of AIS or RDI to the client LSP | |||
| may occur in a general purpose processor. Some forwarding hardware | may occur in a general purpose processor. Some forwarding hardware | |||
| supports one or more on-chip general purpose processors which may be | supports one or more on-chip general purpose processors which may be | |||
| well suited for such a role. | well suited for such a role. | |||
| The customer (system supplier or provider) should not dictate design, | The customer (system supplier or provider) should not dictate design, | |||
| but should independently validate target functionality and | but should independently validate target functionality and | |||
| performance. However, it is not uncommon for service providers and | performance. However, it is not uncommon for service providers and | |||
| system implementors to insist on reviewing design details (under NDA) | system implementers to insist on reviewing design details (under NDA) | |||
| due to past experiences with suppliers and to reject suppliers who | due to past experiences with suppliers and to reject suppliers who | |||
| are unwilling to provide details. | are unwilling to provide details. | |||
| 2.7. Number and Size of Flows | 2.7. Number and Size of Flows | |||
| Service provider networks may carry up to hundreds of millions of | Service provider networks may carry up to hundreds of millions of | |||
| flows on 10 Gb/s links. Most flows are very short lived, many under | flows on 10 Gb/s links. Most flows are very short lived, many under | |||
| a second. A subset of the flows are low capacity and somewhat long | a second. A subset of the flows are low capacity and somewhat long | |||
| lived. When Internet traffic dominates capacity a very small subset | lived. When Internet traffic dominates capacity a very small subset | |||
| of flows are high capacity and/or very long lived. | of flows are high capacity and/or very long lived. | |||
| skipping to change at page 33, line 45 ¶ | skipping to change at page 35, line 16 ¶ | |||
| Q#1 Can the implementation forward packets with an arbitrarily | Q#1 Can the implementation forward packets with an arbitrarily | |||
| large stack depth? What limitations exist, and under what | large stack depth? What limitations exist, and under what | |||
| circumstances do further limitations come into play (such as | circumstances do further limitations come into play (such as | |||
| high packet rate or specific features enabled or specific types | high packet rate or specific features enabled or specific types | |||
| of packet processing)? See Section 2.1. | of packet processing)? See Section 2.1. | |||
| Q#2 Is the entire set of basic MPLS functionality described in | Q#2 Is the entire set of basic MPLS functionality described in | |||
| Section 2.1 supported? | Section 2.1 supported? | |||
| Q#3 Are the set of MPLS reserved labels handled correctly and with | Q#3 Are the set of MPLS special purpose labels handled correctly | |||
| adequate performance? See Section 2.1.1. | and with adequate performance? Are extended special purpose | |||
| labels handled correctly and with adequate performance? See | ||||
| Section 2.1.1. | ||||
| Q#4 Are mappings of label value and TC to PHB handled correctly, | Q#4 Are mappings of label value and TC to PHB handled correctly, | |||
| including RFC3270 L-LSP mappings and RFC4124 CT mappings to | including RFC3270 L-LSP mappings and RFC4124 CT mappings to | |||
| PHB? See Section 2.1.2. | PHB? See Section 2.1.2. | |||
| Q#5 Is time synchronization adequately supported in forwarding | Q#5 Is time synchronization adequately supported in forwarding | |||
| hardware? | hardware? | |||
| A. Are both PTP and NTP formats supported? | A. Are both PTP and NTP formats supported? | |||
| skipping to change at page 36, line 18 ¶ | skipping to change at page 37, line 32 ¶ | |||
| Q#18 Is packet rate performance decreased beyond some number of | Q#18 Is packet rate performance decreased beyond some number of | |||
| labels? | labels? | |||
| Q#19 Can the IP header and payload information below the MPLS stack | Q#19 Can the IP header and payload information below the MPLS stack | |||
| be used in the hash? If so, which IP fields, payload types and | be used in the hash? If so, which IP fields, payload types and | |||
| payload fields are supported? | payload fields are supported? | |||
| Q#20 At what maximum MPLS label stack depth can Bottom of Stack and | Q#20 At what maximum MPLS label stack depth can Bottom of Stack and | |||
| an IP header appear without impacting packet rate performance? | an IP header appear without impacting packet rate performance? | |||
| Q#21 Are reserved labels excluded from the label stack hash? See | Q#21 Are special purpose labels excluded from the label stack hash? | |||
| Section 2.4.5.1. | Are extended purpose labels excluded from the label stack hash? | |||
| See Section 2.4.5.1. | ||||
| Q#22 How is multipath performance affected by very large flows or an | Q#22 How is multipath performance affected by very large flows or an | |||
| extremely large number of flows, or by very short lived flows? | extremely large number of flows, or by very short lived flows? | |||
| See Section 2.7. | See Section 2.7. | |||
| 3.4. Pseudowire Capabilities and Performance | 3.4. Pseudowire Capabilities and Performance | |||
| Q#23 Is the pseudowire control word supported? | Q#23 Is the pseudowire control word supported? | |||
| Q#24 What is the maximum rate of pseudowire encapsulation and | Q#24 What is the maximum rate of pseudowire encapsulation and | |||
| skipping to change at page 37, line 15 ¶ | skipping to change at page 38, line 31 ¶ | |||
| Q#32 Can an entropy label be detected in the label stack, used in | Q#32 Can an entropy label be detected in the label stack, used in | |||
| the hash, and properly terminate the search for further | the hash, and properly terminate the search for further | |||
| information to hash on? | information to hash on? | |||
| Q#33 Does using an entropy label have any negative impact on | Q#33 Does using an entropy label have any negative impact on | |||
| performance? It should have no impact or a positive impact. | performance? It should have no impact or a positive impact. | |||
| 3.6. DoS Protection | 3.6. DoS Protection | |||
| Q#34 For each control and management plane protocol in use, what | Q#34 For each control and management plane protocol in use, what | |||
| measures are taken to provide DoS attack hardenning? | measures are taken to provide DoS attack hardening? | |||
| Q#35 Have DoS attack tests been performed? | Q#35 Have DoS attack tests been performed? | |||
| Q#36 Can compromise of an internal computer on a management subnet | Q#36 Can compromise of an internal computer on a management subnet | |||
| be leveraged for any form of attack including DoS attack? | be leveraged for any form of attack including DoS attack? | |||
| 3.7. OAM Capabilities and Performance | 3.7. OAM Capabilities and Performance | |||
| Q#37 What OAM proactive and on-demand mechanisms are supported? | Q#37 What OAM proactive and on-demand mechanisms are supported? | |||
| skipping to change at page 40, line 10 ¶ | skipping to change at page 41, line 30 ¶ | |||
| headers or IP payload fields below the label stack rather than | headers or IP payload fields below the label stack rather than | |||
| in the label stack. Test with the set of IP headers or IP | in the label stack. Test with the set of IP headers or IP | |||
| payload fields considered relevant to the deployment or to the | payload fields considered relevant to the deployment or to the | |||
| target market. | target market. | |||
| T#10 Determine whether traffic that contains a pseudowire control | T#10 Determine whether traffic that contains a pseudowire control | |||
| word is interpreted as IP traffic. Information in the payload | word is interpreted as IP traffic. Information in the payload | |||
| MUST NOT be used in the load balancing if the first nibble of | MUST NOT be used in the load balancing if the first nibble of | |||
| the packet is not 4 or 6 (IPv4 or IPv6). | the packet is not 4 or 6 (IPv4 or IPv6). | |||
| T#11 Determine whether reserved labels are excluded from the label | T#11 Determine whether special purpose labels and extended special | |||
| stack hash. They MUST be excluded. | purpose labels are excluded from the label stack hash. They | |||
| MUST be excluded. | ||||
| T#12 Perform testing in the presence of combinations of: | T#12 Perform testing in the presence of combinations of: | |||
| A. Very large microflows. | A. Very large microflows. | |||
| B. Relatively short lived high capacity flows. | B. Relatively short lived high capacity flows. | |||
| C. Extremely large numbers of flows. | C. Extremely large numbers of flows. | |||
| D. Very short lived small flows. | D. Very short lived small flows. | |||
| skipping to change at page 42, line 48 ¶ | skipping to change at page 44, line 21 ¶ | |||
| Paul Doolan provided a brief review resulting in a number of | Paul Doolan provided a brief review resulting in a number of | |||
| clarifications, most notably regarding on-chip vs. system buffering, | clarifications, most notably regarding on-chip vs. system buffering, | |||
| 100 Gb/s link speed assumptions in the 150 Mpps figure, and handling | 100 Gb/s link speed assumptions in the 150 Mpps figure, and handling | |||
| of large microflows. Pablo Frank reminded us of the sawtooth effect | of large microflows. Pablo Frank reminded us of the sawtooth effect | |||
| in PPS vs. packet size graphs, prompting the addition of a few | in PPS vs. packet size graphs, prompting the addition of a few | |||
| paragraphs on this. Comments from Lou Berger at IETF-85 prompted the | paragraphs on this. Comments from Lou Berger at IETF-85 prompted the | |||
| addition of Section 2.7. | addition of Section 2.7. | |||
| Valuable comments were received on the BMWG mailing list. Jay | Valuable comments were received on the BMWG mailing list. Jay | |||
| Karthik pointed out testing methodology hints that after discussion | Karthik pointed out testing methodology hints that after discussion | |||
| were deemed out of scope and were removed. | were deemed out of scope and were removed but may benefit later work | |||
| in BMWG. | ||||
| Nabil Bitar pointed out the need to cover QoS (Differentiated | Nabil Bitar pointed out the need to cover QoS (Differentiated | |||
| Services), MPLS multicast (P2MP and MP2MP), and MPLS-TP OAM. Nabil | Services), MPLS multicast (P2MP and MP2MP), and MPLS-TP OAM. Nabil | |||
| also provided a number of clarifications to the questions and tests | also provided a number of clarifications to the questions and tests | |||
| in Section 3 and Section 4. | in Section 3 and Section 4. | |||
| Gregory Mirsky and Thomas Beckhaus provided useful comments during | Gregory Mirsky and Thomas Beckhaus provided useful comments during | |||
| the MPLS RT review. | the MPLS RT review. | |||
| Tal Mizrahi provided comments that prompted clarifications regarding | Tal Mizrahi provided comments that prompted clarifications regarding | |||
| skipping to change at page 43, line 29 ¶ | skipping to change at page 45, line 4 ¶ | |||
| This document reviews forwarding behavior specified elsewhere and | This document reviews forwarding behavior specified elsewhere and | |||
| points out compliance and performance requirements. As such it | points out compliance and performance requirements. As such it | |||
| introduces no new security requirements or concerns. | introduces no new security requirements or concerns. | |||
| Knowledge of potential performance shortcomings may serve to help new | Knowledge of potential performance shortcomings may serve to help new | |||
| implementations avoid pitfalls. It is unlikely that such knowledge | implementations avoid pitfalls. It is unlikely that such knowledge | |||
| could be the basis of new denial of service as these pitfalls are | could be the basis of new denial of service as these pitfalls are | |||
| already widely known in the service provider community and among | already widely known in the service provider community and among | |||
| leading equipment suppliers. In practice extreme data and packet | leading equipment suppliers. In practice extreme data and packet | |||
| rate are needed to affect existing equipment and networks that may be | rate are needed to affect existing equipment and to affect networks | |||
| still vulnerable due to failure to implement adequate protection and | that may be still vulnerable due to failure to implement adequate | |||
| make this type of denial of service unlikely and make undetectable | protection. The extreme data and packet rates make this type of | |||
| denial of service of this type impossible. | denial of service unlikely and make undetectable denial of service of | |||
| this type impossible. | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
| Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
| skipping to change at page 45, line 7 ¶ | skipping to change at page 46, line 30 ¶ | |||
| "Observations and Dynamics of a Congestion Control | "Observations and Dynamics of a Congestion Control | |||
| Algorithm: The Effects of Two-Way Traffic", Proc. ACM | Algorithm: The Effects of Two-Way Traffic", Proc. ACM | |||
| SIGCOMM, ACM Computer Communications Review (CCR) Vol 21, | SIGCOMM, ACM Computer Communications Review (CCR) Vol 21, | |||
| No 4, 1991, pp.133-147., 1991. | No 4, 1991, pp.133-147., 1991. | |||
| [ATM-EPD-and-PPD] | [ATM-EPD-and-PPD] | |||
| "Dynamics of TCP Traffic over ATM Networks", IEEE Journal | "Dynamics of TCP Traffic over ATM Networks", IEEE Journal | |||
| of Special Areas of Communication Vol 13 No 4, May 1995, | of Special Areas of Communication Vol 13 No 4, May 1995, | |||
| pp. 633-641., May 1995. | pp. 633-641., May 1995. | |||
| [I-D.ietf-mpls-special-purpose-labels] | ||||
| Kompella, K., Andersson, L., and A. Farrel, "Allocating | ||||
| and Retiring Special Purpose MPLS Labels", | ||||
| draft-ietf-mpls-special-purpose-labels-03 (work in | ||||
| progress), July 2013. | ||||
| [I-D.ietf-pwe3-mpls-eth-oam-iwk] | [I-D.ietf-pwe3-mpls-eth-oam-iwk] | |||
| Mohan, D., Bitar, N., and A. Sajassi, "MPLS and Ethernet | Mohan, D., Bitar, N., Sajassi, A., DeLord, S., Niger, P., | |||
| OAM Interworking", draft-ietf-pwe3-mpls-eth-oam-iwk-07 | and R. Qiu, "MPLS and Ethernet OAM Interworking", | |||
| (work in progress), January 2013. | draft-ietf-pwe3-mpls-eth-oam-iwk-08 (work in progress), | |||
| July 2013. | ||||
| [I-D.ietf-pwe3-vccv-impl-survey-results] | ||||
| Malis, A., "The Pseudowire (PW) & Virtual Circuit | ||||
| Connectivity Verification (VCCV) Implementation Survey | ||||
| Results", draft-ietf-pwe3-vccv-impl-survey-results-03 | ||||
| (work in progress), October 2013. | ||||
| [I-D.ietf-tictoc-1588overmpls] | [I-D.ietf-tictoc-1588overmpls] | |||
| Davari, S., Oren, A., Bhatia, M., Roberts, P., and L. | Davari, S., Oren, A., Bhatia, M., Roberts, P., and L. | |||
| Montini, "Transporting Timing messages over MPLS | Montini, "Transporting Timing messages over MPLS | |||
| Networks", draft-ietf-tictoc-1588overmpls-04 (work in | Networks", draft-ietf-tictoc-1588overmpls-05 (work in | |||
| progress), February 2013. | progress), June 2013. | |||
| [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
| September 1981. | September 1981. | |||
| [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | |||
| "Definition of the Differentiated Services Field (DS | "Definition of the Differentiated Services Field (DS | |||
| Field) in the IPv4 and IPv6 Headers", RFC 2474, | Field) in the IPv4 and IPv6 Headers", RFC 2474, | |||
| December 1998. | December 1998. | |||
| [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | |||
| End of changes. 66 change blocks. | ||||
| 181 lines changed or deleted | 259 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||