第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 控制路由传播范围
多宿主 按运营商设计 主备链路流量工程

九、思考

  1. 运营商网络中,Community 最核心的价值是什么?
  2. 如何设计 Community 体系来实现"客户可以自己控制路由优先级"?
  3. 在多宿主场景中,客户如何利用 Community 控制入站流量走指定链路?
  4. 为什么要配置 advertise-community?不配置会怎样?
  5. 如何防止内部 Community 被传递到互联网上?

下篇预告:第98篇《BGP 大规模网络设计——AS 规划与 RR 层级》——掌握大型 AS 的 BGP 设计方法。