专栏首页SDNLAB浅谈VPC二三,秒懂秒透

浅谈VPC二三,秒懂秒透

VPC全称是Virtual Private Cloud,翻译成中文是虚拟私有云。但是在有些场合也被翻译成私有网络或者专有网络等。这里其实就有些让人迷惑,VPC究竟是指云还是网络?答案是,VPC即是一种云,也是一种网络模式,不过应该从服务和技术的角度分别来看。

一、虚拟私有云

首先从服务的角度来看,VPC指的是一种云(Cloud),这与它的字面意思相符。对于基础架构服务(IaaS),云就是指资源池。你或许听过公有云(Public Cloud)、私有云(Private Cloud)、混合云(Hybrid Cloud)。不过,VPC不属于这三种云中任一种。这是一种运行在公有云上,将一部分公有云资源为某个用户隔离出来,给这个用户私有使用的资源的集合。VPC是这么一种云,它由公有云管理,运行在公共资源上,但是保证每个用户之间的资源是隔离,用户在使用的时候不受其他用户的影响,感觉像是在使用自己的私有云一样。

从这种意义上看,VPC不是网络,我们可以对比VPC和它一个字面上相近的概念:V**(Virtual Private Network)。V**在公共的网络资源上虚拟隔离出一个个用户网络,例如IPsec V**可以是在互联网上构建连接用户私有网络的隧道,MPLS V**更是直接在运营商的PE设备上划分隔离的VRF给不同的用户。从提供服务的角度来,说如果VPC指的只是网络的话,那它跟V**的概念是重复的。所以,从公有云所提供的服务来说,VPC应该理解成,向用户提供的隔离资源的集合。

VPC最早是由AWS在2009年提出[1],不过VPC的一些组成元素在其提出之前就已经存在。VPC只是将这些元素以私有云的视角重新包装了一下。在VPC之后,云主机只能使用VPC内部的对应的元素。从这个角度看,VPC更像是公有云服务商以打包的形式提供服务。

用户可以在公有云上创建一个或者多个VPC,每个部门一个VPC。对于需要连通的部门创建VPC连接。

同时,用户也可以通过V**将自己内部的数据中心与公有云上的VPC连接,构成混合云。

不论哪种用例,VPC都以更加直观形象让用户来设计如何在公有云上存放自己的数据。

二、VPC硬件租用模式

VPC硬件租用模式(Hardware Tenancy)本身也是公有云提供的一种服务模式。VPC的硬件租用模式有两种,一种是共享(shared),一种是专属(dedicated)。共享是指VPC中的虚拟机运行在共享的硬件资源上,不同VPC中的虚拟机通过VPC进行隔离。专属是指VPC中的虚拟机运行在专属的硬件资源上,不同VPC中的虚拟机在物理上就是隔离的,同时VPC帮助实现网络上的隔离。专属模式相当于用户直接向公有云服务商租用物理主机。专属模式适合那些对于数据安全比较敏感的用户,不过这些物理主机还是由公有云服务商管理。

不论是共享模式还是专属模式,VPC都运行在公有云资源上,由公有云服务商管理。

三、专有网络

从技术角度来看,VPC是用户专属的一个二层网络。

3.1 经典网络VS VPC

AWS的网络产品,在VPC之前称为EC2-Classic。去年的一个热点文章《关于阿里云的经典网络问题》说的就是这两种网络模式:Classic和VPC。他们之间最核心的区别是:经典网络提供的是多用户共享的网络,而VPC提供的是用户专属的网络。

这里的网络就是指二层网络,经典网络模型本身有很多问题,其中最大的问题就是安全问题。除非加了特定的防火墙规则去拦截,二层网络内的所有设备默认是可以通信的。这就好比大家都挤在一个房间里,彼此的隐私很难保障一样。稍有不慎,云主机就可能被同网络的其他用户恶意攻击。而VPC能够为每个用户一个专属独立的二层网络。这样相当于给每个用户分了个房间,用户的隐私更容易得到保障。就算有恶意攻击,一般也要走到网关或者V**设备,在这些集中的设备上,网络流量更可控。

由于每个用户都有专属的二层网络,那说明VPC模式下的可用二层网络的数量是远超经典模式的。虽然各家都没有公布自己的实现细节,但是这里有点类似VXLAN和VLAN的关系。VXLAN可以有1600万个二层网络,VLAN只有4000多个二层网络。公有云与私有云的区别在于用户数量巨大。如果采用VLAN,每个用户一个二层网络,那最多只能带4000多个用户,公有云许多用户还是只有1-2个云主机那种,那必然不能满足公有云的需求,所以在早期的经典网络模式下,不得不让多个用户挤在一个网络里面。而如果采用VXLAN之类的技术,则可以保证在一个region里面为1600万个用户每人分到一个二层网络。

因为VPC是一个用户专属的网络,用户可以任意定义VPC内云主机的IP地址。二层隔离了,IP地址想怎么玩就怎么玩。而在经典网络模式下,大家挤在一个二层网络里面,IP地址首先要保证不要重合,这对用户和服务商来说都不是一件心情愉快的事情。

3.2 VPC的网络overlay

从AWS公布的资料[2] 看,VPC的数据封装与VXLAN这类网络Overlay技术也很像。从下图可以看出,桔色的VPC中,10.0.0.2发往10.0.0.3的网络数据,最终被封装成主机之间的通信报文。

原始的二层帧,被VPC标签封装,之后封装在另一个IP报文里面。这与VXLAN的封装方式可以说是一模一样。不过需要澄清的是,AWS在2010年就已经开始应用VPC,而VXLAN标准是2014年[3]才终稿。AWS的VPC或许和VXLAN不一样,但是按照VXLAN理解VPC的overlay会更容易些。

VPC使用网络Overlay之后,可以构建一个L3之上的L2。这样一个VPC内的虚机,可以任意的在数据中心分布。实际中云主机肯定不是任意分布的,会有一些主机的调度优化算法,但是至少,网络不会成为限制云主机部署的因素。举个反例,如果使用VLAN,虚机必须部署在支持相应VLAN的设备上,哪怕这个设备已经接近饱和,而其他的设备却是空置的。如下图,因为左边的机架不支持相应的网络,对应的云主机只能往右边的机架塞,直到塞满。而同时,左边的机架负载还不到50%。

Overlay使得VPC不再受网络硬件的限制,VPC内的云主机可以部署在整个机房。

四、VPC与SDN

AWS在2017年提出,VPC是构建在软件(代码)之上,VPC就是SDN[4]。我们前面说过,VPC是一个二层网络,是一个构建在L3之上的L2 Overlay网络。这里说VPC就是SDN,实际上是指,VPC受SDN所控制。AWS的VPC依靠一个叫Mapping Service的组件工作。当虚机之间要通信的时候,请求先发到Mapping Service,再由它找到目的虚机对应的信息(例如目的虚机所在的主机IP地址),Mapping Service用对应的信息,封装成Overlay数据(类似于封装成VXLAN数据),再进行传输。

如果是一个三层通信,传统上是要发到网关,由网关转发到目的虚机。而对于AWS的VPC,Mapping Service同样也会完成三层通信的信息查找,数据封装。这样连路由器都省了。

这里的Mapping Service,与SDN控制器的作用可以说是一样的。SDN控制器掌握了所有的网络信息,当需要进行二层,三层通信时,SDN控制器会根据网络数据包下发OpenFlow流表,使得虚机之间直接通信。

如果说Mapping Service是SDN控制器,那么更具体点,它还是一个分布式SDN控制器,因为每个主机上都有一个Mapping Service的缓存。通过这种分布式,可以实现高速运算处理。

4.1 VPC相关的网络资源

VPC虽然指的是专有网络,但是跟网络配套的资源有很多,这些网络资源都是以VPC为单位来划分。也就是说,定义在一个VPC内的网络资源,只能被这个VPC内的虚机所使用。这在前面讲服务的时候提到过。这些资源[5]可以概括如下:

Security Group, Subnet, Network ACL, Routing Table, Router,这些都是老生常谈了。以VPC为单位来划分这些资源,可以更好的突出私有的感觉。但是实际上这些资源大多是虚拟的,每个用户占有一份也不会增加公有云运营商的成本。

需要注意的是,VPC尽管是一个二层网络,但是AWS仍然是通过路由器连接一个VPC下的两个Subnet。

4.2 VPC边缘设备

前面讲服务的时候说过,VPC从服务的角度来看是虚拟私有云,表示的公有云运营商提供给用户的隔离资源的集合。它相当于是漂浮在公有云上的孤岛。真正让VPC变得强大的是它各式各样的连接技术。AWS提供了一个Edge设备(Blackfoot Edge Device),VPC通过这个Edge设备可以:

◆ 与别的VPC相连

◆ 与互联网相连

◆ 与用户的私有云建立V**连接。

◆ 与AWS的其他服务建立连接。

这才是公有云服务商在构建VPC网络时,真正的竞争力所在。有了这样的Edge设备,VPC不再是孤岛,而是有了连接其他陆地的桥梁。这里的Edge设备,可以看成是VNF,AWS需要用户在VPC内部手动配置路由来引流到这个Edge设备。

总结

不论是对用户还是公有云服务商,VPC都是一个更好的选择。对于用户来说,首先可以任意定义VPC内的IP地址。其次VPC像是一个容器,装载着所有的云主机,同时又与其他的VPC隔离。第三,用户还可以用各种连接服务(V**,NAT等)将VPC与现有的网络连接起来。这样对用户来说,既保证了网络隔离,又能提供按需的网络连通。对公有云服务商来说,VPC实际上就是SDN在公有云的应用。软件可控,Overlay使得服务商的硬件利用率提高,对硬件厂商的依赖程度降低。在这个基础上,公有云服务商还能够提供更好的网络服务。

本文分享自微信公众号 - SDNLAB(SDNLAB),作者:肖宏辉@VMware

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Aviatrix挑战思科、VMware的公共云网络服务

    公共云网络创业公司Aviatrix推出了一项托管服务来在三大云环境中构建和管理虚拟私有云(VPC)网络:亚马逊网络服务(AWS),Microsoft Azure...

    SDNLAB
  • 腾讯云VPC网络架构演进的经验教训

    腾讯云基础产品技术总监沙开波近日出席2015架构师峰会,分享腾讯云网络架构演变中吸取到的一些经验教训、腾讯云网络的弹性实现、以及VPC自定义网络的能力和典型应用...

    SDNLAB
  • 回顾互联网的过去十年(上)

    任何技术的进化之路通常都会遇到奇怪的和意想不到的曲折和转折。在某种程度上,简单性和简约性可以被复杂性和装饰性所取代,而在某些时候,戏剧性的切入能够揭示该技术的核...

    SDNLAB
  • AWS Transit Gateway实践与使用场景的思考

    AWS Transit Gateway是一项服务,可以将用户的 AmazonVirtual Private Clouds (VPC) 和本地网络连接到一个网关(...

    FB客服
  • 网络产品使用场景及各种坑规避

    子区:类似于广州一区、广州二区这种,一个地域含有多个子区,对应于aws就是zone;

    用户7316624
  • 经典网络还是VPC,开发者作何选择?

    近两天,关于公有云经典网络(基础网络)与私有网络(VPC)的讨论引发技术圈极大关注,事件起因于有开发者将数据库限制在内网访问,但由于安全组设置的原因,阿里云邻居...

    何彬彬
  • hdu---(Tell me the area)(几何/三角形面积以及圆面积的一些知识)

    Tell me the area Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/3...

    Gxjun
  • 浅谈云网融合与SD-WAN

    近年来,SD-WAN作为一项新技术在行业应用领域里快速发展,企业对SD-WAN的接受度日渐提升,各厂商也纷纷提出解决方案。

    CloudBest
  • Microsoft Sync Framework 2.1 软件开发包 (SDK)

    Sync Framework 2.1 引入了新功能,这些功能支持您计算机上的 SQL Server 或 SQL Server Compact 数据库与 SQL ...

    张善友
  • 从头到尾撸个疫情期间针对学生信息报备的小程序(微信小程序+云开发实践

    初学小程序,每天起床第一件事不是去看文档,而是打开班群接龙打卡信息,填写ex表(苦逼的大二狗每天群通知99+),所以萌生了写一款让学生报备信息的小程序。本来只是...

    问号就是我

扫码关注云+社区

领取腾讯云代金券