第92篇:BGP 优选路径调优案例

关键词

BGP、路径调优、Local Preference、MED、AS_PATH、选路控制


一、案例概述

某企业有双出口连接到互联网(ISP1 和 ISP2),需要精细控制出入流量。

网络拓扑

                ┌─────────────────────┐
                │      Internet       │
                └──┬──────────────┬───┘
                   │              │
                ISP1           ISP2
               (AS 100)       (AS 200)
                   │              │
RouterA GE0/0/0 RouterB GE0/0/0
│ │
└── iBGP ──────┘
RouterC (内部)

需求

需求 描述
入站流量(Internet→内部) 默认走 ISP1,ISP1 故障时切换 ISP2
出站流量(内部→Internet) 视频流量走 ISP2,普通流量走 ISP1

二、出站流量控制(内部→Internet)

2.1 使用 Local_Preference

出站流量控制使用 Local_Preference,数值越大越优先。

# RouterA 从 ISP1 学到默认路由
# RouterB 从 ISP2 学到默认路由

# 在 RouterC(RR)上设置:
# 来自 RouterA(ISP1)的路由 Local_Preference = 200 → 优选
# 来自 RouterB(ISP2)的路由 Local_Preference = 100

bgp 65001
 peer 10.0.12.1 route-policy LP_FROM_ISP1 import   # RouterA
 peer 10.0.23.2 route-policy LP_FROM_ISP2 import   # RouterB

route-policy LP_FROM_ISP1 permit node 10
 apply local-preference 200

route-policy LP_FROM_ISP2 permit node 10
 apply local-preference 100

结果:默认路由指向 ISP1。ISP1 故障时自动切换到 ISP2(Local_Preference=100)。

2.2 基于应用的出站分流

# PBR + BGP:视频流量强制走 ISP2
acl number 3001
 rule 10 permit ip destination 视频服务器网段

traffic classifier VIDEO
 if-match acl 3001

traffic behavior TO_ISP2
 redirect ip-nexthop 10.0.23.2     # 下一跳强制指向 ISP2

traffic policy VIDEO_TO_ISP2
 classifier VIDEO behavior TO_ISP2

interface GigabitEthernet0/0/1
 traffic-policy VIDEO_TO_ISP2 inbound

三、入站流量控制(Internet→内部)

3.1 使用 MED 控制入站

入站流量控制使用 MED,数值越小越优先。

思路:在 ISP1 出口通告的网段 MED=50,在 ISP2 出口通告 MED=100,让 ISP1 优先。

# RouterA(ISP1 侧)——向 ISP1 通告内部路由
bgp 65001
 peer 10.0.12.1 route-policy TO_ISP1 export

route-policy TO_ISP1 permit node 10
 apply cost 50                      # MED = 50
 apply community 100:10

# RouterB(ISP2 侧)——向 ISP2 通告内部路由
bgp 65001
 peer 10.0.23.2 route-policy TO_ISP2 export

route-policy TO_ISP2 permit node 10
 apply cost 100                     # MED = 100

注意:MED 的有效性依赖于 ISP 是否比较来自不同 AS 的 MED。如果 ISP 使用 compare-different-as-med,MED 生效。

3.2 使用 AS_PATH 控制入站

另一种更可靠的方案是人为延长 AS_PATH

# RouterB(ISP2 侧)——加长 AS_PATH 让入站流量优选 ISP1
route-policy TO_ISP2 permit node 10
 apply as-path 65001 65001 additive    # 添加 2 个 AS 号

bgp 65001
 peer 10.0.23.2 route-policy TO_ISP2 export

效果: - ISP1 看到的 AS_PATH = [65001] - ISP2 看到的 AS_PATH = [65001 65001 65001](延长了) - 互联网优先选择 AS_PATH 更短的 ISP1


四、链路故障自动切换

4.1 配置 BFD

# RouterA 与 ISP1 之间启用 BFD
interface GigabitEthernet0/0/0
 bfd min-tx-interval 100
 bfd min-rx-interval 100
 bfd detect-multiplier 3

bgp 65001
 peer 10.0.12.1 bfd enable

# ISP1 链路故障 → 50ms 内检测到 → 切换到 ISP2

4.2 联动 Track

# 跟踪上行接口状态
interface GigabitEthernet0/0/0
 track 1 interface GigabitEthernet0/0/0 line-protocol

# 上行接口 Down 时降低 Local_Preference
route-policy ISP1_TRACK permit node 10
 if-match tag 1
 apply local-preference 50

bgp 65001
 peer 10.0.12.1 route-policy ISP1_TRACK import

五、负载分担场景

5.1 等比例负载(ECMP)

如果两条链路带宽相同(比如都是 1Gbps),可以配置 BGP 负载分担:

bgp 65001
 maximum load-balancing 2              # 两条等价路由做 ECMP

# 确保两条路径所有选路属性完全一致
route-policy LOAD_BALANCE permit node 10
 apply local-preference 200
 apply med 50

bgp 65001
 peer 10.0.12.1 route-policy LOAD_BALANCE import
 peer 10.0.23.2 route-policy LOAD_BALANCE import

5.2 非等比例负载(7:3 分流)

带宽不同时(如 ISP1=1Gbps,ISP2=300Mbps),可以通过 AS_PATH 实现不精确的比例:

# ISP2 方向延长 AS_PATH 使少量流量走 ISP2
route-policy TO_ISP2 permit node 10
 apply as-path 65001 65001 additive

# ISP1 方向保持短 AS_PATH → 大部分流量走 ISP1

六、验证命令

# 查看 BGP 路由的优选结果
display bgp routing-table 0.0.0.0

# 查看选路详细信息
display bgp routing-table 0.0.0.0

# 查看各条路径的选路原因
display bgp routing-table 0.0.0.0 best

# 查看 BGP 邻居状态
display bgp peer

# 查看入站/出站方向的策略
display route-policy

七、总结

流量方向 控制属性 配置位置 推荐
出站 Local_Preference 入方向 Route-Policy ✅ 最常用
入站 MED 出方向 Route-Policy ⚠️ 依赖对端
入站 AS_PATH 出方向 Route-Policy ✅ 可靠
故障切换 BFD + Track 接口 + BGP ✅ 推荐
负载分担 ECMP BGP 全局 ✅ 等带宽时

八、思考

  1. 如果要控制出站流量优先走指定出口,应该使用哪个属性?在什么方向配置?
  2. 为什么要用 AS_PATH 而不是 MED 来控制入站流量?MED 有什么局限性?
  3. 如何在主链路故障时自动切换到备用链路?推荐使用什么技术?
  4. 如何实现两条不同带宽链路的负载分担?
  5. 使用 BFD 后,BGP 的收敛时间可以从多少降低到多少?

下篇预告:第93篇《BGP 路由黑洞的产生与避免》——理解 BGP 路由黑洞的成因和解决方案。