- 确认业务需求:主站点在香港高防机房,需要对外多线BGP并能在主线受攻击或故障时切换到备线。
- 准备资料:运营商提供的对端BGP邻居IP、对端AS号、被分配的公网IP/前缀、是否支持社区/撤销API等。
- 必备资源:自备或租用一台具备公网管理权限的路由服务器(Linux + FRR/Bird/exabgp),以及备份站点或云机房用于容灾。
- 选择供应商:确认其支持BGP多线、能在收到DDoS时清洗并保留原IP路由、是否支持Anycast或社区标记。
- 提交工单:提供你的ASN(如果没有可用提供商ASN由对方代投)、需要公告的前缀、管理接入IP、联系人信息;询问是否可以开通BGP MD5验证与对端接口。
- 验证连接:供应商会给出对端邻居IP和AS,确认双方能互Ping并可建立BGP邻居。
- 安装FRR:apt-get/yum 安装frr并启用bgpd。
- 样例配置(/etc/frr/bgpd.conf):
router bgp 64512
bgp router-id 1.1.1.1
neighbor 203.0.113.1 remote-as 64514
neighbor 203.0.113.1 password YourMD5
!
address-family ipv4 unicast
network 198.51.100.0/24
neighbor 203.0.113.1 activate
exit-address-family
- 重载并查看:vtysh -c "show ip bgp summary" 确认邻居状态为 Established。
- 主/备优先级:通过MED、Local-preference 或 AS-path prepending 控制出站优先或备线退避。
- 示例:对备线添加AS_PATH prepend(在对端或通过route-map设置),使主线优先承载流量;在异常时撤销prepend以切换到备线。
- 使用BGP communities:若供应商支持,可以用社区标记进入清洗链或选择路径过滤。
- 被动与主动检测:被动查看流量/连接异常,主动用外部监控(Ping/HTTP)检测业务可用性。
- 自动化切换方式一(BGP撤销/宣布):在检测到故障时通过exabgp或FRR脚本调用撤销本前缀或改写路由策略(例如withdraw或修改AS-PATH)。
- 自动化切换方式二(DNS低TTL):若无法动态BGP,可使用低TTL的DNS结合健康检测实现DNS切换,但切换延迟和缓存问题需注意。
- 安装exabgp并配置邻居:在linux上写配置文件如:
neighbor 203.0.113.254 { local-as 64512; peer-as 64513; static { route 198.51.100.0/24 next-hop 1.1.1.2; } }
- 通过脚本控制:当监控脚本发现主站不可达,调用exabgp的API或重启带有withdraw命令的配置,从而撤销公告;恢复时再次announce。
- 验证步骤:1)建立BGP并确认路由表有你的前缀;2)从互联网不同点traceroute到你的IP确认路径;3)模拟故障(如停止服务或触发脚本撤销前缀)。
- 日常演练:定期演练切换流程并记录RTO/RPO,检查监控告警、清洗是否按预期生效。
- BGP安全:启用MD5、限制源IP、设置最大前缀数、定期审核路由表;对外开放API时做鉴权与白名单。
- 日志与监控:保存BGP变化日志,结合Netflow/ntop监控流量突增,设定告警自动触发切换策略。
答:不一定。可以采用三种方式:1)使用供应商提供的IP/ASN,由其代为公告;2)申请自己的ASN和PI地址并由多运营商互联;3)在没有ASN的情况下使用供应商提供的二级方案(但灵活性和可控性受限)。推荐长期业务申请自己的ASN/PI以获得完全控制。
答:主要有两类策略:1)在高防侧清洗并继续通过原路由承载(透明清洗);2)通过BGP撤销或重路由将受攻击前缀临时转给清洗节点或备线。结合健康检测与自动化脚本(exabgp/FRR)能实现秒级或分钟级切换,配合低TTL DNS可进一步减少用户感知中断。
答:成本包括香港高防带宽与清洗费用、BGP路由器/云实例、网络工程开发与运维成本。风险有BGP配置失误导致全网不可达、清洗误判造成业务中断、以及跨境网络延迟影响体验。建议先做小流量演练、使用预发布策略并与服务商签署SLA。