转眼又到春节,又到了亲朋好友大团圆的时刻。对程序猿和攻城狮来说,能否安安稳稳的过年就主要取决于网络是否安稳了,谁都不想在合家团圆吃年夜饭的时候因为网络故障加班。不过,过去这一年各种网络却是故障不断:
2016年9月,广东电信光缆中断导致A服务商BGP网络链路异常,部分地区无法访问;
2016年10月17日,北京电信骨干网故障导致A、U等多家服务商BGP网络异常,部分地区无法访问;
2017年1月,架空光缆撞断,断导致U服务商BGP网络服务中断...
BGP网络故障给云计算客户带来了巨大损失,而大部分服务中断,都被公有云服务商解释为运营商网络故障导致公有云停服。虽然运营商对网络故障中断负有直接责任,但是公有云的网络服务能力只能做到这样了吗?
当然不是。
其实不仅是网络故障,据统计,全国范围内三大运营商每周会出现3~7次的核心网络变更,每次网络变更都可能对BGP网络质量造成影响。传统IDC服务商和云计算服务商通过同地域BGP出口做跨运营商的网络流量调度,一定程度上解决服务中断的问题,但一旦网络故障、变更发生在业务高峰,还是会出现跨运营商互联带宽饱和导致的BGP网络时延、丢包无法控制的问题。
腾讯云依托15年的BGP网络运营经验,精打细磨,在面临国内交叉复杂的网络环境中,修炼出一身基于SDN(软件定义网络,Software Defined Network)的跨地域网络调度能力,保障了包括微信、QQ在内的亿万用户良好的互联网通信体验,今天小编将为您一一揭秘这个隐藏在腾讯云稳定网络背后的神奇武功!
基本功1:Tb级BGP网络出口,21路运营商聚合
所谓巧妇难为无米之炊,没有BGP出口就不要做公有云。腾讯云在全国各个地域拥有Tb级的BGP网络出口带宽,聚合21路运营商接入资源,保障了用户即使面对微信春节红包这样500Gbps入流量的汹涌攻势,也可以从容应对,绝不抖动。
基本功2:Tb级骨干承载网,连接全球BGP网络出口
没有连接的BGP带宽出口,好像战场上被分割的孤岛,一方有难就有难了,没有相互支援。腾讯云Tb级骨干承载网,连通了腾讯云在国内的各大BGP网络出口,各个地域互为POP点在单地域故障时可以实现流量切换。
基本功3:多维网络监控模型,全局网络监控告警
一方面,腾讯云具备面向全国的网络拨测和自动化告警,从网络层面感知网络运营情况;另一方面,基于腾讯云具备独家的腾讯产品自身网络连接质量的统计信息,可以快速定向判断全球网络点对点的网络质量,先于网络层感知网络异常,快速定位问题。
修炼好以上三门基本功,基本可以开始乾坤大挪移——基于SDN网络调度的内功修炼了。
在启用SDN网络调度之前,腾讯云已经具备了基本的BGP流量调度能力,当某地域单运营商故障或变更时,可以通过人工配置的方式将路由切换至相邻的BGP网络出口。
以腾讯云上海为例,如果上海-福建的电信网络链路变更,我们就可以提前进行网络变更,停止上海的BGP接入路由器发放腾讯云路由。所有访问上海的用户流量会通过广州或北京的BGP流量入口绕行至腾讯云骨干承载网,再回到上海公有云。
这样虽然帮助客户规避了运营商变更时,上海公有云覆盖福建的网络中断,但同时也导致了浙江、江苏等邻近上海的用户绕行至广州或北京带来了网络时延增加。
为了解决这个问题,我们通过SDN网络架构设计实现了按省份的精细化BGP路由调度管理:如果是上海到福建的BGP网络中断,那么我们就只把福建访问上海的流量切换至北京和广州,其他正常省份的流量依旧直接访问上海,从而解决了上面时延增加的问题。
如上图所示,我们采用全局的SDN网络控制器连接全地域BGP接入路由器。网络管理平面一方面接收全局的网络监控告警,获得全地域的网络资源和告警信息;一方面通过SDN控制器,向全国范围内的接入路由器下发按需的路由和选路控制。
系统可以预设网络优化算法,为不同选项(包括ISP优选、本地优先、区域优先、AS PATH最短优先、网络资源使用率、网络时延优化等)赋予不同权重求和给出最优配置方案,推送人工进行审核,人工审核通过后即可自动化下发网络调度命令,支持包含主机、网段、区域、AS号、运营商等多维度的调度策略。
SDN网络控制器采用异地容灾部署,通过公司骨干承载网互联,支持HA(High availability)以及ISSU(In-Service Software Upgrade)。所有基于ODL控制器的BGP流量切换都是秒级操作,保证切换操作中用户连接不中断,实现精细化的按需的无感知的网络运维。
目前现网运行的SDN网络调度功能每月调度30次以上,平均每次调度时间2.5小时,帮助用户每月规避网络异常超70小时以上,大幅提升了腾讯云公网BGP质量。腾讯云将持续优化网络架构和SDN网络调度策略,为用户提供稳定、可靠的、无感知的BPG网络服务。