--- 1/draft-ietf-idr-flowspec-l2vpn-08.txt 2019-01-03 02:13:08.446635141 -0800 +++ 2/draft-ietf-idr-flowspec-l2vpn-09.txt 2019-01-03 02:13:08.474635811 -0800 @@ -1,32 +1,32 @@ Network Working Group W. Hao -Internet-Draft Q. Liang +Internet-Draft D. Eastlake Intended status: Standards Track Huawei -Expires: January 4, 2019 J. Uttaro +Expires: July 7, 2019 J. Uttaro AT&T S. Litkowski Orange Business Service S. Zhuang Huawei - July 03, 2018 + January 03, 2019 - Dissemination of Flow Specification Rules for L2 VPN - draft-ietf-idr-flowspec-l2vpn-08 + BGP Dissemination of L2VPN Flow Specification Rules + draft-ietf-idr-flowspec-l2vpn-09 Abstract - This document defines BGP Flow-Spec extension for Ethernet traffic - filtering in L2 VPN network. SAFI=134 in [RFC5575] is redefined for - dissemination traffic filtering information in an L2VPN environment. - A new subset of component types and extended community also are - defined. + This document defines a BGP flow-spec extension to disseminate L2 VPN + Ethernet traffic filtering rules. SAFI=134 in [RFC5575] is redefined + for this purpose. A new subset of component types and extended + community also are defined. A new subset of component types and new + extended community also are defined. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. Status of This Memo This Internet-Draft is submitted in full conformance with the @@ -35,144 +35,152 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on January 4, 2019. + This Internet-Draft will expire on July 7, 2019. Copyright Notice - Copyright (c) 2018 IETF Trust and the persons identified as the + Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Layer 2 Flow Specification encoding in BGP . . . . . . . . . 3 3. Ethernet Flow Specification encoding in BGP . . . . . . . . . 4 3.1. Order of Traffic Filtering Rules . . . . . . . . . . . . 6 4. Ethernet Flow Specification Traffic Actions . . . . . . . . . 7 + 4.1. VLAN-action . . . . . . . . . . . . . . . . . . . . . . . 8 + 4.2. TPID-action . . . . . . . . . . . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 - 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 - 8.2. Informative References . . . . . . . . . . . . . . . . . 13 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 + 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 + 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 + 9.2. Informative References . . . . . . . . . . . . . . . . . 12 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 1. Introduction - BGP Flow-spec is an extension to BGP that allows for the - dissemination of traffic flow specification rules. It leverages the - BGP Control Plane to simplify the distribution of ACLs, new filter - rules can be injected to all BGP peers simultaneously without + BGP Flow-spec is an extension to BGP that supports the dissemination + of traffic flow specification rules. It leverages the BGP Control + Plane to simplify the distribution of ACLs. Using this extension new + filter rules can be injected to all BGP peers simultaneously without changing router configuration. The typical application of BGP Flow- spec is to automate the distribution of traffic filter lists to routers for DDOS mitigation, access control, etc. - [RFC5575] defines a new BGP Network Layer Reachability Information - (NLRI) format used to distribute traffic flow specification rules. - NLRI (AFI=1, SAFI=133) is for IPv4 unicast filtering. NLRI (AFI=1, - SAFI=134)is for BGP/MPLS VPN filtering. The Flow specification match - part only includes L3/L4 information like source/destination prefix, - protocol, ports, and etc, so traffic flows can only be selectively - filtered based on L3/L4 information. + [RFC5575] defines a new BGP Network Layer Reachability + Information(NLRI) format used to distribute traffic flow + specification rules. NLRI (AFI=1, SAFI=133) is for IPv4 unicast + filtering. NLRI (AFI=1, SAFI=134) is for BGP/MPLS VPN filtering. + The Flow specification match part only includes L3/L4 information + like source/destination prefix, protocol, ports, and etc., so traffic + flows can only be selectively filtered based on L3/L4 information. Layer 2 Virtual Private Networks (L2VPNs) have already been deployed in an increasing number of networks today. In L2VPN network, we also - have requirement to deploy BGP Flow-Spec to mitigate DDoS attack + have requirement to deploy BGP Flow-spec to mitigate DDoS attack traffic. Within L2VPN network, both IP and non-IP Ethernet traffic maybe exist. For IP traffic filtering, the Flow specification rules defined in [RFC5575] which include match criteria and actions can still be used, flow specification rules received via new NLRI format apply only to traffic that belongs to the VPN instance(s) in which it is imported. For non-IP Ethernet traffic filtering, Layer 2 related information like source/destination MAC and VLAN should be considered. But the flow specification match criteria defined in - [RFC5575] only include layer 3 and layer 4 IP information, layer 2 - Ethernet information haven't been included. + [RFC5575] only include layer 3 and layer 4 IP information, not layer + 2 Ethernet information. There are different kinds of L2VPN networks like EVPN [RFC7432], BGP VPLS [RFC4761], LDP VPLS [RFC4762] and border gateway protocol (BGP) auto discovery [RFC6074]. Because the flow-spec feature relies on - BGP protocol to distribute traffic filtering rules, so it can only be + BGP protocol to distribute traffic filtering rules, it can only be incrementally deployed in those L2VPN networks where BGP has already been used for auto discovery and/or signaling purposes such as BGP- - based VPLS [RFC4761], EVPN [RFC7432] and LDP-based VPLS [RFC4762] - with BGP auto-discovery [RFC6074]. + based VPLS [RFC4761], EVPN and LDP-based VPLS [RFC4762] [4762] with + BGP auto-discovery [RFC6074]. - This draft proposes a new subset of component types and extended - community to support L2VPN flow-spec application. The flow-spec - rules can be enforced on all border routers or on some interface sets - of the border routers. SAFI=134 in [RFC5575] is redefined for - dissemination traffic filtering information in an L2VPN environment. + This draft proposes a new subset of flow-spec component types and an + extended community to support L2VPN flow-spec application. The flow- + spec rules can be enforced on all border routers or on some interface + sets of the border routers. SAFI=134 in [RFC5575] is redefined for + dissemination of traffic filtering information in an L2VPN + environment. 2. Layer 2 Flow Specification encoding in BGP The [RFC5575] defines SAFI 133 and SAFI 134 for "dissemination of IPv4 flow specification rules" and "dissemination of VPNv4 flow specification rules" respectively. [I-D.ietf-idr-flow-spec-v6] redefines the [RFC5575] SAFIs in order to make them applicable to both IPv4 and IPv6 applications. This document will further redefine the SAFI 134 in order to make them applicable to L2VPN applications. The following changes are defined: "SAFI 134 for dissemination of L3VPN flow specification rules" to now be defined as "SAFI 134 for dissemination of VPN flow specification rules" + For SAFI 134 the indication to which address family it is referring + to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and + AFI=25 for L2VPN). Such modification is fully backwards compatible + with existing implementation and production deployments. For SAFI 134 the indication to which address family it is referring to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and AFI=25 for L2VPN). Such modification is fully backwards compatible with existing implementation and production deployments. 3. Ethernet Flow Specification encoding in BGP The NLRI format for this address family consists of a fixed-length Route Distinguisher field (8 bytes) followed by a flow specification, following the encoding defined in this document. The NLRI length - field shall include both the 8 bytes of the Route Distinguisher as - well as the subsequent flow specification. + field includes both the 8 bytes of the Route Distinguisher as well as + the subsequent flow specification. Flow specification rules received via this NLRI apply only to traffic - that belongs to the VPN instance(s) in which it is imported. Flow - rules are accepted by default, when received from remote PE routers. + that belongs to the VPN instance(s) into which it is imported. Flow + rules are accepted by default when received from remote PE routers. Besides the component types defined in [RFC5575] and - [I-D.ietf-idr-flow-spec-v6], this document proposes the following + [I-D.ietf-idr-flow-spec-v6], this document specifies the following additional component types for L2VPN Ethernet traffic filtering: Type 14 - Ethernet Type Encoding: Defines a list of {operation, value} pairs used to match two-octet field. Values are encoded as 2-byte quantities. Ethernet II framing - defines the two-octet Ethernet Type field in an Ethernet frame, - preceded by destination and source MAC addresses, that identifies an - upper layer protocol encapsulating the frame data. + defines the two-octet Ethernet Type (EtherType) field in an Ethernet + frame, preceded by destination and source MAC addresses, that + identifies an upper layer protocol encapsulating the frame data. Type 15 - Source MAC Encoding: Defines the source MAC Address to match. Type 16 - Destination MAC Encoding: Defines the destination MAC Address to match. @@ -171,92 +179,93 @@ Encoding: Defines the source MAC Address to match. Type 16 - Destination MAC Encoding: Defines the destination MAC Address to match. Type 17 - DSAP(Destination Service Access Point) in LLC - Encoding: - Defines a list of {operation, value} pairs used to match 1-octet DSAP - in the 802.2 LLC(Logical Link Control Header). Values are encoded as - 1-byte quantities. The operation field is encoded as 'Numeric - operator' defined in [RFC5575]. + Defines a list of {operation, value} pairs used to match the 1-octet + DSAP in the 802.2 LLC (Logical Link Control Header). Values are + encoded as 1-byte quantities. The operation field is encoded as a + 'Numeric operator' defined in [RFC5575]. Type 18 - SSAP(Source Service Access Point) in LLC Encoding: - Defines a list of {operation, value} pairs used to match 1-octet SSAP - in the 802.2 LLC. Values are encoded as 1-byte quantities. + + Defines a list of {operation, value} pairs used to match the 1-octet + SSAP in the 802.2 LLC. Values are encoded as 1-byte quantities. Type 19 - Control field in LLC Encoding: Defines a list of {operation, value} pairs used to match 1-octet control field in the 802.2 LLC. Values are encoded as 1-byte quantities. Type 20 - SNAP Encoding: - Defines a list of {operation, value} pairs used to match 5-octet - SNAP(Sub-Network Access Protocol) field. Values are encoded as - 5-byte quantities. + Defines a list of {operation, value} pairs used to match 5-octet SNAP + (Sub-Network Access Protocol) field. Values are encoded as 5-byte + quantities. Type 21 - VLAN ID Encoding: Defines a list of {operation, value} pairs used to match VLAN ID. Values are encoded as 2-byte quantities, where the four most significant bits are zero and the 12 least significant bits contain the VLAN value. - In virtual local-area network (VLAN) stacking case, the VLAN ID is - outer VLAN ID. + In the virtual local-area network (VLAN) stacking case, the VLAN ID + is the outer VLAN ID. Type 22 - VLAN COS Encoding: Defines a list of {operation, value} pairs used to match 3-bit VLAN - COS fields [802.1p]. Values are encoded using a single byte, where + COS fields [802.1Q]. Values are encoded using a single byte, where the five most significant bits are zero and the three least significant bits contain the VLAN COS value. - In virtual local-area network (VLAN) stacking case, the VLAN COS is - outer VLAN COS. + In the virtual local-area network (VLAN) stacking case, the VLAN COS + is outer VLAN COS. Type 23 - Inner VLAN ID Encoding: - Defines a list of {operation, value} pairs used to match inner VLAN - ID using for virtual local-area network (VLAN) stacking or Q in Q - case. Values are encoded as 2-byte quantities, where the four most + + Defines a list of {operation, value} pairs used to match the inner + VLAN ID using for virtual local-area network (VLAN) stacking or Q in + Q use. Values are encoded as 2-byte quantities, where the four most significant bits are zero and the 12 least significant bits contain the VLAN value. - In single VLAN case, the component type MUST not be used. + In single VLAN case, this component type MUST NOT be used. Type 24 - Inner VLAN COS Encoding: Defines a list of {operation, value} pairs used to match 3-bit inner - VLAN COS fields [802.1p] using for virtual local-area network (VLAN) - stacking or Q in Q case. Values are encoded using a single byte, + VLAN COS fields [802.1Q] using for virtual local-area network (VLAN) + stacking or Q in Q use. Values are encoded using a single byte, where the five most significant bits are zero and the three least significant bits contain the VLAN COS value. In single VLAN case, the component type MUST not be used. 3.1. Order of Traffic Filtering Rules The original definition for the order of traffic filtering rules can be reused with new consideration for the MAC Address offset. As long as the offsets are equal, the comparison is the same, retaining @@ -293,21 +302,21 @@ } } return EQUAL; } 4. Ethernet Flow Specification Traffic Actions The default action for a layer 2 traffic filtering flow specification is to accept traffic that matches that particular rule. The following extended community values per [RFC5575] can be used to - specify particular actions in L2VPN network: + specify particular actions in an L2 VPN network: +--------+--------------------+--------------------------+ | type | extended community | encoding | +--------+--------------------+--------------------------+ | 0x8006 | traffic-rate | 2-byte as#, 4-byte float | | 0x8007 | traffic-action | bitmask | | 0x8008 | redirect | 6-byte Route Target | | 0x8009 | traffic-marking | DSCP value | +--------+--------------------+--------------------------+ Redirect: The action should be redefined to allow the traffic to be @@ -318,32 +327,34 @@ the following BGP extended communities specifications for Ethernet flow to extend [RFC5575]: +--------+------------------------+--------------------------+ | type | extended community | encoding | +--------+------------------------+--------------------------+ | TBD1 | VLAN-action | bitmask | | TBD2 | TPID-action | bitmask | +--------+------------------------+--------------------------+ - VLAN-action: The VLAN-action extended community consists of 6 bytes - which include the fields of action Flags, two VLAN IDs and the - associating COS value. The action Flags fields are further divided - into two parts which correspond to the first action and the second - action respectively, bit 0 to bit 7 belong to the first action part - while bit 8 to bit 15 belong to the second part. The bits of PO, PU, +4.1. VLAN-action + + The VLAN-action extended community, as shown in the diagram below, + consists of 6 bytes that include t action Flags, two VLAN IDs, and + the associating COS value. The action Flags fields are further + divided into two parts which correspond to the first action and the + second action respectively, bit 0 to bit 7 give the first action + while bit 8 to bit 15 give the second action. The bits of PO, PU, SW, RI and RO in each part represent the action of Pop, Push, Swap, Rewrite inner VLAN and Rewrite outer VLAN respectively. Through this method, more complicated actions also can be represented in a single - VLAN-action extend community, such as SwapPop, PushSwap, etc. For - example, SwapPop action is the concatenation of two actions, the - first action is Swap and the second action is Pop. + VLAN-action extened community, such as SwapPop, PushSwap, etc. For + example, SwapPop action is the sequence of two actions, the first + action is Swap and the second action is Pop. 0 7 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |PO1|PU1|SW1|RI1|RO1|...|PO2|PU2|SW2|RI2|RO2|...| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | VLAN ID1 |COS1 |R1| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | VLAN ID2 |COS2 |R2| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ @@ -368,86 +379,75 @@ RI1 and RI2: Rewrite inner VLAN action. If the RI flag is one, it indicates the inner VLAN should be replaced by a new VLAN, the new VLAN is VLAN ID1, the associated COS is COS1. If the VLAN ID1 is 0, the action is to only modify the COS value of inner VLAN. RO1 and RO2: Rewrite outer VLAN action. If the RO flag is one, it indicates the outer VLAN should be replaced by a new VLAN, the new VLAN is VLAN ID2, the associated COS is COS2. If the VLAN ID2 is 0, the action is to only modify the COS value of outer VLAN. - R1 and R2: Reserved for future use. + R1 and R2: Reserved for future use. MUST be sent as zero and ignored + on receipt. Giving an example, if the action of PUSH Inner VLAN 10 with COS value 5 and Outer VLAN 20 with COS value 6 is needed, the format of the VLAN-action extended community is as follows: 0 7 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |0 |1 |0 |0 |0 |0 |0 |0 |0 |1 |0 |0 |0 |0 |0 |0 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 10 |1 |0 |1 |0 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 20 |1 |1 |0 |0 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - TPID-action: The TPID-action extended community consists of 6 bytes - which includes the fields of action Flags, TPID1 and TPID2. +4.2. TPID-action + + The TPID-action extended community consists of 6 bytes which includes + the fields of action Flags, TPID1 and TPID2. 0 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |TI|TO| Resv | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TP ID1 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TP ID2 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ + TI: Mapping inner TP ID action. If the TI flag is one, it indicates the inner TP ID should be replaced by a new TP ID, the new TP ID is TP ID1. TO: Mapping outer TP ID action. If the TO flag is one, it indicates the outer TP ID should be replaced by a new TP ID, the new TP ID is TP ID2. - Resv: Reserved for future use. + Resv: Reserved for future use. MUST be sent as zero and ignored on + receipt. 5. IANA Considerations - IANA is requested to rename currently defined SAFI 134 per [RFC5575] - to read: + IANA is requested to change the description for SAFI 134 [RFC5575] + [RFC5575] to read as follows more general description and to change + the reference for it to [this document]: 134 VPN dissemination of flow specification rules - IANA is requested to create and maintain a new registry for "Flow - spec L2VPN Component Types". For completeness, the types defined in - [RFC5575] and [I-D.ietf-idr-flow-spec-v6] also are listed here. + IANA is requested to allocate 11 new values in the Flow-Spec + Component Type registry as follows: +--------+-------------------------------+--------------------------+ | type | RFC or Draft | discription | +--------+-------------------------------+--------------------------+ - | 1 |RFC5575 | Destination Prefix | - | 1 |draft-ietf-idr-flow-spec-v6-06 | Destination IPv6 Prefix | - | 2 |RFC5575 | Source Prefix | - | 2 |draft-ietf-idr-flow-spec-v6-06 | Source IPv6 Prefix | - | 3 |RFC5575 | IP Protocol | - | 3 |draft-ietf-idr-flow-spec-v6-06 | Next Header | - | 4 |RFC5575 | Port | - | 5 |RFC5575 | Destination port | - | 6 |RFC5575 | Source port | - | 7 |RFC5575 | ICMP type | - | 8 |RFC5575 | ICMP code | - | 9 |RFC5575 | TCP flags | - | 10 |RFC5575 | Packet length | - | 11 |RFC5575 | DSCP | - | 12 |RFC5575 | Fragment | - | 13 |draft-ietf-idr-flow-spec-v6-06 | Flow Label | | 14 |This draft | Ethernet Type | | 15 |This draft | Source MAC | | 16 |This draft | Destination MAC | | 17 |This draft | DSAP in LLC | | 18 |This draft | SSAP in LLC | | 19 |This draft | Control field in LLC | | 20 |This draft | SNAP | | 21 |This draft | VLAN ID | | 22 |This draft | VLAN COS | | 23 |This draft | Inner VLAN ID | @@ -469,23 +468,37 @@ 6. Security Considerations No new security issues are introduced to the BGP protocol by this specification. 7. Acknowledgements The authors wish to acknowledge the important contributions of Hannes Gredler, Xiaohu Xu, Zhenbin Li, Lucy Yong and Feng Dong. -8. References +8. Contributors -8.1. Normative References + Qiandeng Liang + + Huawei Technologies + + 101 Software Avenue, Yuhuatai District + + Nanjing 210012 + + China + + Email: liangqiandeng@huawei.com + +9. References + +9.1. Normative References [I-D.ietf-idr-flow-spec-v6] McPherson, D., Raszuk, R., Pithawala, B., akarch@cisco.com, a., and S. Hares, "Dissemination of Flow Specification Rules for IPv6", draft-ietf-idr-flow-spec- v6-09 (work in progress), November 2017. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, @@ -505,44 +518,43 @@ and D. McPherson, "Dissemination of Flow Specification Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009, . [RFC6074] Rosen, E., Davie, B., Radoaca, V., and W. Luo, "Provisioning, Auto-Discovery, and Signaling in Layer 2 Virtual Private Networks (L2VPNs)", RFC 6074, DOI 10.17487/RFC6074, January 2011, . -8.2. Informative References +9.2. Informative References [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February 2015, . Authors' Addresses Weiguo Hao Huawei 101 Software Avenue, Nanjing 210012 China Email: haoweiguo@huawei.com - - Qiandeng Liang + Donald E. Eastlake, 3rd Huawei - 101 Software Avenue, - Nanjing 210012 - China + 155 Beaver Street + Milford, MA 01757 + USA - Email: liangqiandeng@huawei.com + Email: d3e3e3@gmail.com James Uttaro AT&T Email: uttaro@att.com Stephane Litkowski Orange Business Service Email: stephane.litkowski@orange.com