企业与云IPSec组网自动化实践

网友投稿 280 2022-10-15

企业与云IPSec组网自动化实践

伴随着不断出现的外部,内部挑战,我们将业务向公有云迁移。随着时间的推移,逐渐形成了混合云架构。

混合云架构需要组建虚拟专用网络,实现资源互通,满足加密传输要求。混合云网络连接类型总结如下:

1、VPC到VPC(同一个云服务商)2、VPC到VPC(不同云服务商之间)3、 企业本地网络到VPC

常见的组网方案有:专线,SD-WAN。但也会带来以下问题:

首先是VPC的互通。例如,将阿里云北京的VPC资源接入AWS新加坡的VPC。通常我们使用软件解决,但繁琐的CLI和不同云服务商不同工作流的部署方法,会造成在基础设施上花费太多的精力。

其次是VPC和企业私网互通。例如,将阿里云杭州的VPC基础设施接入到北京的数据中心。传统的连接方式依赖硬件,需要改动网络,部署花费几天或几周的时间。

最后则是快速提供网络服务能力。业务需求是更快的发布应用程序。拼凑使用多种连接方式组网,会使网络架构臃肿,增加复杂度。快,敏捷将是难以实现的。

基于以上问题。如何减少网络改动,采用一致的工作流程,简化加密隧道的创建,删除和管理?我们结合容器,探究出了一种自动化实现方案。

从图中可以看出,我们参考了SDN软件架构设计,将IPSec网关的功能抽象出来逻辑分层,实现集中管理。

IPSec组网自动化方案需要以下3个组件:

1、IPSec容器

部署在VPC或本地网络处理IPSec流量通过WebSocket与控制器连接

2、控制器

通过Restful API完成指定隧道的创建,删除,管理通过云服务商API完成VPC的路由配置通过Restful API与Web Client通信

3、Web Client

配置管理界面连接可视化

各组件连接关系如下图:

云与云创建VPC加密对等连接的过程及其实现如下:

以上就是系统的工作原理。从中我们可以看出,系统已经很好地解决了传统连接方式所遇到的问题:

1、控制器通过IPSec容器API接口完成IPSec连接配置,使用云服务商API接口完成VPC路由配置,从而实现了自动化。这种设计的优势在于可以消除复杂度,不需要网络工程师,任何人都可以运行。2、对于企业和云网络互通需求,由运行在本地数据中心的IPSec容器向运行在云网络的IPSec容器发起IPSec连接,这样设计是为了避免对企业网络进行改动,减少对硬件设备的依赖,适应主流的互联网接入方式。3、采用容器化的部署方式,简化部署过程。由于采用了集中管理,分布运行的设计,可以满足随处运行,可持续升级的需求。

为了提高使用体验,我们在设计与实现时考虑到了很多细节,在这里拿出来与大家分享。

1、容器与控制器的通信协议选择

在选择容器与控制器通信协议时,考虑了以下几点:

A、控制器能及时联系到容器:用户在Web界面的操作(例如下发配置信息或查询运行状态数据),得到及时响应;B、尽可能减少对运行环境的要求,比如开放端口、配置防火墙等;C、适应运行环境的各种Internet接入方式,包括直接路由、NAT、Proxy。

基于上述约束,初步确定了容器作为通讯的客户端,控制器作为通讯的服务端。

在具体通信协议的选择时,考虑了MQTT和WebSocket。两者比较,前者有成熟的开源组件,用很少的开发就可以实现设备接入、消息路由、数据存储、自动订阅 、状态监控等功能;而后者实现相同的功能,需要额外的工作量。但是考虑到WebSocket基于HTTP/HTTPS,对防火墙更友好,我们选择了WebSocket作为网关与控制器的通信协议。网关作为WebSocket客户端,控制器作为WebSocket服务端,这样实现了用户侧的防火墙零配置,而基于WebSocket的长连接又可以满足通信的实时性。

2、如何简化部署及使用?

在用户部署对等网络时,我们希望能够将用户的操作最简化,不需要去查VpcID、RouterTableID、CidrBlock等等信息,只需要输入容器的公网IP地址。为实现这个目标,我们充分利用云厂商的API来获取配置所需的参数、信息,再通过API完成VPC路由的配置。

各家公有云的实现不一样,API的表现也不一样。例如VPC路由配置API,有的厂商是同步操作,有的是异步操作。异步操作又间接限制并发请求,甚至对API调用间隔也产生了间接限制。我们对各家公有云厂商的API进行适配,最终实现配置简化的目标。

3、控制器的设计

控制器与容器的交互仅限于配置信息下发、运行状态查询等带外管理功能。网络之间的流量直接通过IPSec容器建立起来的加密隧道传输,不经过控制器。考虑到控制器存在单点故障的可能性,控制器采用了多活集群设计,可以横向扩展,实现容器带外管理负载。

IPSec组网自动化方案解决了几个问题:

快速组网:使用IPSec连接基础设施,在云与云,企业与云之间建立任意互联。在几分钟内,将资源连接到任何位置。

使用简化:用自动化工作流取代复杂的cli手动配置,让DevOps专注于核心业务,而不是基础设施。

网络改动少:适应原有网络,不对原有网络进行改动。

产品注册地址:accesshub.cn

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL存储引擎MyISAM和InnoDB
下一篇:springboot 接收List 入参的几种方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~