【51CTO.com原创稿件】随着云计算的快速发展,网络问题争议不断,为了解决云上租户网络隔离问题,VPC(专有网络)应运而生,VPC也被认为是未来的趋势。
那么,阿里云的VPC是如何帮助用户解决云上的隔离问题呢?VPC之间如何互通、VPC又是如何主动访问公网,如何让用户从公网访问呢?VPC上还有哪些可以避免的坑呢?
记者采访了阿里云网络技术团队高级产品专家李泉(花名)与阿里云网络技术团队高级研发专家梵叶(花名),本文整理自二位的采访内容。
VPC的由来
VPC是随着虚拟化、云计算的发展而出现的产品形态。用户需要VPC主要有两个方面的原因,一方面是安全的原因,即用户需要更安全的网络隔离,二是用户需要有自主可控的网络管理能力。
在VPC出现之前,用户在云上购买虚拟机等云产品,云服务商会为虚拟机提供一个IP地址供用户私用,但用户在云上并没有自己独立的网络,用户不能规划自己的网络,也无法自定义云上网络的地址等,也就是说,在VPC出现之前,用户在云上是缺乏网络能力的,而稍微成规模的用户,其实都是需要在云上有网络能力。
同时,在VPC出现之前,所有的用户都在一张大网内,不同用户的虚拟机通过网络层的隔离做到不同租户的网络隔离,但网络层的隔离不如VPC基于数据链路层隔离那么彻底和安全。因此,云计算服务提供商就为每个租户提供一张网络,并且是独立的、隔离的网络,这就是现在的专有网络VPC(Virtual Private Cloud)。阿里云早在2013年就开始了VPC的研发,并且于2014年正式上线VPC产品,为用户提供服务。
另外,VPC的出现也来自于云服务商自身驱动,除了前面提到的满足用户的安全隔离和网络管理需求外,最典型的就是在云计算环境中,传统网络越来越难以满足业务的快速变化和发展需要,传统网络更关注的是稳定性,但缺乏灵活性,这是巨大的矛盾。而随着这几年SDN思想和技术的发展,这个巨大的矛盾有了解决方案。
VPC是什么?
专有网络VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间实现二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如ECS、负载均衡、RDS等。
也可以这么简单理解,VPC就是用户在云上的一个网络容器,容器里有虚拟路由器和虚拟交换机,这些基础组件构成了用户在云上的一个独立网络环境。有了这个网络容器后,用户就可以在容器中“存放”自己需要的云产品。更重要的是,这个网络容器让用户有了丰富的网络管理功能,比如,用户可以自主选择需要的私网地址段进行组网,管理公网的出和入,将多个VPC网络容器打通,甚至和用户线下IDC打通等。
经典网络下,统一部署都在阿里云的公共基础网络内完成,网络的规划和管理由阿里云负责,因此经典网络类型的产品更加适合对网络没有管理需求的客户,而专有网络VPC比较适合有网络管理能力和需求的客户。
VPC的特点和优势
现在业界众多云服务商纷纷推出VPC,那么,阿里云的VPC又有什么特点和优势呢?
首先,阿里云VPC的整个架构从最初设计时就是为了支撑百万规模的。众所周知,阿里云从2009年就启动了代号为“飞天”的云计算研发项目,致力于提供公共云计算服务,当时使用的就是经典网络。2013年,阿里云开始进行VPC产品的研发,当时在阿里云平台上已经有了规模庞大的用户,因此,VPC产品的底层基础架构,就必须要支撑比当时规模还要大很多倍的用户规模。通过借鉴SDN的思想,阿里云采用当时还不是标准的vXLAN技术,构建了VPC产品底层的控制平面和转发平面。
因此,阿里云VPC能满足中大型、甚至超大型企业级客户的需求,对大规模的业务系统有很好的支撑。除了规模,还有一个非常重要的因素就是高可用和容灾设计,阿里云VPC所依赖的转发集群是每可用区部署的,同时每可用区的集群都有一个备可用区,当一个可用区的集群出现异常时,可以切换到另外一个可用区服务。
目前,阿里云平台上部分用户单个VPC就容纳了5000台规模的服务器,这套系统的可运维性也非常高,这么庞大的系统只需要极少的运维人员就可以完成相关工作。
其次,阿里云VPC的另外一个优势是阿里巴巴的骨干网络。阿里巴巴出于业务的需要,建设了高质量骨干网络,这是很多云服务商所不具备的。基于这张骨干网络,阿里云VPC具备了很强的互联互通能力,用户可以非常方便的将多地部署的VPC进行互联互通。比如,用户为了容灾,在北京和上海两地分别构建了VPC,就可以使用阿里云高速通道产品将两地的VPC进行连接。此外,如果用户需要在全球不同节点使用VPC部署业务系统,依靠阿里巴巴的跨国网络,也可以通过高速通道产品将两个不同国家的VPC进行快速连接。
最后,阿里云VPC对物理网络的侵入很小,不需要物理网络进行特殊的功能适配,在原有的物理网上就可以构建VPC。阿里云VPC是纯软件的实现方案,基于x86服务器自研转发设备,既能满足转发性能的要求,又可以快速在原有的物理网络上实现VPC。
VPC的使用方法
一般情况下,创建VPC的过程分为几步,注册阿里云账户,创建VPC,创建专有网络中的虚拟交换机,然后就是创建云产品了,比如在专有网络中创建ECS实例,然后开通弹性公网IP,最后为ECS实例绑定弹性公网IP。这样,一个包含一台具备公网能力的ECS的专有网络环境就完成了。
VPC的使用还是有一定门槛的,至少要懂得一些网络的基本知识。而对于小白用户来讲,也可以直接使用阿里云提供的Default VPC,也就是系统默认分配的VPC。用户不需要了解VPC是什么,直接使用就可以了。一般情况下,用户需要先创建VPC,创建虚拟交换机,再购买ECS。而Default VPC可以让用户不用先创建VPC,而是直接购买ECS,系统会自动为用户创建VPC。
多个云上VPC间的访问
专有网络天生是隔离的安全网络,默认情况下,别人不能通过私网访问用户VPC,用户的VPC也不能通过私网访问别人。专有网络内的 ECS 只能和本 VPC 内其他 ECS 通信,或者和 VPC 内的其他云服务之间进行通信。那么,用户有多个VPC的时候如何实现不同VPC间的通信呢?
比如,为了安全,用户要将测试业务和生产业务分开,因此在云上建立两个VPC,A VPC 负责生产业务,B VPC负责测试业务,两个VPC之间默认不能通信,但用户可能在某些情况下需要让这两个VPC间进行通信,这个时候用户可以使用高速通道产品的VPC互联功能将两个VPC打通。
VPC内如何访问公网
对于不懂VPC的小白用户,可以直接使用阿里云的Default VPC,系统会默认分配给ECS一个公网IP,这和传统网络中的ECS的方式是一致的。而对于了解VPC的用户,在购买ECS时选择自己的VPC,阿里云不会分配给他公网IP,用户需要通过其他手段,例如使用EIP(弹性公网IP)和NAT网关产品来配置公网的访问。
阿里云在公网访问方面的一个产品叫做EIP,用户可以购买一个EIP,也就是公网IP地址,然后绑定到ECS上,然后这个VPC中的该ECS就可以访问Internet了。还有一种方法,用户可以购买NAT网关,通过配置SNAT规则,VPC中的ECS就可以通过NAT网关来访问公网了。
注:SNAT:源网络地址转换(出方向代理),用于VPC内的ECS访问互联网内容。
VPC内如何被公网访问
而对于公网的用户需要通过公网访问VPC私网中的业务系统,则有三种方法,一是给每个ECS配置有一个EIP,用户直接访问EIP,第二种是购买NAT网关,但是不用配置SNAT规则,而是配置DNAT规则,第三就是使用负载均衡SLB(Server Load Balancer)公网实例,并将需要的ECS挂在到该负载均衡实例下。
注:DNAT,目的网络地址转换(入方向代理),用于VPC内的ECS面向互联网提供服务;支持端口映射、IP映射。
云上VPC与云下IDC的联通
此外,用户还可以将云上的VPC与云下的IDC进行连通,通过使用高速通道-专线接入功能就可以完成,这就是混合云的模式。另外,用户还可以使用VPN将云下IDC经过internet的加密隧道连接到云上VPC。
如何从经典网络迁移到VPC
阿里云有大量的经典网络用户,而未来的趋势是VPC,因此,经典网络如何迁移到VPC就是用户非常关心的问题。对于经典网络的云资源迁移到VPC,阿里云会分阶段完善迁移方案。首先,阿里云提供一个工具,这个工具只针对于单台ECS从经典网络迁移到VPC中,使用这个工具,用户只需重启机器就可以完成迁移工作。
第二阶段,阿里云会研发一个平滑迁移的解决方案,解决方案的核心是负载均衡SLB可以同时挂载VPC和经典网络的ECS,同时,RDS等云产品支持用户同时从经典网络和VPC网络中访问。通过这个解决方案,用户可以通过在VPC中新建ECS,通过业务迁移的方式,将系统从经典网络迁移到VPC。当所有业务迁移到VPC后,再将经典网络的资源销毁。这个解决方案可以满足绝大部分系统的迁移要求。
第三阶段,阿里云会提供ClassicLink功能,允许用户将一台经典网络的ECS直接与VPC的ECS进行通信。这个功能上线后,结合前面两个阶段的功能,就可以满足用户所有的迁移需求。
避免VPC中的坑
首先,避免不同云产品使用不同的网络类型。有些用户开通VPC,购买了VPC类型的ECS,但是RDS却购买的是经典网络的,导致ECS无法访问RDS而无法使用。因此,用户使用云首先要考虑的就是网络类型,就是VPC,避免不同云产品使用不同的网络类型。特别要注意的是,对于实例型云产品,如ECS,RDS,SLB等,用户是在购买的时候选择需要的网络类型的。而对于大部分非实例型云产品,如OSS,日志服务等,则一般通过文档的方式告知用户从VPC中访问要使用的域名。
其次,避免VPC IP规划中的坑。用户在开通VPC时,首先要决定使用哪个网段,目前阿里云提供三个网段,即10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,用户可以选择使用这三个网段或者其子网作为VPC的网段。在考虑网络规划时,一定要想清楚,避免地址冲突。第二,如果用户在云上有多个VPC,则建议两个VPC使用不同的网段,如果使用同一网段,虚拟交换机的网段也是相同,则两个VPC之间是无法通信的,也就无法打通。
第三,在选择交换机时,阿里云建议至少选择两个,并且两个交换机位于两个可用区,避免在同一可用区出现异常而导致整个业务无法访问。此外,交换机的子网掩码选择也是要考虑清楚的。用户应该根据自己的业务需求,确定虚拟交换机的网段,并且要考虑未来的扩展性。例如,现在有100台机器,那么网段数量就必须大于100台主机数量,并且还要考虑未来预留一定的余量,比如500台。
从规避IP冲突的角度,总结一下VPC IP规划的原则:
1.不同VPC使用不同网段
2.如果1做不到,则做到不同VPC的交换机使用不同网段
3.如果2也做不到,则做到要私网通信的交换机使用不同网段
除了用户进行合理规划外,阿里云也会提供更多的功能,比如专线网关可以解决云上VPC和云下IDC地址冲突的问题,再如交换机网段可以让用户修改等。
最后,避免不必要的访问公网和被公网访问。VPC 是安全隔离的私有网络,任何访问公网或被公网访问都是需要经过用户配置的。但运行一段时间后,经常出现不必要的访问公网和被公网访问的情况。比如,不再需要公网能力的ECS却忘记解绑EIP了,或者还有SNAT规则。又如,不再需要对外开放的端口却继续对外开放。这些问题都可能埋下安全隐患。
VPC的未来
云上已经进入VPC时代,VPC是用户使用云的首选,那VPC本身,未来又会是怎样的呢? 从VPC本身来说,其产品形态不会有很大变化,但是对比经典网络中的网络产品和功能就会知道,目前以VPC为代表的云上虚拟网络还只有部分功能,未来,基于VPC,肯定会有满足更多场景的丰富网络功能出现,比如防火墙、入侵检测,流量分析等产品和功能。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】