1.
• 台湾地区多运营商并存,机房常见多线(多ISP)BGP发布以提高可用性与带宽。
• 多线带来路由选择、社区与过滤策略不一致导致的业务中断风险。
• 服务器/VPS 层面需要配合正确的防火墙与BGP next-hop、MED、local-pref 设置。
• CDN 与 DDoS 防御系统会影响路由传播与黑洞过滤,需与BGP策略联动。
• 本文以实际案例与配置示例,给出逐步排查与解决流程,适用于台湾节点运维。
2.
• 错误:不可达/路由丢失;表现:部分ASN无法到达前端IP;修复:检查prefix被过滤或未announce。
• 错误:路由循环或黑洞;表现:流量走向错误ISP被丢弃;修复:校验AS-PATH与社区过滤。
• 错误:next-hop未被修改;表现:内网/交换机无法转发到正确下一跳;修复:启用 next-hop-self。
• 错误:AS号冲突或私有AS泄露;表现:上游拒绝或路由被丢弃;修复:过滤私有AS并统一改写。
• 错误:不当的MED/local-pref 导致单向流量不均;表现:出站/入站不对称;修复:调整local-preference与路由策略。
| 错误类型 | 表现 | 修复建议 |
|---|---|---|
| Prefix未announce | 部分ISP不可达 | 检查prefix-list/route-map,补发announce |
| Next-hop问题 | 路由存在但无下一跳 | 启用next-hop-self/静态路由 |
| AS-PATH泄露 | 被上游屏蔽 | 过滤私有AS并rewrite |
3.
• 在交换/路由器上使用 show ip bgp [前缀] 查看前缀状态与AS-PATH。
• 使用 show ip bgp neighbors 查看邻居状态、已通告前缀数量、路由刷新计数。
• 在Linux服务器上用 bgpd (Quagga/BIRD) 的 vtysh 或 birdc: show route protocol bgp 查看。
• traceroute 与 mtr 用于排查单向丢包与路径问题,示例:traceroute -n 203.0.113.45。
• WHOIS/RIPE/Team Cymru 查ASN与IP归属,确认上游ISP与对端AS编号。
4.
• 场景:台湾机房服务器对外AS 65001,多线接入ISP-A(AS65010)与ISP-B(AS65020)。
• Cisco IOS 简化示例:
router bgp 65001
bgp router-id 203.0.113.1
neighbor 203.0.113.2 remote-as 65010
neighbor 203.0.113.3 remote-as 65020
• 推荐增加:neighbor x route-map EXPORT out ; route-map 内设置 prefix-list 与 community 修改。
5.
• 问题现象:位于台北的数据中心,公网服务间歇性对ISP-B用户不可达,ISP-A用户正常。
• 排查过程:使用 show ip bgp 查看发现前缀存在但next-hop为非直连地址,边界路由器未rewrite。
• 具体数据:本网AS65001 announce 203.0.113.0/24;ISP-B收到前缀但next-hop为 10.255.255.2(私网)。
• 解决办法:在与ISP-B的ebgp会话中启用 neighbor 203.0.113.3 next-hop-self,并在本地添加静态到下一跳。
• 结果验证:traceroute 与 BGP table 显示 next-hop 修正,ISP-B用户恢复连通,丢包率从2.4%降至0.0%。
6.
• CDN接入时需协调AS-PATH与社区标记,确保CDN返回的最佳路径被采纳。
• DDoS防护(如云防/黑洞路由)应通过BGP community或BGP FlowSpec下发;示例community: 65001:6669 表示黑洞。
• 防护建议:在回收/黑洞前先分析流量峰值(例如每秒包/每秒字节),设置阈值后再announce黑洞前缀。
• 配置示例:route-map BLACKHOLE permit 10 set community 65001:6669; 在出口neighbor应用。
• 注意保持上游对community的支持,并在变更前通知ISP以免影响正常流量。
7.
• 步骤1:确认影响范围(全网/部分ISP/单个用户),收集 traceroute 与 mtr 数据。
• 步骤2:在边界设备执行 show ip bgp prefix; 核对AS-PATH、next-hop、local-pref、MED。
• 步骤3:检查并临时放宽 route-map/prefix-list 以排除过滤问题,再逐项恢复严格策略。
• 步骤4:对症修复(如启用 next-hop-self、rewrite community、调整local-pref),并记录变更时间。
• 步骤5:验证并回滚策略,持续监控72小时以确认无复发,然后纳入变更管理文档。