1.
方案前置评估:明确目标与流量特征
- 确认业务目标:面向中国大陆用户需低时延、稳定性优先时倾向CN2;面向全球或双向访问以BGP多线为主。
- 收集流量数据:按源/目的IP、端口、峰值时段导出7天流量,统计占比≥1%的目标网段。
- 确定IP段优先级:列出需优先走CN2的目的网段(如中国大陆重点客户或CDN回源IP)。
2.
采购与链路规划:选择运营商和带宽
- 运营商选择:在香港可采购中国电信CN2 GT/ChinaNet(CN2 GT有更优前向路由进入大陆);同时采购至少一家国际BGP上游(如HKT、PCCW、NTT等)实现多线备份。
- 带宽分配:按流量占比预留CN2带宽(例如目标流量50%则预留≥峰值50%带宽),保留冗余10-20%。
- 提前索要BGP参数:AS号、对端IP、允许公告前缀数、支持的community列表、对端要求的MTU与计费方式。
3.
设备与架构准备:路由器、交换与冗余
- 硬件:至少两台支持BGP的路由器(Cisco/Juniper/FRR),启用双机热备(VRRP/HSRP)。
- 接口规划:分别配置CN2和国际BGP的物理接口或子接口,建议独立VRF分离管理面与转发。
- 控制平面:启用BFD加速邻居检测,设置合理的BGP keepalive/timer减少切换延迟。
4.
BGP基础配置(示例:Cisco IOS)
- 全局BGP:router bgp 65000; bgp log-neighbor-changes。
- 建邻居:neighbor 203.0.113.1 remote-as 45102 (CN2);neighbor 198.51.100.1 remote-as 7543 (国际)。
- 宣告前缀:使用network或aggregate,生产环境建议通过route-map从RIB注入已过滤的可公告前缀。
5.
路由策略——按目的地流量分流
- 前缀列表:按步骤2列出的中国大陆前缀创建ip prefix-list CHN-ROUTES permit x.x.x.x/xx。
- route-map设置:对向CN2设置较高local-preference:route-map TO-CN2 permit 10; match ip address prefix-list CHN-ROUTES; set local-preference 200。对国际BGP默认local-preference 100。
- 应用邻居:neighbor 203.0.113.1 route-map TO-CN2 out。
6.
出站流量控制:AS-PATH 与社区控制
- AS-PATH prepend:对国际链路在向上游发布中国前缀时做AS-PATH prepend(例如在国际链路上增加本ASN重复2次),降低其吸引力。
- 使用运营商社区:询问CN2提供者支持的community,按需设置(如告知对端“优先进入CN2网络”)。示例:set community 45102:100 additive。
7.
入站流量引导:利用BGP属性与外部配合
- 更改出口策略吸引回程:对需要从大陆回流到CN2的前缀在CN2上做不做prepend并设高local-pref,通过观察路由可见性调整。
- 与上游沟通:要求CN2上游对指定前缀在其骨干优先标记(若运营商支持可使用特殊community)。
8.
策略实现细节(配置片段)
- 示例(Cisco):
router bgp 65000
neighbor 203.0.113.1 remote-as 45102
neighbor 203.0.113.1 route-map TO-CN2 out
ip prefix-list CHN-ROUTES seq 5 permit 1.2.0.0/16 le 32
route-map TO-CN2 permit 10
match ip address prefix-list CHN-ROUTES
set local-preference 200
- 对国际链路做route-map增加AS-PATH:set as-path prepend 65000 65000
9.
监控与测试步骤(落地执行)
- BGP状态:show ip bgp summary / show bgp neighbors,确认Established且Prefixes Received正常。
- 路由表验证:show ip route x.x.x.x,确认匹配到预期下一跳。
- 端到端测试:从香港机房使用traceroute/mtr到中国大陆目标,分别观察走CN2和国际路径延时与丢包;使用tcpdump抓包验证实际出口IP。
- 灰度测试:先对少量前缀实施策略,观测7×24小时后扩大。
10.
故障切换与自动化
- 快速检测:配置BFD或减少BGP hold timer为90/30(慎重评估);BFD可将故障转发时间缩短为数百毫秒。
- 自动回退:使用路由策略记录原始优先级,在链路恢复后逐步回调以防抖动。
- 脚本化:使用Ansible/Netmiko批量下发route-map、prefix-list并保存变更与回滚脚本。
11.
常见问题与排查技巧
- 无法建立BGP:检查ACL、MTU、TCP 179 通信、对端AS是否一致。
- 路由未到达对端:确认是否被对端过滤或前缀未在RIB中;使用show ip bgp neighbors advertised-routes。
- 流量不按策略走:检查匹配的prefix-list是否覆盖真实目的IP,使用debug ip bgp updates(生产慎用)。
12.
合规与业务注意事项
- 中国大陆流量合规:若业务涉及接入大陆用户,按相关法律合规办理备案、ICP等手续。
- SLA与计费:与CN2提供方确认丢包、时延SLA与计费超额策略,避免突发费用。
- 维运培训:对运维人员进行BGP策略培训、演练故障切换流程。
13.
问:在香港同时使用CN2和国际BGP,如何优先保证中国大陆用户的体验?
- 答:通过精准的前缀匹配把面向大陆的目标网段标记并设置对CN2邻居的更高local-preference,同时在国际链路上对这些前缀做AS-PATH prepend或community告知,从而确保大陆回程优先落到CN2。
14.
问:配置时有哪些必须注意的命令与测试项?
- 答:必须确保BGP邻居建立(show ip bgp summary),前缀匹配准确(ip prefix-list)、route-map生效(show route-map),用traceroute/mtr和tcpdump核验真实路径,并在生产前做灰度小范围验证。
15.
问:若CN2链路发生中断,如何实现无缝回滚至国际线路?
- 答:开启BFD或缩短BGP计时以实现快速检测,配置备份路由(默认local-preference较低),一旦CN2邻居Down,BGP自动切换至国际邻居。推荐使用自动化脚本和监控告警验证切换并在链路恢复后进行平滑回溯。
来源:选择建议 专为香港cn2和bgp 混合使用场景提供方案