84

如何解决混合云组网难题

 5 years ago
source link: https://www.sdnlab.com/21224.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者简介:黄斌,现就职于AccessHub。研究方向:自动化组网。邮箱 [email protected]

How%20to%20solve%20the%20problem%20of%20hybrid%20cloud%20networking668X400.jpg

1. 混合云组网的问题与挑战

企业用云量持续增长。随着时间的推移,逐渐形成了混合云架构。混合云架构如何解决通“网”需求?

1.1 多云网络互通

常见的组网方案有:用户自建VPN网关,使用加密隧道连接。但会带来以下问题:
1) 配置复杂,维护成本高
例如,将阿里云北京的VPC资源接入AWS新加坡的VPC。通常我们使用VPN软件解决,但通过繁琐的CLI在不同的云服务商实施不同的部署工作流,会造成在基础设施上花费太多的精力。

2) 网络结构臃肿,失去灵活性。
业务需求是更快的发布应用程序。拼凑使用多种连接方式组网,会使网络架构臃肿,增加复杂度。快,敏捷将是难以实现的。

1.2 企业和云网络互通

常见的组网方案有:云专线。 但也会带来以下问题:
1) 受服务商约束,需要改动网络。
例如,将阿里云北京,腾讯云深圳的VPC基础设施接入到北京的数据中心。云专线连接方式依赖服务商,需要在用户侧部署接入设备,花费几天或几周的时间改动网络。由于涉及到专线服务商,运营商,云服务商多方面配合,在资源协同,线路选择方面通常会有限制。

2) 高昂的组网成本,限制企业通网。
云专线每年支出在数十万级。创业公司没有大企业的资源优势,较高的支出,显然不符合需求。

1.3 客户端远程接入

常见的组网方案有:OpenVPN。 但也会带来以下问题:
1) 多用户多VPC环境,繁琐的证书管理。
每个VPC中都部署OpenVPN服务器会导致繁琐的证书管理。如果您有超过10个用户和多个VPC,则客户端证书管理和OpenVPN配置维护可能成为一项重大挑战。

2) 需要安装客户端。
对于大多数技术人员,OpenVPN使用上没有门槛,但接入系统有可能需要开放给非技术人员使用,例如,销售使用VPN访问内网中的CRM。需要安装客户端的方案,加大了实施难度。

2. 混合云组网的实现思路

如何能减少网络改动,低成本快速组网,同时简化VPN隧道的创建,删除和管理?我们探索出了一种自动化实现方案。

one_668.png

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

2.1 组网自动化方案的组件

1) VPN容器

  • 运行在VPC或用户侧网络的主机上;
  • 处理VPN通道(IPSec加密)流量;
  • 通过WebSocket与控制器连接。

2) 控制器

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

3) Web Client

  • 隧道管理;
  • 用户管理;
  • 数据可视化。

各组件连接关系如下图:

two_668.png

2.2 对等连接的过程及其实现

1) 用户在管理界面点击需要互通的网络,Web Client向控制器发送创建连接请求,控制器向指定VPN容器下发IPSec配置,同时在VPC路由表添加到达对端网络的路由条目。配置完成后拉起隧道,两端网络完成互通。

three_668.png

2) 如果遇到两端网络VPC CIDR冲突的情况,可以通过管理界面修改指定连接的CIDR,Web Client向控制器发送修改CIDR请求,控制器向VPN容器下发新的IPSec配置,同时更新VPC路由条目。完成后重新拉起隧道。

four_668.png

3) 通过界面,可以集中管理所有VPN容器以及隧道。如果网络环境发生变化,例如云服务器的公网IP变更,监控服务会通知容器自动更新IPSec配置,同时更新VPC路由条目,重新拉起隧道。

five_668.png

以上就是系统的工作原理。从中我们可以看出,系统已经很好地解决了传统连接方式所遇到的问题:
1) 控制器通过VPN容器API接口完成IPSec连接配置,使用云服务商网络API接口完成VPC路由配置,从而实现了自动化。这种设计的优势在于可以消除复杂度,不需要网络工程师,任何人都可以运行。

six_668.png

2) 对于用户侧网络和云网络互通需求,由运行在用户侧主机上的VPN容器向运行在云网络的VPN容器发起IPSec连接,这样设计是为了避免对企业网络进行改动,减少对硬件设备的依赖。由于不需要在企业用户侧开放端口,可以适应直接路由,NAT,Proxy等主流的互联网接入方式。

seven_668.png

3) 采用容器化的部署方式,将企业边界软化,不需要在用户侧网络部署CPE设备,不需要配置公有云边界路由器。由于采用了集中管理,分布运行的设计,可以满足随处运行,可持续升级的需求。

2.3 客户端远程接入的过程及实现

1) 管理员可以手动添加用户,也可以使用邀请注册的方式导入用户,将注册地址,注册码分发给团队成员。用户登记邮箱,密码,手机号,注册码完成账号注册。如果有LDAP环境,还可以使用系统的LDAP自动同步功能,对接LDAP服务器,周期性自动更新账号信息。

eight_668.png

2) 账号生效后,用户不需要安装客户端,直接使用macOS,Windows,iOS,Android,Linux原生VPN客户端即可接入。VPN类型为使用预共享密钥的L2TP/IPSec。

nine_668.png

3) 如果用户需要重置密码,可前往自助IT服务页面自行重置密码,就像重设邮箱密码一样简单。

ten_668.png

以上就是客户端接入的流程。从中我们可以看出,系统已经很好地解决了OpenVPN所遇到的问题:

1) 使用预共享密钥的接入方式。这样设计是为了避免维护客户端证书,同时还能直接使用操作系统原生VPN客户端,不需要用户再额外安装VPN客户端。好处是降低了使用门槛,降低了实施难度,使得适应更多的应用场景,适应更多用户群。
2) 提供多种用户导入方式。这样设计是为了兼容企业的IT环境。管理员可以手动添加用户,或者使用邀请注册的方式导入团队成员。还可以通过系统的LDAP自动同步功能,自动更新账号。
3) 通过管理界面,可以集中管理所有VPN容器以及用户。为用户提供密码重置,接入配置指南等自助式IT服务界面。管理员无须介入,降低IT服务成本。

3. 自动化组网的价值

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

快速组网:使用IPSec VPN连接基础设施,在多云,企业与云之间建立任意互联。在几分钟内,将资源连接到任何位置。
网络改动少:适应原有网络,无需部署硬件,不需要对原有网络进行改动。
使用简单:消除复杂度,用全点击式操作取代CLI手动配置,不需要网络工程师,任何人都可以组网通网。
实施简单:使用操作系统原生客户端即可接入,不需要管理证书。
提高效率:集成云服务商API实现组网自动化。让用户专注于核心业务,而不是基础设施。
降低成本:通过廉价的Internet获得近似专线的特性,节省90%的通网支出。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK