draft-ietf-idr-rfc5575bis-21.txt | draft-ietf-idr-rfc5575bis-22.txt | |||
---|---|---|---|---|
IDR Working Group C. Loibl | IDR Working Group C. Loibl | |||
Internet-Draft next layer Telekom GmbH | Internet-Draft next layer Telekom GmbH | |||
Obsoletes: 5575,7674 (if approved) S. Hares | Obsoletes: 5575,7674 (if approved) S. Hares | |||
Intended status: Standards Track Huawei | Intended status: Standards Track Huawei | |||
Expires: October 18, 2020 R. Raszuk | Expires: October 19, 2020 R. Raszuk | |||
Bloomberg LP | Bloomberg LP | |||
D. McPherson | D. McPherson | |||
Verisign | Verisign | |||
M. Bacher | M. Bacher | |||
T-Mobile Austria | T-Mobile Austria | |||
April 16, 2020 | April 17, 2020 | |||
Dissemination of Flow Specification Rules | Dissemination of Flow Specification Rules | |||
draft-ietf-idr-rfc5575bis-21 | draft-ietf-idr-rfc5575bis-22 | |||
Abstract | Abstract | |||
This document defines a Border Gateway Protocol Network Layer | This document defines a Border Gateway Protocol Network Layer | |||
Reachability Information (BGP NLRI) encoding format that can be used | Reachability Information (BGP NLRI) encoding format that can be used | |||
to distribute traffic Flow Specifications. This allows the routing | to distribute traffic Flow Specifications. This allows the routing | |||
system to propagate information regarding more specific components of | system to propagate information regarding more specific components of | |||
the traffic aggregate defined by an IP destination prefix. | the traffic aggregate defined by an IP destination prefix. | |||
It also specifies BGP Extended Community encoding formats, that can | It also specifies BGP Extended Community encoding formats, that can | |||
skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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, 2020. | This Internet-Draft will expire on October 19, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 17, line 49 ¶ | skipping to change at page 17, line 49 ¶ | |||
string using the memcmp() function as defined by [ISO_IEC_9899]. For | string using the memcmp() function as defined by [ISO_IEC_9899]. For | |||
strings with equal lengths the lowest string (memcmp) has higher | strings with equal lengths the lowest string (memcmp) has higher | |||
precedence. For strings of different lengths, the common prefix is | precedence. For strings of different lengths, the common prefix is | |||
compared. If the common prefix is not equal the string with the | compared. If the common prefix is not equal the string with the | |||
lowest prefix has higher precedence. If the common prefix is equal, | lowest prefix has higher precedence. If the common prefix is equal, | |||
the longest string is considered to have higher precedence than the | the longest string is considered to have higher precedence than the | |||
shorter one. | shorter one. | |||
The code in Appendix A shows a Python3 implementation of the | The code in Appendix A shows a Python3 implementation of the | |||
comparison algorithm. The full code was tested with Python 3.6.3 and | comparison algorithm. The full code was tested with Python 3.6.3 and | |||
can be obtained at https://github.com/stoffi92/flowspec-cmp [1]. | can be obtained at | |||
https://github.com/stoffi92/rfc5575bis/tree/master/flowspec-cmp [1]. | ||||
6. Validation Procedure | 6. Validation Procedure | |||
Flow Specifications received from a BGP peer that are accepted in the | Flow Specifications received from a BGP peer that are accepted in the | |||
respective Adj-RIB-In are used as input to the route selection | respective Adj-RIB-In are used as input to the route selection | |||
process. Although the forwarding attributes of two routes for the | process. Although the forwarding attributes of two routes for the | |||
same Flow Specification prefix may be the same, BGP is still required | same Flow Specification prefix may be the same, BGP is still required | |||
to perform its path selection algorithm in order to select the | to perform its path selection algorithm in order to select the | |||
correct set of attributes to advertise. | correct set of attributes to advertise. | |||
skipping to change at page 19, line 40 ¶ | skipping to change at page 19, line 40 ¶ | |||
The neighboring AS is the immediate destination of the traffic | The neighboring AS is the immediate destination of the traffic | |||
described by the Flow Specification. If it requests these flows to | described by the Flow Specification. If it requests these flows to | |||
be dropped, that request can be honored without concern that it | be dropped, that request can be honored without concern that it | |||
represents a denial of service in itself. Supposedly, the traffic is | represents a denial of service in itself. Supposedly, the traffic is | |||
being dropped by the downstream autonomous system, and there is no | being dropped by the downstream autonomous system, and there is no | |||
added value in carrying the traffic to it. | added value in carrying the traffic to it. | |||
7. Traffic Filtering Actions | 7. Traffic Filtering Actions | |||
This document defines a minimum set of Traffic Filtering Actions that | This document defines a minimum set of Traffic Filtering Actions that | |||
it standardizes as BGP extended community values [RFC7153]. This is | it standardizes as BGP extended communities [RFC4360]. This is not | |||
not meant to be an inclusive list of all the possible actions, but | meant to be an inclusive list of all the possible actions, but only a | |||
only a subset that can be interpreted consistently across the | subset that can be interpreted consistently across the network. | |||
network. Additional actions can be defined as either requiring | Additional actions can be defined as either requiring standards or as | |||
standards or as vendor specific. | vendor specific. | |||
The default action for a matching Flow Specification is to accept the | The default action for a matching Flow Specification is to accept the | |||
packet (treat the packet according to the normal forwarding behaviour | packet (treat the packet according to the normal forwarding behaviour | |||
of the system). | of the system). | |||
This document defines the following extended communities values shown | This document defines the following extended communities values shown | |||
in Table 2 in the form 0xttss where tt indicates the type and ss | in Table 2 in the form 0xttss where tt indicates the type and ss | |||
indicates the sub-type of the extended community. Encodings for | indicates the sub-type of the extended community. Encodings for | |||
these extended communities are described below. | these extended communities are described below. | |||
skipping to change at page 34, line 11 ¶ | skipping to change at page 34, line 11 ¶ | |||
[RFC7674] Haas, J., Ed., "Clarification of the Flowspec Redirect | [RFC7674] Haas, J., Ed., "Clarification of the Flowspec Redirect | |||
Extended Community", RFC 7674, DOI 10.17487/RFC7674, | Extended Community", RFC 7674, DOI 10.17487/RFC7674, | |||
October 2015, <https://www.rfc-editor.org/info/rfc7674>. | October 2015, <https://www.rfc-editor.org/info/rfc7674>. | |||
[RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | |||
Specification", RFC 8205, DOI 10.17487/RFC8205, September | Specification", RFC 8205, DOI 10.17487/RFC8205, September | |||
2017, <https://www.rfc-editor.org/info/rfc8205>. | 2017, <https://www.rfc-editor.org/info/rfc8205>. | |||
15.3. URIs | 15.3. URIs | |||
[1] https://github.com/stoffi92/flowspec-cmp | [1] https://github.com/stoffi92/rfc5575bis/tree/master/flowspec-cmp | |||
Appendix A. Python code: flow_rule_cmp | Appendix A. Python code: flow_rule_cmp | |||
<CODE BEGINS> | <CODE BEGINS> | |||
""" | """ | |||
Copyright (c) 2020 IETF Trust and the persons identified as authors of | Copyright (c) 2020 IETF Trust and the persons identified as authors of | |||
the code. All rights reserved. | the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, is permitted pursuant to, and subject to the license | modification, is permitted pursuant to, and subject to the license | |||
End of changes. 7 change blocks. | ||||
11 lines changed or deleted | 12 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |