Best practices for BGP Communities

Hello everybody,

A while back I read somewhere that transit providers shouldn’t delete communities unless the communities have a specific impact to their network, but my google-fu is failing me and I can’t find any sources.

Is this still the case? Does anyone have a source for the practice of leaving unknown communities alone or deleting them?

Best,
Josh

https://tools.ietf.org/html/rfc7454#section-11

Kind regards,

Job

https://tools.ietf.org/html/rfc7454#section-11
    
    Kind regards,
    
    Job
    
Remember policies between two peers may not be same as customer policies.

Example: Customers_of_transit_X >>> Transit X >>> Peer_A >> Customers_of_Peer_A

Customers_of_Peer_A may use community A:50 to set local pref to 50 in Peer_A network. But that doesn’t not mean Customers_of_transit_X can send A:50 to set lpref on their routes in Peer_A's network. Peer_A's policy with Transit X likely does not take action on customer communities since they are 'peers' not customers. Transit X can send A:50 to Peer_A but nothing would happen. What's the benefit of Transit X preserving A:50 from its customers if it means nothing in Transit X?

OP didn’t specify what kind of BGP communities they were referring to. In general we can separate communities into two categories: “Informational” and “Action”. You are right that preserving/propagating “action” communities (such as in your example) probably isn’t that interesting. “informational” communities on the other hand can be very valuable.

See https://tools.ietf.org/html/rfc8195 for more information on how the two types differ.

Kind regards,

Job

Thanks for all the feedback.

Follow up questions:

How does one distinguish “informational” and “action” of unknown communities?

Also, why would a transit provider go out of their way to remove unknown communities that don’t have any meaning within their network? What benefit would it serve the transit provider?

Best,
Josh

How does one distinguish "informational" and "action" of unknown
communities?

the action ones are divisible by 3

</sarcasm>

you are in a twisty maze where there are no formnally defined semantics,
only a #:# syntax. if there were general formal semantics, it could
have been put directly in bgp attributes.

steaming pile

How does one distinguish “informational” and “action” of unknown
communities?

“if the community is unknown why would you take any action except to strip it?”

the action ones are divisible by 3

you are in a twisty maze where there are no formnally defined semantics,
only a #:# syntax. if there were general formal semantics, it could
have been put directly in bgp attributes.

isn’t it really that the communities (well known aside) mean what you want them to mean? you get to be creative and have fun!! imagine the fun you’ll leave behind with your follow on networking folks at your job!! great times!