zl程序教程

您现在的位置是:首页 >  其它

当前栏目

CloudVPN:化繁为简,一跳入云

化繁为简
2023-06-13 09:15:36 时间

前言

    腾讯云CloudVPN服务从采购商用设备转为全栈自研以后,发展进入快车道,除先后推出路由型通道、主备通道、SHA2和DPD等VPN高级功能外,近期更是推出 了单通道单流支持3Gbps的高性能网关,以及方便客户进行员工账号统一管理的SSO和便于访问控制的用户组策略。其中,高性能特性一经推出就在短期内服务于多个行业头部客户,为客户排除拉专线难的困局。本文将围绕高性能及SSO这两大特性,详细介绍其应用场景、如何实现以及腾讯云VPN服务在自研过程中的一些方案和经验。

先行先试,基于VPN极速搭建客户混合云网络

    腾讯云某客户在国内华南分支办公室所负责的业务输出大量数据,需要进行离线分析,以便据此优化客户服务。由于采购服务器周期较长且业务数据量波动,客户计划以混合云方案借助云上资源来满足需求。受限于机房位置和运营商布线问题,从客户分支专线连接到腾讯云遇到较大阻力,基本不可行。因此,客户计划采用VPN构建混合云网络。其方案实施分为两期,一期试点少部分业务,一方面验证方案可行性,另一方面也据此评估正式生产业务的网络诉求;二期则将上线生产环境,将业务数据分析全部推送到云端进行。

    第一阶段,客户使用500M带宽VPN与云上互联,试点较少的一部分业务,组网示意图如下。客户从IDC推送待分析数据到云上进行分析,并且其研发运维人员在客户办公区也通过该VPN通道访问云上资源。由于腾讯云不收取上云流量费用,而客户通信模型是典型的上云流量远大于下云,所以仅需支付极少的网络通信费用。

图1 试点组网示意图

    受益于近年来国内运营商对互联网基础设施的持续升级,客户在第一阶段发现,当地上云公网质量很不错,完全满足客户业务需求。此外, 众所周知,VPN价格相对专线来说非常便宜,这也是客户考虑的重要因素之一。

多核并算,突破单CPU桎梏打造极致性能

    基于客户诉求及面临的挑战,通过VPN构建客户上云通信网络被寄予厚望。然而,根据客户第一阶段试用VPN的监控数据推算,该分支全部业务上线后,峰值带宽需要至少2Gbps。VPN的性能吞吐如何满足客户需求?

    客户分支单通道上云,大量数据汇聚在一个VPN通道内,瞬间到达部署在通用NFV虚拟服务器上的VPN网关内。由于是密文,VPN通道解密方向是单流,性能完全受限于单个CPU的能力,正常情况下无法充分发挥多CPU的优势。所以,客户的需求实际上是要求单流解密达到2Gbps以上。

    腾讯云VPN服务巧妙地对CPU进行合理分工,将密文加解密分布到多个CPU上并行处理,然后进行保序处理。从而一举将单流吞吐量提升到3Gbps,实现业界领先。下图为该方案示意图:

图2 多CPU并行方案示意图

    现实生活中,企业客户服务的工作流程通常分为受理记录,具体处理,结果答复三个大的部分。具体来所,首先由总台受理记录客户填报的各种问题、意见,然后根据其所属分类以及客服团队的闲忙程度下发给具体的、合适的工作人员处理。处理确认清楚后,需要整理成客户能够或容易理解的语言再给予答复。VPN网关内将报文处理人为切分为类似上述三个步骤,以实现团队分工合作。以解密过程为例,任意CPU可被指定进行密文收取,并根据特定算法派发给其他空闲CPU进行解密处理,然后对报文进行排序以及必要的报文调整和封装,最后发往目标。其中的每一个步骤都可以由任意CPU承担,这样就不限于 CPU数量,同时也能够提升整机以及每个CPU的利用率。

  • 单通道、单流极致性能

    流水线工作模式有效突破了密文导致的单CPU限制,将单流报文分布到多个CPU并行处理,从而带来极致性能。

  • 不依赖硬件加速

    业界传统设备制造商常见的提升性能的做法是使用特定的加速卡,这会导致VPN网关只能部署在特定的集群上。导致VPN资源规模受限,且运维成本增加。本方案完全基于CPU能力,普通NFV集群适用。

移动办公,无处不在的VPN

    近年来,移动办公越来越得到企业主的重视。尤其在疫情肆虐下,客户几乎所有员工都有居家办公的诉求。第一阶段试点时,客户员工居家用笔记本开发、调试分析软件,经公司网路上传到云端服务器部署。业务转生产以后,云端软件更新操作变的大量和频繁,客户当前这种模式变的不再适宜。

    为此,推荐客户使用腾讯云SSL VPN服务。与国内其他云运营商仅提供客户端接入或需要通过独立于企业账号的认证体系不同,腾讯云SSL VPN支持通过标准协议对接,基于企业自有账号认证其员工连接腾讯云,更进一步访问关联的IDC内资源。管理员仅需要开通并配置SSL VPN网关的SSO功能以及访问控制,就可以简化员工使用登陆过程的同时,管控员工可访问的资源。此外,将SSL VPN网关部署在员工居家附近的地域,通过腾讯云云联网加速,提升员工云上办公的网络质量。此时,其整体组网示意图如下:

图3 客户生产环境组网示意图

    腾讯云SSL VPN支持集成腾讯云员工版数字身份管理平台(EIAM),实现统一身份管理。认证过程借助浏览器对接EIAM以及租户对接的IdP,整个过程中,仅在员工本地浏览器与租户IdP系统交互认证过程中涉及租户员工账号,避免了信息泄露。

    员工用户认证后,系统根据认证账户所属用户组,以及管理员预先配置的用户组访问限制策略,限制客户端可以访问的目标资源。

图 4 SSO及访问策略方案示意图

  • 灵活方便,一站式账号管理

    管理员可以选择使用EIAM管理企业员工IT账号,也可以通过标准协议对接企业已有的账号管理系统。同时,也可以灵活方便地配置各种认证源。

    和使用企业内部系统一样,企业员工用户仍然使用其内部账号即可登录腾讯云,简单易用。

  • 安全可靠,避免隐私泄露

    员工SSO登陆过程中,账号信息仅在本地浏览器和IdP之间交互,VPN各系统组件完全没有任何途径接触,保护企业账号信息安全。

  • 简单易用,有效保护企业资源安

    移动办公场景下,管理员常常面临的问题是如何避免用户访问甚至破坏其不应该访问的资源。腾讯云VPN允许管理员预先配置员工可以访问的资源,在员工通过SSL VPN登陆后,他们只能访问到管理授权的资源,从而保证企业云上、云下资源的安全。

应云而生,云原生NFV架构践行者

    腾讯云VPN之所以能够快速满足客户既要又要还要的各种定制化需求,与其基于云原生及NFV架构完全自研的产品策略是分不开的。

    与大部分云运营商一样,腾讯云VPN服务起初是通过采购商用解决方案实现的。但商用解决方案固有的特性迭代慢,运营运维效率低等顽疾难以解决,导致只能解决企业上云的基本诉求,难以满足海量客户千变万化的业务模式。为此,腾讯云VPN拥抱变化,实现完全自研。以下是其整体架构示意图:

图 5 CloudVPN产品方案架构

  • 基于NFV架构整体服务体系

    NFV架构是由ETSI 标准组织提出的,腾讯云VPN服务整体上是该架构的标准实现。因而,天然具备NFV架构本身所具备的各种优势。其特征如下:

    1.从云运营商层面来看:由于通过部署在普通服务器上的软件系统为客户提供服务,不再依赖特定硬件,降低了设备成本,提升了其利用率,因此,降低了云运营商CAPEX和OPEX。

    2.从云租户的层面来看:租户可以以更低的代价获得更多网络服务。并且,在有新的需求、场景时,能够更快获得云运营商的响应。

    3.从技术架构层面来看:NFV架构使得各组件分层间完全解耦、独立演进,由不同技术背景的人员聚焦独立组件,降低了软件工程难度。比如上述示意图中NFV管控系统又包括了基础设施的管理、NFV虚拟化管理以及NFV功能的编排三个部分,各部分自成体系,采用不用的编程语言、软件架构和部署方式。它们之间通过简单的API协作,共同为面向租户的业务提供完整的服务。

    此外,腾讯云VPN更是在NFV架构基础上结合云原生的软件方法,融入平台化思想,实现“大平台小产品”理念。传统设备商网关管理系统是在面向企业数据中心研发的,即使调整适配部署到云端也只能算初步云化,与云原生式的从应用层面彻底云化是有根本区别的。腾讯云VPN管控系统和运营运维系统抓住云原生最为核心的微服务、容器化、DevOps以及CI/CD等几大要素,充分利用腾讯云公共的LB、TKE、DB和API网关等公共服务能力,借助公司内部成熟的研发平台和流程,聚焦业务交付本身,充分发挥腾讯云原生框架能力。

  • 基于云原生构建的控制器平台

    如前述,VPN服务中,NFV管控系统以及运营运维系统(如示意图)均基于控制器平台,结合腾讯云云原生框架构建。实现业务快速迭代,敏捷上线,基于云平台的弹性扩缩,动态调度,提升资源利用率的同时,实现自动化、可视化运维、升级及单节点故障场景服务无影响。其具备如下特征:

    1.平台化公共服务:设备管理、配置下发、配置上报、Telemetry服务等均由平台提供。

    2.微服务软件架构:Spring Boot、 tRPC框架、元数据配置、服务发现等,实现灵活升降级、缩小系统故障域。

    3.云原生部署:基于腾讯云TKE容器服务及其他PaaS服务部署。

  • 软硬协同的高性能加解密转发平台

    通用统一的NFV架构平台也更容易实现转发平面的快慢路径、硬件卸载以及多租户和集群化等能力,从而便于优化资源利用率,提供个性化服务。腾讯云自研VPN网关由多个单元组成,包括可编程交换机(含FPGA卡)、DPU以及传统软件的VPN网关,在不同场景下通过灵活组合形成针对性的能力。软件VPN网关内基于DPDK+VPP架构,充分利用其大页内存和零拷贝的优势,构建通用高性能转发平台。平台具备如下特征:

    1.直达用户态,矢量报文处理:基于DPDK-PMD驱动高效收发包基础上,实现资源预分配,调优子母机间配合。扩大原生VPP批量处理和prefetch报文,从而提高i-cache和d-cache命中率的优势,通过预分配资源、引入公共接口映射表等技术手段避免转发线程受干扰,从而高效转发。同时,平台充分利用硬件加速指令,软硬协同,提升加解密吞吐能力。 

    2.基于原始框架,灵活功能扩展:充分利用VPP原生plugin架构,高内聚、低耦合,实现定制功能的灵活按需扩展。

    3.自研协议,无状态加解密:针对端到端传输场景,转发平台自研VxLAN-Sec协议,实现加解密无状态化。基于该协议,报头开销降低40%,转发性能再提升17%,且支持多活模式,性能扩展彻底从scale-up转为scale-out。

    4.软硬协同,大象流卸载:采用公司自研可编程交换机,集成FPGA卡,引入加解密核,实现百G级加解密吞吐。结合无状态加解密能力,实现按需横向扩展FPGA卡或可编程交换机,从而扩展整体吞吐应对各种业务场景。

    需要特别提到的是,除VPN产品外,腾讯云很多重要的网关,诸如DCI、公网、边缘以及SDWAN等产品也基于该转发平台构建。

  • 主动维护场景业务无损,故障场景秒级恢复

    由运维平台集合网关状态、监控信息,对整个主动运维过程进行自动化编排,而网关层面则引入延迟转发、ha-rekey等机制,实现升级、迁移等场景下业务平滑无损。上述能力同样适用于故障场景。不同的点仅在于触发源变成了故障事件,且为了避免偶发性导致的震荡,故障事件需连续多次探测且持续一定时间。

►►►

回顾与展望

    前面章节详细描述了典型的用户VPN场景,以及腾讯云VPN服务为满足客户需求,如何实现3Gbps和SSO及用户访问策略关键能力。随着互联网质量的持续提升以及客户业务需求的蓬勃发展,在性能吞吐、简单易用、安全可靠方面对VPN服务提出更高要求。

    目前,针对单个网关实例,腾讯云VPN服务正在基于多CPU架构,利用硬件DPU能力,继续提升单流以及整机吞吐性能。同时,基于NFV架构虚拟化层Trunk Port能力实现多租户共享网关实例,以应对VPN租户大规模增长背景下的成本控制和资源利用率提升。

    后续,整体架构上,通过协同可编程交换机分发,分离协议层与转发层,仍然基于相对廉价的普通计算资源,实现密文流量集群化吞吐,提升云资源利用率,显著降低单节点故障导致的业务影响,从而助力客户业务快‍速增长。

    针对SSL VPN,性能规格方面将随着高性能加解密平台一起提升;功能方面未来将融入SDP零信任理念,继续夯实登陆、访问安全能力。‍

欢迎关注公众账号“鹅厂网事”,我们给你提供最新的行业动态信息、腾讯网络最接地气的干货分享。

注1:凡注明来自“鹅厂网事”的文字和图片等作品,版权均属于“深圳市腾讯计算机系统有限公司”所有,未经官方授权,不得使用,如有违反,一经查实,将保留追究权利;

注2:本文图片部分来自互联网,如涉及相关版权问题,请联系:sandyshuang@tencent.com或 mianyang@tencent.com

/

/

鹅厂网事/

分享鹅厂网络的那些事