Date created: Friday, May 10, 2024 5:50:08 PM. Last modified: Monday, June 10, 2024 12:04:21 PM

BGP Communities

Standard Communities

https://www.rfc-editor.org/rfc/rfc1997#

32-bit (4 byte) payload split into 2x 2-byte values, e.g. as-number:community-value.

 

Extended Communities

https://www.rfc-editor.org/rfc/rfc4360

64-bit (8 byte) payload split into 2-or-2-byte type + 7-or-6 byte value:

      Type Field:

         Two classes of Type Field are introduced: Regular type and
         Extended type.

         The size of Type Field for Regular types is 1 octet, and the
         size of the Type Field for Extended types is 2 octets.

         The value of the high-order octet of the Type Field determines
         if an extended community is a Regular type or an Extended type.
         The class of a type (Regular or Extended) is not encoded in the
         structure of the type itself.

https://www.iana.org/assignments/bgp-extended-communities/bgp-extended-communities.xhtml

 

Example 1:

https://www.rfc-editor.org/rfc/rfc5575#section-7

byte 1 == 0x80 (meaning "BGP Transitive Extended Community")

byte 2 == 0x06 (meaning "Flowspec traffic rate limit action")

Bytes 3-8 == Specific to the application (FlowSpec, e.g. traffic rate limit in Bytes per second)

 

Example 2:

https://www.rfc-editor.org/rfc/rfc7153.html#page-10

byte 1 == 0x00 (meaning "BGP Transitive Extended Community")

byte 2 == 0x02 (meaning "Route Target")

bytes 3-8 == Specific to the application (L3VPN, e.g. 4 byte ASN + 2 byte VPN ID)

 

Large Communities

https://www.rfc-editor.org/rfc/rfc8092.html

96-bit (12 byte) payload split into 3x 4-byte values, e.g. local-as:remote-as:community-value.