## BGP多线换了运营商之后,路由真的会自己切吗 先抛结论:会,但不是你想的那种"咔一下瞬间切过去"。我刚入行那会儿也以为BGP是个魔法开关,运营商一换IP就乖乖跟着跑,结果第一次跟着师傅处理线路割接,盯着MTR看了八分钟路由还在老路上绕,当时真的会谢。 这事得先把"BGP多线"到底是个啥说清楚。很多人嘴里的BGP多线,其实是两种完全不同的东西,混在一起聊就全乱套了。 ### 真BGP和假BGP,先分清楚你买的是哪个 真BGP是机房自己持有一个AS号(Autonomous System Number),同一个IP段同时向电信、联通、移动三家上游宣告(advertise)。你访问这个IP的时候,你所在运营商的网络会根据BGP的best path算法自己挑一条最优路径回来。打个比方,这个IP就像一栋楼有三个门,电信用户走电信门,联通用户走联通门,门牌号是同一个。 假BGP说白了就是机房在网关上做策略路由(policy routing),靠源进源出的方式把不同运营商的流量分流。它没有自己的AS号,也不向上游宣告,本质上是机房内部的活儿。

这俩在"换运营商"这件事上的表现,差得不是一星半点:

场景真BGP(自有ASN)假BGP(策略路由)
换上游运营商撤销旧宣告+发新宣告,全网重新收敛改网关出口表,本地立刻生效
切换是否依赖外部依赖全网BGP邻居收敛不依赖,机房内部说了算
典型生效时间30秒到3分钟(看收敛规模)几乎秒级,但只对新连接生效
老连接会断吗路由切了TCP会重连已建立的连接还走老路
看出来没,所谓"路由自动切",在真BGP里指的是BGP收敛(convergence)这个过程,不是你按了开关它就过去了。 ### 收敛这事到底慢在哪 BGP收敛慢,慢在它是个"传话游戏"。你机房撤销了某条线路的宣告,发出一个withdraw报文,这个报文要一跳一跳传到全国乃至全球的BGP路由器上,每一跳都要重新跑一遍路径选择。中间还有个特别坑的机制叫路由抖动抑制(route flap dampening)——如果你的路由在短时间内反复宣告又撤销,上游会判定你不稳定,直接给你"禁言"一段时间,惩罚时间从几分钟到一小时都有可能。我见过一个客户割接的时候手滑来回切了五次,结果被上游dampening了40分钟,那段时间IP直接半死不活,离谱。 实测过一组数据,同一个IP段从电信单宣告改成电信+联通双宣告,用全国十几个节点的探针看路由收敛情况:
探测点运营商新路由首次可见路由完全稳定
同省电信约18秒约45秒
跨省联通约52秒约2分10秒
移动约1分20秒约3分钟

所以"自动切"是真的,但你要是指望它无缝,那是想多了。这段收敛窗口期内,部分用户走新路、部分用户还在老路,体感就是网络忽快忽慢,丢包飘忽。

### 换的是机房上游,还是换你自己的IP 这是新人最容易绕进去的坑。"换运营商"得分清楚主语是谁。 如果是机房换上游(比如它原来从电信A接入,现在换成电信B),而你的IP段、AS号都没变,那对你来说几乎无感,路由收敛在机房侧完成,你的业务IP不动。 但如果是你的IP整段要从一个运营商迁到另一个——比如从机房的BGP段迁到一个纯电信单线段——那就不是"切路由"了,那是换IP,DNS得跟着改,TTL没提前调低的话,缓存还能坑你大半天。这种情况下根本没有"自动"一说,全是手动活儿。

还有个隐藏知识点:AS路径预置(AS path prepending)。有时候你不想完全切走,只想让某条线路的优先级降一点,就可以在宣告里把自己的AS号重复写几遍,路径变长了,BGP的best path就不爱选它了。这是做流量调度特别常用的软手段,比直接撤宣告温柔多了,也不容易触发dampening。

### 那到底什么时候该自己折腾,什么时候该交给机房 说句实在话,能玩真BGP的前提是你得有自己的ASN和IP段,还得跟上游签BGP peer,这套门槛对中小业务来说性价比极低。绝大多数人需要的其实是一个线路质量稳定、机房BGP配置成熟的现成方案,而不是自己去跟收敛和dampening搏斗。 我们之前给一个做游戏对战的客户选机器,他们最早就是图便宜买了个假BGP的单机,结果换季促销一来流量上去,策略路由的网关直接成了瓶颈,跨网延迟飙到200ms+。后来换成有正经BGP和CN2优化的线路才压下去。如果你也在找这种对延迟和线路敏感的配置,可以看看129云(idc129.net),他们家专门做游戏、高防、海外这些场景,CN2和精品回国线路是现成的,省得自己折腾收敛那一摊。

给几个我实际比过、记下来的配置,免得你跟我当初一样瞎选:

型号配置线路特点适合谁
香港CN2大宽带-A型2C/2G/系统盘Lin30Win50+40G SSD/25Mbps峰值/500G流量精品CN2双向,回国延迟低外贸站、跨境业务
韩国-C型4C/4G DDR4 ECC/60G SSD/7Mbps/傲盾防火墙精品线路+回国优化对韩日延迟敏感的小服
泉州电信-E型16C/16G DDR4 ECC/160G SSD/50Mbps峰值100Gbps单机防御,铂金强U需要抗DDoS的国内业务
那个泉州电信-E型的100Gbps单机防御我得多说一句,做高防的对DDoS这块最敏感,单线电信优质线路配上这个防御量,跑游戏后端或者吃CC攻击的站点是真顶得住,配置细节直接打他们客服热线400-9177118问就行,比自己瞎猜配置靠谱多了。 ### 实操时盯哪几个点不翻车 真要做线路切换,我现在养成的习惯是:切之前先把DNS的TTL降到60秒,给可能的IP变动留后路;切的过程开着MTR和ping全程盯收敛,别切完就走人;最关键的是别手贱反复切,给上游留足收敛时间,碰dampening那真是自找的。 师傅当初跟我说过一句话我记到现在——BGP不是不会切,是它按自己的节奏切,你越想催它,它越给你脸色看。