January 2015 | Reading Time: 9 min read
Introduction
Border Gateway Protocol (BGP) is the cornerstone of the Internet’s routing architecture. While most engineers are familiar with BGP attributes like AS_PATH and NEXT_HOP, BGP communities remain an underutilized yet powerful tool for applying policy and enabling route tagging.
What Are BGP Communities?
BGP communities are optional transitive attributes that allow routers to tag prefixes with metadata. These tags, in turn, can be used to apply policies across autonomous systems (ASes) or within large ISPs. Each community is a 32-bit value, typically represented as two 16-bit integers: <AS>:<value>.
For example, a route tagged with 65000:100 might mean "do not advertise to peers" in a particular provider’s policy.
Standard vs Extended Communities
Standard communities are the most commonly used and are typically sufficient for intra-domain or provider-edge policies. Extended communities provide more granularity, such as VPN-related identifiers in MPLS VPN environments.
Use Cases for BGP Communities
- Traffic engineering (e.g., prepending AS_PATH based on tags)
- Regional route control (e.g., advertise routes only in Asia)
- Customer-specific policies (e.g., blackholing using a special tag)
- Simplifying prefix-list/filter complexity
Sample Configuration
router bgp 65000
bgp log-neighbor-changes
neighbor 192.0.2.2 remote-as 65001
neighbor 192.0.2.2 send-community
!
ip community-list 10 permit 65000:100
!
route-map TAG-IN permit 10
match ip address prefix-list FROM-CUSTOMER
set community 65000:100 additive
!
route-map TAG-OUT permit 10
match community 10
set local-preference 200
!
router bgp 65000
neighbor 192.0.2.2 route-map TAG-IN in
neighbor 192.0.2.2 route-map TAG-OUT out
Best Practices
- Always document what each community means.
- Use a well-defined registry if you’re a service provider.
- Avoid overlapping or conflicting community policies.
- Enable 'send-community' to propagate community values between neighbors.
Common Pitfalls
A common mistake is assuming that communities are automatically propagated. Without 'send-community' enabled, no tags are transmitted. Another pitfall is not filtering inbound communities from customers, which may result in unintended policy triggers.
Testing and Validation
Use commands like show ip bgp
, show ip bgp community
, and debug ip bgp
to validate policies. Tools like route views or looking glasses can
help confirm community visibility across provider boundaries.
Future Outlook
With the rise of route automation and SDN, BGP communities will continue to serve as a programmable interface for real-time routing adjustments. Standardization efforts (e.g., Large BGP Communities - RFC 8092) aim to expand their capabilities.
Conclusion
BGP communities provide engineers with a scalable and flexible method of applying policy without touching complex ACLs or route-maps. Mastering communities is essential for anyone managing BGP in modern enterprise or service provider environments.
No comments:
Post a Comment