RFC 5292

Address-Prefix-Based Outbound Route Filter for BGP-4

πŸ“… published August 2008, from ietf

RFC 5292: Address-Prefix-Based Outbound Route Filter for BGP-4 πŸŽ€

  • Series: Network Working Group, Request for Comments: 5292 πŸ¦‹
  • Authors: E. Chen (Enke Chen) and S. Sangli (Srihari Sangli), both at Cisco Systems πŸ’–
  • Category: Standards Track ✨
  • Date: August 2008 πŸ“…
  • Obsoletes / Updates: the original doesn't list anything it obsoletes or updates πŸ™ˆ

Status of This Memo 🌸

okay so first things first, this document is an Internet standards track protocol for the whole Internet community, and it's basically asking everyone to talk about it and suggest improvements 🫢. If you want to know where this protocol stands officially, check the current edition of the "Internet Official Protocol Standards" (STD 1) πŸ“–. And yes, distribution of this memo is totally unlimited, so go share it bestie πŸ’…

Abstract πŸ’œ

this RFC defines a brand new Outbound Router Filter (ORF) type for BGP, called "Address Prefix Outbound Route Filter" 🧚. It's used for filtering routes based on address prefixes πŸŽ€. It handles prefix-length- or range-based matching, wild-card-based address prefix matching, and exact address prefix matching for address families πŸ’….

1. Introduction ✨

so the Outbound Route Filtering Capability from [BGP-ORF] lets a BGP speaker send its BGP peer a set of Outbound Route Filters (ORFs) πŸ“¬. The peer can then use those ORFs to filter its outbound routing updates to the speaker πŸ”₯.

this document defines a new ORF-type for BGP, called "Address Prefix Outbound Route Filter (Address Prefix ORF)" 🌈. It's used for address-prefix-based route filtering πŸ’–. The Address Prefix ORF supports prefix-length- or range-based matching, wild-card-based address prefix matching, and exact address prefix matching for address families [BGP-MP] πŸ‘‘.

2. Address Prefix ORF-Type πŸ¦‹

the Address Prefix ORF-Type lets you express ORFs in terms of address prefixes πŸ’…. So it's giving address-prefix-based route filtering, including prefix-length- or range-based matching, plus wild-card address prefix matching 🌸.

conceptually, an Address Prefix ORF entry is made up of these fields: <Sequence, Match, Length, Prefix, Minlen, Maxlen> πŸŽ€.

The "Sequence" field gives the relative ordering of the entry among all the Address Prefix ORF entries πŸ“.

The "Match" field says whether the entry is "PERMIT" (value 0) or "DENY" (value 1) 🫢.

The "Length" field gives the length (in bits) of the address prefix πŸ¦‹. A length of zero means a prefix that matches all addresses (as specified by the address family), with the prefix itself being zero octets 🌈.

The "Prefix" field holds an address prefix of an address family ✨.

The "Minlen" field gives the minimum prefix length (in bits) that's required for "matching" πŸ’œ. The field counts as unspecified when its value is 0 πŸ™ˆ.

The "Maxlen" field gives the maximum prefix length (in bits) that's required for "matching" πŸ’–. The field counts as unspecified when its value is 0 πŸ™ˆ.

The fields "Sequence", "Length", "Minlen", and "Maxlen" are all unsigned integers πŸ”’.

this document puts the following requirement on the values of these fields πŸ‘‘:

      0 <= Length < Minlen <= Maxlen

but the tests about "Minlen" or "Maxlen" should be skipped when that field (respectively) is unspecified 🧚.

also, the "Maxlen" value must be no more than the maximum length (in bits) of a host address for a given address family [BGP-MP] πŸ”₯.

3. Address Prefix ORF Encoding 🌸

the ORF-Type value for the Address Prefix ORF-Type is 64 πŸŽ€.

An Address Prefix ORF entry is encoded like this. The "Match" field goes in the "Match" field of the common part [BGP-ORF], and the other fields of the entry go in the "Type specific part", as shown in Figure 1 πŸ’….

      +--------------------------------+
      |   Sequence (4 octets)          |
      +--------------------------------+
      |   Minlen   (1 octet)           |
      +--------------------------------+
      |   Maxlen   (1 octet)           |
      +--------------------------------+
      |   Length   (1 octet)           |
      +--------------------------------+
      |   Prefix   (variable length)   |
      +--------------------------------+

      Figure 1: Address Prefix ORF Encoding

Note that the "Prefix" field has the address prefix, followed by enough trailing bits to make the end of the field land on an octet boundary πŸ“. The value of those trailing bits doesn't matter πŸ™ˆ.

4. Address Prefix ORF Matching πŸ’œ

in addition to the general matching rules in [BGP-ORF], there are some Address-Prefix-ORF-specific matching rules, listed below ✨.

okay picture an Address Prefix ORF entry, and a route held by a BGP speaker whose Network Layer Reachability Information (NLRI) is in the form <Prefix, Length> πŸ¦‹.

The route counts as "no match" for the ORF entry if the NLRI is neither more specific than, nor equal to, the <Prefix, Length> fields of the ORF entry πŸ’€.

When the NLRI is either more specific than, or equal to, the <Prefix, Length> fields of the ORF entry, the route only counts as a match if the NLRI match condition in Table 1 is satisfied 🫢.

         ORF Entry                  NLRI
    Minlen      Maxlen         Match Condition
  +------------------------------------------------------+
  | un-spec.    un-spec.       NLRI.length == ORF.length |
  +------------------------------------------------------+
  | specified   un-spec.       NLRI.length >= ORF.Minlen |
  +------------------------------------------------------+
  | un-spec.    specified      NLRI.length <= ORF.Maxlen |
  +------------------------------------------------------+
  | specified   specified      NLRI.length >= ORF.Minlen |
  |                        AND NLRI.length <= ORF.Maxlen |
  +------------------------------------------------------+

  Table 1: Address Prefix ORF Matching

When more than one Address Prefix ORF entry matches the NLRI of the route, the "first-match" rule applies πŸ‘‘. That means the ORF entry with the smallest sequence number (among all the matching ORF entries) is the sole match, and it decides whether the route should be advertised 🌈.

The assignment of sequence numbers is a local matter for the BGP speaker that sends the Address Prefix ORF entries 🧚.

5. IANA Considerations πŸ“‹

this document specifies a new Outbound Route Filtering (ORF) type, Address Prefix ORF πŸŽ€. The ORF-type value is 64 πŸ’–.

6. Security Considerations 🚨

okay bestie, this one's short but it matters: this extension to BGP does not change the underlying security issues in [BGP-4] πŸ˜­πŸ”.

7. Normative References πŸ“š

  • [BGP-4]: Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. πŸ’œ
  • [BGP-MP]: Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, January 2007. 🌸
  • [BGP-ORF]: Chen, E., and Y. Rekhter, "Outbound Route Filtering Capability for BGP-4", RFC 5291, August 2008. πŸ¦‹

Authors' Addresses πŸ’…

Enke Chen Cisco Systems, Inc. 170 W. Tasman Dr. San Jose, CA 95134

EMail: enkechen@cisco.com

Srihari R. Sangli Cisco Systems, Inc. 170 W. Tasman Dr. San Jose, CA 95134

EMail: rsrihari@cisco.com

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property 🧚

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't claim to have made any independent effort to identify any such rights. Information on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to obtain a general license or permission for implementers or users to use such proprietary rights can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please send that information to the IETF at ietf-ipr@ietf.org. πŸ’–

πŸ“¦ where this page comes from