由于每个用户都有专属的二层网络 , 那说明VPC模式下的可用二层网络的数量是远超经典模式的 。虽然各家都没有公布自己的实现细节 , 但是这里有点类似VXLAN和VLAN的关系 。VXLAN可以有1600万个二层网络 , VLAN只有4000多个二层网络 。公有云与私有云的区别在于用户数量巨大 。如果采用VLAN , 每个用户一个二层网络 , 那最多只能带4000多个用户 , 公有云许多用户还是只有1-2个云主机那种 , 那必然不能满足公有云的需求 , 所以在早期的经典网络模式下 , 不得不让多个用户挤在一个网络里面 。而如果采用VXLAN之类的技术 , 则可以保证在一个region里面为1600万个用户每人分到一个二层网络 。
因为VPC是一个用户专属的网络 , 用户可以任意定义VPC内云主机的IP地址 。二层隔离了 , IP地址想怎么玩就怎么玩 。而在经典网络模式下 , 大家挤在一个二层网络里面 , IP地址首先要保证不要重合 , 这对用户和服务商来说都不是一件心情愉快的事情 。
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% 。
文章插图
【VPC是什么,VPC能做什么,VPC详解】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的缓存 。通过这种分布式 , 可以实现高速运算处理 。
推荐阅读
- 数字签名的原理是什么?
- 梦见很多蚯蚓缠在脚上 梦见很多蚯蚓是什么意思
- 梦见自己头上戴孝布哭 梦见自己头上戴孝帽子是什么意思
- 梦见石头山路崎岖难走 梦见石头山崩塌是什么意思
- 周公解梦梦见救起落水的女人 女人梦见自己落水被救上来是什么意思
- 淘宝修改商品属性会有影响吗 淘宝商品要素不一致是什么意思
- 梦见在老家盖房子是什么意思 梦见在老家的房子里
- 汽车一级保养、二级保养、三级保养分别是什么?
- 你穿的雪地靴也许不是“真正的”UGG,各路UGG是什么来头?
- 葡萄酒标上的数字都是什么意思?