第97篇:BGP 团体属性在运营商网络中的应用
关键词
BGP、Community、运营商、路由策略、QoS 标记、团体控制
一、运营商为什么需要 Community
运营商网络中,BGP 路由数量巨大(几十万到上百万条),无法逐条配置策略。Community 提供了批量路由控制的机制。
社区的精髓
客户给路由打上 Community 标签,运营商根据标签自动执行策略。
不需要逐条配置、不需要逐台设备调整。
二、典型的运营商 Community 设计
2.1 选路控制类
| Community 值 | 含义 | 执行的动作 |
|---|---|---|
| 100:10 | 高优先级 | Local_Preference = 200 |
| 100:20 | 中优先级 | Local_Preference = 150 |
| 100:30 | 低优先级(备份) | Local_Preference = 50 |
| 100:40 | 最低优先级 | Local_Preference = 10 |
2.2 地域标记类
| Community 值 | 含义 |
|---|---|
| 100:101 | 北京接入点 |
| 100:102 | 上海接入点 |
| 100:103 | 广州接入点 |
| 100:104 | 深圳接入点 |
2.3 动作控制类
| Community 值 | 含义 | 执行的动作 |
|---|---|---|
| 100:999 | 不通告给国际 peer | 在出方向过滤 |
| 100:888 | 不通告给对等体 AS | 匹配 NO_EXPORT |
| 100:777 | 添加 MED=100 | 出方向设置 MED |
| 100:666 | 添加 AS_PATH prepend | 出方向延长 AS_PATH |
三、运营商侧的配置
3.1 选路策略
# 运营商 AS 100 的入方向策略
route-policy CUSTOMER_IN permit node 10
if-match community 100:10
apply local-preference 200
route-policy CUSTOMER_IN permit node 20
if-match community 100:20
apply local-preference 150
route-policy CUSTOMER_IN permit node 30
if-match community 100:30
apply local-preference 50
route-policy CUSTOMER_IN permit node 1000
apply local-preference 100 # 默认值
bgp 100
peer 10.0.12.2 route-policy CUSTOMER_IN import
3.2 地域标记转 Local_Preference
# 接入点影响
route-policy REGION_IN permit node 10
if-match community 100:101
apply local-preference 180 # 北京接入点优先
route-policy REGION_IN permit node 20
if-match community 100:102
apply local-preference 170 # 上海接入点
3.3 动作控制
# 出方向:不通告到国际 peer
route-policy TO_INTL_PEER deny node 10
if-match community 100:999
route-policy TO_INTL_PEER permit node 20
四、客户侧配置
4.1 客户标记 Community
# 客户 AS 65001 向运营商 AS 100 通告路由
route-policy TO_ISP permit node 10
if-match ip-prefix CRITICAL
apply community 100:10 # 高优先级
route-policy TO_ISP permit node 20
if-match ip-prefix NORMAL
apply community 100:20 # 中优先级
route-policy TO_ISP permit node 30
apply community 100:30 # 低优先级(默认)
bgp 65001
peer 10.0.12.1 route-policy TO_ISP export
peer 10.0.12.1 advertise-community
4.2 客户接收运营商的 Community
# 运营商可能回传 Community 标记
route-policy FROM_ISP permit node 10
if-match community 100:200
apply local-preference 200 # 运营商标记的优选路由
bgp 65001
peer 10.0.12.1 route-policy FROM_ISP import
五、实战:多宿主场景
5.1 场景
客户 AS 65001 同时连接两个运营商:
ISP A(AS 100)——主链路
ISP B(AS 200)——备用链路
5.2 Community 方案
# 对 ISP A:标记高优先级
route-policy TO_ISP_A permit node 10
apply community 100:10 # ISP A 的 LP 设 200
# 对 ISP B:标记低优先级
route-policy TO_ISP_B permit node 10
apply community 200:30 # ISP B 的 LP 设 50
bgp 65001
peer 10.0.12.1 route-policy TO_ISP_A export
peer 10.0.12.1 advertise-community
peer 10.0.23.2 route-policy TO_ISP_B export
peer 10.0.23.2 advertise-community
效果: - 互联网入站流量优先走 ISP A(LP=200) - ISP A 故障时自动走 ISP B(LP=50)
六、Community 的传递控制
6.1 删除特定 Community
# 在出口删除内部 Community(不上互联网)
route-policy TO_PEER permit node 10
apply community 100:10 delete # 删除该 Community
# 清空所有 Community
route-policy CLEAR_COMM permit node 10
apply community none
6.2 添加多个 Community
route-policy TO_ISP permit node 10
apply community 100:10 100:101 100:777 # 一次添加多个
七、查看 Community 操作
# 查看路由的 Community
display bgp routing-table 172.16.0.0
Network: 172.16.0.0/16
Community: 100:10 100:101
# 按 Community 过滤查看
display bgp routing-table community 100:10
# 查看所有已配置的 Community 过滤器
display ip community-filter
八、总结
| 应用场景 | Community 值 | 作用 |
|---|---|---|
| 选路控制 | 100:10~100:40 | 调整 Local_Preference |
| 地域标记 | 100:101~100:199 | 标记接入点 |
| 出口控制 | 100:888~100:999 | 控制路由传播范围 |
| 多宿主 | 按运营商设计 | 主备链路流量工程 |
九、思考
- 运营商网络中,Community 最核心的价值是什么?
- 如何设计 Community 体系来实现"客户可以自己控制路由优先级"?
- 在多宿主场景中,客户如何利用 Community 控制入站流量走指定链路?
- 为什么要配置
advertise-community?不配置会怎样? - 如何防止内部 Community 被传递到互联网上?
下篇预告:第98篇《BGP 大规模网络设计——AS 规划与 RR 层级》——掌握大型 AS 的 BGP 设计方法。