前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CloudVPN:化繁为简,一跳入云

CloudVPN:化繁为简,一跳入云

作者头像
鹅厂网事
发布于 2023-03-07 03:40:19
发布于 2023-03-07 03:40:19
3.3K0
举报
文章被收录于专栏:鹅厂网事鹅厂网事

前言

    腾讯云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

/

/

鹅厂网事/

分享鹅厂网络的那些事

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鹅厂网事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于 Element 组件的穿梭框的重构
前端的发展迅速,层出不穷。很多公司的项目,在使用框架很好能解决 UI 与数据状态同步的难题,但随着公司业务发展,数据量的庞大以及数据处理越来越复杂,官方组件也难以解决的同时,就不得不自己重写特定组件
Krry
2018/10/19
7.6K1
关于 Element 组件的穿梭框的重构
krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦
看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构的博客 关于 Element 组件的穿梭框的重构,当时还有一些同学直接通过微信询问很多关于这个组件的问题
Krry
2019/11/04
1.6K0
krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦
vue使用腾讯位置服务选点组件问题总结
采用的是地图 API 的第二种方式,跳转新的页面,通过回调路径把地址信息带回来原先页面
腾讯位置服务
2020/08/21
1.2K0
Arcgis中图像裁剪
使用arcmap对数据进行剪裁,Arcgis中的裁剪分为很多种,有矢量裁剪矢量,矢量裁剪栅格,栅格裁剪栅格。本文主要操作,掩膜裁剪(矢量裁剪栅格)和clip 裁剪。
Twcat_tree
2023/01/18
2.5K0
微信小程序官方组件展示之表单组件picker源码
以下将展示微信小程序之表单组件picker源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。
软件事业部
2022/09/19
1.1K0
[好文重发]Excel催化剂地图可视化功能正式发布,欢迎使用!
正如标题所提及的,在Excel催化剂上进行中国地图数据可视化,可实现零门槛作图,用户无需掌握任何地图相关知识及编程技术,只需掌握基本的Excel操作,即可瞬间完成自己想要的地图展现效果。
Excel催化剂
2021/08/18
1.4K0
表单联动解决方案探讨
表单联动是前端经常面临的问题,联动实际上是一组表单项和表单项之间的依赖关系的集合。比如经典的“省-市-区”三级联动,就包含了“省”、“市”、“区”三个表单项,以及“市->省”和“区->市”。表单项的依赖关系可以抽象成若干if(省 === '广东省') { 市 in [‘广州市’, ‘深圳市’, ...] }的形式,即“市”依赖于“省”。(被依赖项也可以有多个,比如C依赖于B和A;而依赖项有多个的情况可以拆解为相互独立的依赖关系)
暂七师黑管手
2020/06/02
3.3K0
文旅投资有多火?2019年各省重点文旅项目名单来了
截至目前,全国各省级行政单位2019年重点项目计划也已陆续发布,包括北京市、山东省、江苏省、陕西省、四川省等,涵盖主题乐园、特色小镇、酒店、综合体等业态。 据新旅界不完全统计,全国各省市区公布的2019年重点项目中,其投资额从千亿元至万亿元不等,且同比2017年,各省市区今年重点项目数量和投资额均有不同程度的增长,文旅项目亦是多数省市区的2019年重要项目板块。 从文旅项目类型分布来看,2019年全国重点文旅项目占比最高的是自然景区,占比约27.8%; 其次,田园综合体和主题公园项目也占据较大
腾讯文旅
2020/06/17
7750
Excel插件,效果超好的地图可视化,可绘制区县!
在笔者所接触到的地图可视化过程中(没有专门深入,欢迎补充),简单介绍下所知道的情形。
寒树Office与RPA
2019/11/27
10K0
[功能发布]Excel催化剂地图可视化功能正式发布,欢迎使用!
首先介绍下背景,10月的发布的原文为: 「合规」震惊!地图可视化竟能如此玩,零门槛,全免费,效果远胜主流作图工具!
Excel催化剂
2021/08/19
1.2K0
[功能发布]Excel催化剂地图可视化功能正式发布,欢迎使用!
【愚公系列】2022年08月 微信小程序-省市区三联动功能实现
多级联动下拉菜单是前端常见的效果,省市区三级联动又属于其中最典型的案例。多级联动一般都是与数据相关联的,根据数据来生成和修改联动的下拉菜单。完成一个多级联动效果,有助于增强对数据处理的能力。
愚公搬代码
2022/09/26
3.6K0
【愚公系列】2022年08月 微信小程序-省市区三联动功能实现
【愚公系列】2022年03月 微信小程序-picker选择器
picker选择器分为三种,普通选择器,时间选择器, 日期选择器 用mode属性区分,默认是普通选择器。
愚公搬代码
2022/12/01
1.1K0
【愚公系列】2022年03月 微信小程序-picker选择器
腾讯地图获取全国行政区划检索列表Demo
全国行政区划检索功能, 由于高德和百度也没有提供一个比较完美的解决方案, 因此使用了腾讯地图iOS SDK内部封装的Web接口来实现. 行政区划共分为三个等级, 省级/市级/区级, 对于北京市和天津市这样的城市, 通常直接认为是省级, 并直接以同样的内容来填充市级. 但是SDK内部并没有提供这样的填充, 因此需要自行再省级里面将其复制到市级。
腾讯位置服务
2020/09/18
1.7K0
60 个省委书记、省长经常逛的「朋友圈」,现在你可以直接 @ 他们
作者:冷思真 当今社会,人民群众已经有了很多发声渠道,但还有许多亟待表达的社会诉求。有没有一种渠道,可以向党政领导直接反馈问题呢? 这是人民的夙愿,也是党和政府所非常关心的。 今天带来的「地方领导留言板」,就是帮助大家更好地与党和政府表达想法、反映问题的小程序。 留言板:我的疑惑,你的解惑 在 2006 年,人民网开通了「地方领导留言板」,供广大网民群众向省、市、县三级领导干部反映问题、提出建议。12 年来,先后有 60 位省委书记、省长,2500 位各地「党政」一把手公开回复网民留言,百万网民参与其中。
知晓君
2018/07/03
7142
微信小程序pick组件使用问题总结
. 这里我创建了一个index目录,该目录下面创建好必备的文件。这里只会操作到.js和.wxml文件。 第一种方案 wxml文件添加如下内容
兔云小新LM
2019/07/24
1.1K0
Vue项目使用mt-picker实现省市区三级联动踩坑记录
使用的是饿了么团队的移动端组件库 Mint UI 中的 Picker 组件,官方的文档也是十分的不详细。
德顺
2020/07/21
1.3K0
“区块链苏九条”、广州黄埔“区块链十条”
本文转载于:巴比特网站 原文链接:http://www.8btc.com/su-zhou-guang-zhou-policy-171225 距2016年12月,区块链被写入我国“十三五”信息规划已经过去一年。各地政府纷纷出台相关扶持政策文件,展开了区块链行业优秀企业和人才的争夺战。 “区块链苏九条”:真金白银,开放场景 12月23日,在即将迎来六周年的苏州高铁新城,由苏州同济金融科技研究院承办的“链谷成果、政策、场景规划”上,苏州高铁新城管委会正式发布区块链产业发展扶持政策与向社会开放的首批场景,向区块链行
区块链大本营
2018/05/10
1.5K0
由移动端级联选择器所引发的对于数据结构的思考
GitHub:https://github.com/nzbin/Framework7-CityPicker Demo:https://nzbin.github.io/Framework7-CityPicker/ 前言 最近在做移动端项目的时候遇到了省市区选择的功能。以往做项目时都是省市区分开的下拉框样式。这次希望实现效果图要求的级联选择器。我是 Framework7 框架的忠实粉丝,庆幸的是 Fra
叙帝利
2018/01/17
2.2K0
由移动端级联选择器所引发的对于数据结构的思考
鸿蒙开发实战案例:自定义地址选择案例
本示例介绍如何使用bindSheet,changeIndex,onAreaChange实现带切换动效的自定义地址选择组件。
小帅聊鸿蒙
2025/03/05
940
鸿蒙开发实战案例:自定义地址选择案例
巧用指针/引用实现多级省市区嵌套
开发中经常遇到需要将一个二维结构的数据转换为N级嵌套(如多级菜单、省市区嵌套等),一般遇到这种问题我们会借助数据表添加冗余列配合代码,高级点的可以再配合数据库的存储过程,简单粗暴点的是把数据拉回来后代码多次循环处理。下面我们用指针/引用再没有冗余列的情况下仅遍历一次原始数据实现省市区的嵌套输出。
yaxin
2021/01/22
1.2K0
巧用指针/引用实现多级省市区嵌套
推荐阅读
相关推荐
关于 Element 组件的穿梭框的重构
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档