Home › Networking › BGP Communities

BGP Community Builder

Communities are tags carried with a route. They mean whatever the network carrying them has decided they mean — with a handful of exceptions that are standardised.

Local toolYour network plan stays in your browser. Nothing you enter is uploaded, logged, or sent to any server.

Standard, large, and what they actually mean

A standard community is 32 bits, written as two 16-bit halves — 65000:100. Convention puts the ASN first and a value the ASN chose second.

A large community is 96 bits in three 32-bit parts — 65000:1:200. It exists because 32-bit ASNs do not fit in a 16-bit half, which made standard communities unusable for a growing share of the internet.

Most values mean nothing universally. 65000:100 means whatever AS 65000 published that it means, usually in a document on their website. Do not assume a community you have seen elsewhere carries the same meaning here.

A few are standardised. no-export (65535:65281) asks that the route not be advertised outside the receiving AS; no-advertise (65535:65282) asks that it not be advertised to any peer at all. These are honoured broadly, though honouring them is still a policy decision at each network.

Communities are how customers signal intent to a provider — prepend here, do not export there, set a local preference. What each provider accepts is entirely up to them.

The well-known values, and why they are the exception

A standard community is 32 bits, written as two 16-bit halves — conventionally the ASN that defines the meaning, then a value that ASN has assigned. The meaning lives in the operator's policy and nowhere else, which is why a community that makes a route less preferred on one network may do nothing at all on the next.

A handful are reserved and behave the same everywhere, because they are defined by the protocol rather than by a policy. NO_EXPORT (65535:65281) tells a receiving AS not to advertise the route outside its own confederation or AS boundary. NO_ADVERTISE (65535:65282) says not to pass it to any peer at all. NO_EXPORT_SUBCONFED (65535:65283) stops it leaving the local sub-autonomous-system. These are worth recognising on sight, because they are the only ones you can reason about without reading somebody's documentation.

Large communities exist because of four-byte ASNs

The original format has 16 bits for the ASN half, which was fine until AS numbers grew to 32 bits. An operator with a four-byte ASN cannot fit it into the first half of a standard community at all, so the convention of "my ASN, then my value" simply stops working. Various uncomfortable workarounds followed.

RFC 8092 defines large communities to settle it: 96 bits in three 32-bit fields, written global:local1:local2. The first field holds a full four-byte ASN with room to spare, and the two remaining fields let an operator express both a function and its target — "prepend twice", "towards this ASN" — which the old format never had space for. If you are designing a community scheme now, this is the format to design it in.

Related tools

AS-Path Visualizer and the Best-Path Simulator cover the attributes that decide routing.