虚拟网络VDC与VPC
当前互联网行业,内部 IT 基础资源云端化是主要趋势。云平台将资源管理抽象出来,比如云主机、云 DB 等,以服务的方式提供给用户,按需使用,从而带来更大的灵活性与经济性。
随着主机、DB、缓存、存储等独立服务抽象出来,那么必然有一个大的容器,将这些个体服务整合成一个整体。这个容器就是 VDC,即虚拟数据中心。在传统 IT 环境里,主机、DB、缓存、存储服务器,都位于物理 DC(数据中心)里。在云端化进一步发展后,物理 DC 也将抽象出来,形成 VDC,在更高的层次上为用户提供基础服务能力。
VDC 不是很新的概念,Amazon AWS 很早就提出了 VPC(虚拟私有网络)。VDC 跟 VPC 没有本质的不同,VDC 是建立在 VPC 之上。也就是说,只有 VPC 得以实现,VDC 才能产生。在 VDC 里,网络由用户自己定义,包括二层网络、三层网络(子网)、路由、安全策略、负载均衡等,都是用户控制。比如张三在他的 VDC 里,自己声明了一个 192.168.1.0/24 地址段,所有主机都使用这个段的 IP。李四也在他的 VDC 里,声明一个相同的、或不同的地址段,并分配 IP 地址给主机。
使用 VDC 的好处至少包括:
- 安全。每个 VDC 彼此隔离,一个 VDC 里的安全问题,不会影响到其他 VDC。比如某个主机被黑,黑客难以渗透到这个主机所在 VDC 之外的其他 VDC。
- 灵活。VDC 里每个资源,甚至包括 VDC 自身,都以服务的方式提供。用户可以通过控制面板,或者 API 的方式来使用这些资源。相比物理 DC 来说,存在极大的灵活性。
- 经济。VDC 里的资源按需使用,对成本管控无疑有利。YY 游戏的云平台成本节省比率大概在 40% 左右。
- 易管理。对大而杂的物理 DC 而言,最大的问题是容量管理。每个物理 DC 里混合了多个业务,在统计它们的容量时很头痛。而 VDC 与项目挂钩,每个项目使用一个独立的 VDC,在容量管理方面就容易很多。可以统计出历史容量报表,并根据业务发展趋势(PCU、DAU 等),自动做好容量规划。容量管理对象包括 CPU、内存、磁盘、带宽等。
VDC 内部资源包括各个抽象化的具体服务,如云主机、云 DB 等,如下示意图:
这些抽象化的个体服务,位于虚拟私有网络里。用户接入 VDC 后,访问它们就如同在物理 DC 里一样方便。第三方的管理服务,比如部署系统、研发管理系统、监控系统、QA 系统,都实例化运行,在每个 VDC 里发挥作用。升龙部署系统有点类似于 AWS 的 OpsWorks,是一套综合部署与运维平台。
VDC 发展趋势必然是跨物理 DC。在分布于各地的物理 DC 基础上,抽象出面向用户的 VDC 服务。而用户甚至无需关注物理 DC 的分布,只需要按正常方式使用 VDC 资源,由 VDC 自身来保证服务的架构、性能、扩展性。如下图所示:
用户的项目,或者项目组,接入专属的 VDC。VDC 之间彼此隔离,并不能直接通信,如果需要通信可以走 VPN 隧道连接。位于办公室的用户,也通过 VPN 的方式接入生产网 VDC。在 YY 游戏云平台上,每款游戏都是接入一个独立的 VDC。
随着技术的发展,物理 DC 的硬件条件,包括空调、电力、安防、监控等,也可以逐步抽象成服务,为用户的 VDC 提供更完善的基础服务。我想在不久的将来,互联网公司的 VDC 发展将全面取代物理 DC,实现更灵活高效的 IT 基础服务。
1 什么是私有网络(VPC)
私有网络是一块可用户自定义的网络空间,您可以在私有网络内部署云主机、负载均衡、数据库、Nosql快存储等云服务资源。您可自由划分网段、制定路由策略。私有网络可以配置公网网关来访问Internet,同时也支持配置公网或专线接入搭建混合云,私有网络之间网络逻辑隔离。
2 私有网络(VPC)与基础网络的区别
基础网络与私有网络是腾讯云上的两种网络模式,用户未标注为VPC网络的云资源均部署在基础网络中。
3 使用私有网络的好处
1) 灵活部署:自定义网络划分、路由规则,配置实施立即生效
2) 安全隔离:100%逻辑隔离的网络空间,我的地盘听我的
3) 丰富接入:支持公网VPN接入和专线接入
4) 访问控制:精确到端口的网络控制,满足金融政企的安全要求
说起来VPN,大家应该都不陌生,新闻媒体上会经常出现,但VPC就比较少听过,那么VPC是什么,与VPN有何关系?
虚拟专用网VPN
我们在新闻中经常听到某某人因为私自搭建VPN服务或者销售VPN软件而被抓,为什么云服务商也提供VPN就没事呢?技术当然是无罪的,关键是用技术来做什么,首先我们了解一下什么是VPN。
虚拟专用网(VPN:Virtual Private Network)是指在公用网络上建立起一个临时的、安全的连接。建立VPN主要采用的技术包括:隧道技术、加解密技术、密钥管理技术和身份认证技术,可通过服务器、硬件、软件等多种方式实现。
VPN主要是用于大型企业中,比如异地办公或出差的员工可以通过VPN网络访问公司内部网,从而实现整个企业的异地协同工作,且有足够的安全性。VPN可以保障通信的私密性,因此也可以利用VPN技术突破网络封锁访问受限制站点。
对于利用VPN访问互联网,国家法律已有规定:未经电信主管部门批准, 不得自行建立或租用专线(含虚拟专用网络 VPN)等其他信道开展跨境经营活动。如果有人利用VPN技术提供互联网跨境访问的,就触犯了法律。像阿里云、腾讯云之类的云服务商虽然也提供VPN服务,但并不提供Internet访问。
这些云服务商的VPN服务主要是为企业提供加密通道,将企业数据中心(IDC)、内部办公网络与云端租用的虚拟私有云VPC安全得连接起来,这样企业就可以实现基于混合云的企业信息基础设施架构。
虚拟私有云VPC
随着网络规模的不断扩大,ARP欺骗、广播风暴、主机扫描等网络安全问题越来越严重,为了解决这些问题,出现了各种网络隔离技术,比如虚拟局域网(VLAN)、VPC等。虽然VLAN技术可以将网络的用户进行隔离,但是VLAN的数量最大只能支持到4096个,无法支撑公有云的巨大用户量。
虚拟私有云(VPC:Virtual Private Cloud)与VPN类似,实现VPC也需要利用隧道技术,以及SDN(软件定义网络)。利用VPC技术可以将公有云的网络隔离,每个VPC网络都有一个隧道号,相互之间逻辑上彻底隔离。对于SDN技术,可以参考之前发表的文章《构建5G网络的核心技术:SDN与NFV的区别与联系》。
另外,VPC不存在VLAN技术的数量限制,非常适合于公有云中用于网络隔离。目前VPC服务已经是主流云计算服务商提供的一项基础服务,使用者可以利用VPC服务在公有云上隔离出一个自己的专有网络。
以阿里云VPC服务为例,使用者可完全掌控自己的VPC,比如选择自己的IP地址范围、划分网段、配置路由表和网关等,从而实现更加安全的网络环境。
阿里云的VPC架构图如上图所示,主要包括三个核心部件:网关、交换机和控制器。交换机和网关组成了数据通路的关键路径,控制器是实现配置通路的关键路径。
结语
对信息安全有较高要求的企业,VPC以及基于VPC的混合云架构将成为首选,但对使用者有较高的技术要求,需要有一定数据通信网络的配置经验
私有网络(VPC)
私有网络是针对公有云的基础网络(经典网络)来定义的一种概念。
VPC(Virtual Private Cloud)是公有云上自定义的逻辑隔离网络空间,是一块可我们自定义的网络空间,与我们在数据中心运行的传统网络相似,托管在VPC内的是我们在私有云上的服务资源,如云主机、负载均衡、云数据库等。我们可以自定义网段划分、IP地址和路由策略等,并通过安全组和网络ACL等实现多层安全防护。同时也可以通过VPN或专线连通VPC与我们的数据中心,灵活部署混合云。
VPC主要是一个网络层面的功能,其目的是让我们可以在云平台上构建出一个隔离的、自己能够管理配置和策略的虚拟网络环境,从而进一步提升我们在AWS环境中的资源的安全性。我们可以在VPC环境中管理自己的子网结构,IP地址范围和分配方式,网络的路由策略等。由于我们可以掌控并隔离VPC中的资源,因此对我们而言这就像是一个自己私有的云计算环境。
我们可以通过VPC及其他相关的云服务来把企业自己的数据中心与其在云上的环境进行集成,构成一个混合云的架构。
使用私有网络的好处
1) 灵活部署:自定义网络划分、路由规则,配置实施立即生效
2) 安全隔离:100%逻辑隔离的网络空间,我的地盘听我的
3) 丰富接入:支持公网VPN接入和专线接入
4) 访问控制:精确到端口的网络控制,满足金融政企的安全要求
应用场景
安全网络
通过 VPC 网络构建起具有严格安全访问控制的网络,同时兼顾核心数据的安全隔离和来自公网访问的有效接入。用户可以将处理核心数据和业务的核心服务器或数据库系统部署在公网无法访问的子网中,而将面向公网访问的web服务器部署于另一个子网环境中,并将该子网设置与公网连接。在 VPC 网络中,用户可以通过子网间的访问控制来实现对核心数据和业务服务器的访问控制,在确保核心数据安全可控的同时满足公网的访问需求。
混合云网络
通过 VPC 网络提供的隧道或 VPN 服务,建立一套安全高效的网络连接。在 VPC 中部署 Web 应用,通过分布式防火墙获得额外的隐私保护和安全性。用户可以创建防火墙规则,使 Web 应用响应 HTTP/HTTPS 等请求的同时拒绝访问 Internet,以此巩固网站的安全保护,从而实现部署于公有云上的应用与部署在自有数据中心的业务之间的互联互通,构建混合云的架构。
托管网站
通过 VPC 网络提供的目的地址 NAT 功能,实现无 EIP 的安全访问互联网。
解决网络瓶颈
通过 VPC 网络提供的隧道/VPN/专线服务,方便将企业应用部署到云中。
灾难恢复
通过 VPC 网络提供的隧道/VPN/专线服务,方便构建灾备环境。
私有网络(VPC)与基础网络(经典网络)的区别
经典网络:公有云上所有用户共享公共网络资源池,用户之间未做逻辑隔离。用户的内网IP由系统统一分配,相同的内网IP无法分配给不同用户。
VPC:是在公有云上为用户建立一块逻辑隔离的虚拟网络空间。在VPC内,用户可以自由定义网段划分、IP地址和路由策略,安全可提供网络ACL及安全组的访问控制,因此,VPC有更高的灵活性和安全性。
经典网络和VPC的架构对比图:
对比可以看到,VPC优势明显,通过VPC,用户可以自由定义网段划分、IP地址和路由策略;安全方面,VPC可提供网络ACL及安全组的访问控制,VPC灵活性和安全性更高。可适用于对安全隔离性要求较高的业务、托管多层web应用、弹性混合云部署等使用场景中,符合金融、政企等行业的强监管、数据安全要求。
基础网络与私有网络是云上的两种网络模式,用户未标注为VPC网络的云资源均部署在基础网络中。
路由器和交换机
路由器(VRouter)是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接VPC内的各个交换机,同时也是连接VPC和其他网络的网关设备。每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器关联一张路由表。更多信息,参见路由。
交换机(VSwitch)是组成专有网络的基础网络设备,用来连接不同的云产品实例。创建专有网络之后,您可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。您可以将应用部署在不同可用区的交换机内,提高应用的可用性。
私网地址范围
在创建专有网络和交换机时,您需要以CIDR地址块的形式指定专有网络使用的私网网段。关于CIDR的相关信息,参见维基百科上的Classless Inter-Domain Routing条目说明。也可参考文末。
您可以使用下表中标准的私网网段及其子网作为VPC的私网地址。专有网络创建成功之后,无法修改网段。建议使用比较大的网段,尽量避免后续扩容。
网段 | 可用私网IP数量 (不包括系统保留) |
---|---|
192.168.0.0/16 | 65532 |
172.16.0.0/12 | 1048572 |
10.0.0.0/8 | 16777212 |
交换机的网段不能和所属的专有网络的网段重叠,可以是其子集或者相同,网段大小在16位网络掩码与29位网络掩码之间。
经典网络用户如何平滑迁移
对于已经在经典网络内有较多云主机的客户如何实现经典网络和VPC之间的平滑迁移呢?
AWS(classiclink)和腾讯云(基础网络互通)都提供了平滑过渡方案,可以将经典网络内的云服务器关联至指定VPC,使经典网络中的云服务器可以与VPC内的云服务器、数据库等云服务通信。
VPC网络规划
问题一 应该使用几个VPC
单个VPC
如果您没有多地域部署系统的要求且各系统之间也不需要通过VPC进行隔离,那么推荐使用一个VPC。目前,单个VPC内运行的云产品实例可达15000个,这样的容量基本上可以满足您的需求。
说明:可用区是指在同一地域内,电力和网络互相独立的物理区域,在同一地域内可用区与可用区之间内网互通
多个VPC
如果您有如下任何一个需求,推荐您使用多个VPC。
多地域部署系统
VPC是地域级别的资源,是不能跨地域部署的。当您有多地域部署系统的需求时,就必然需要使用多个VPC。基于阿里巴巴骨干网构建的高速通道产品能轻松实现跨地域,跨国VPC间的互通。详情参考高速通道VPC互通。
多业务系统隔离
如果在一个地域的多个业务系统需要通过VPC进行严格隔离,比如生产环境和测试环境,那么也需要使用多个VPC,如下图所示。
问题二 应该使用几个交换机
首先,即使只使用一个VPC,也尽量使用至少两个交换机,并且将两个交换机分布在不同可用区,这样可以实现跨可用区容灾。
同一地域不同可用区之间的网络通信延迟很小,但也需要经过业务系统的适配和验证。由于系统调用复杂加上系统处理时间、跨可用区调用等原因可能产生期望之外的网络延迟。建议您进行系统优化和适配,在高可用和低延迟之间找到平衡。
其次,使用多少个交换机还和系统规模、系统规划有关。如果前端系统可以被公网访问并且有主动访问公网的需求,考虑到容灾可以将不同的前端系统部署在不同的交换机下,将后端系统部署在另外的交换机下。
问题三 应该选择什么网段
在创建VPC和交换机时,您必须以无类域间路由块 (CIDR block) 的形式为您的专有网络划分私网网段。
VPC网段
您可以根据以下建议规划VPC网段。
网段 | 可用私网IP数量 (不包括系统保留) |
---|---|
192.168.0.0/16 | 65532 |
172.16.0.0/12 | 1048572 |
10.0.0.0/8 | 16777212 |
注意:VPC创建成功后,网段无法再修改。
您可以使用下表中标准的私网网段及其子网作为VPC的私网地址范围。
如果有多个VPC,或者有VPC和线下IDC构建混合云的需求,建议使用上面这些标准网段的子网作为VPC的网段,掩码建议不超过16位。
如果云上只有一个VPC并且不需要和本地IDC互通时,可以选择上表中的任何一个网段或其子网。
VPC网段的选择还需要考虑到是否使用了经典网络。如果您使用了经典网络,并且计划将经典网络的ECS实例和VPC网络连通,那么,建议您选择非10.0.0.0/8作为VPC的网段,因为经典网络的网段也是10.0.0.0/8。
交换机网段
您可以根据以下建议规划交换机网段。同样,交换机创建成功后,网段无法再修改。
交换机的网段的大小在16位网络掩码与29位网络掩码之间,可提供8-65536个地址。16位掩码能支持65532个ECS实例,而小于29位掩码又太小,没有意义。
交换机的网段可以和其所属的VPC网段相同,或者是其VPC网段的子网。比如VPC的网段是192.168.0.0/16,那么该VPC下的虚拟交换机的网段可以是192.168.0.0/16,也可以是192.168.0.0/17一直到192.168.0.0/29。
注意:如果您的交换机网段和所属VPC网段相同,您在该VPC下只能创建一台交换机。
每个交换机的第一个和最后三个IP地址为系统保留地址。以192.168.1.0/24为例,192.168.1.0、 192.168.1.253、192.168.1.254和192.168.1.255这些地址是系统保留地址。
ClassicLink功能允许经典网络的ECS和192.168.0.0/16,10.0.0.0/8,172.16.0.0/12这三个VPC网段的ECS通信。例如,如果要和经典网络通信的VPC网段是10.0.0.0/8,则要和经典网络ECS通信的交换机的网段必须是10.111.0.0/16。详情参考ClassicLink。
交换机网段的确定还需要考虑该交换机下容纳ECS的数量。
问题四 VPC与VPC互通或者与本地数据中心互通时,如何规划网段
如下图所示,比如您在华东1、华北2、华南1三个地域分别有VPC1、VPC2和VPC3三个VPC。VPC1和VPC2通过高速通道内网互通,VPC3目前没有和其他VPC通信的需求,将来可能需要和VPC2通信。另外,您在上海还有一个自建IDC,需要通过高速通道(专线功能)和华东1的VPC1私网互通。
此例中VPC1和VPC2使用了不同的网段,而VPC3暂时没有和其他VPC互通的需求,所以VPC3的网段和VPC2的网段相同。但考虑到将来VPC2和VPC3之间有私网互通的需求,所以两个VPC中的交换机的网段都不相同。VPC互通要求互通的交换机的网段不能一样,但VPC的网段可以一样。
在多VPC的情况下,建议遵循如下网段规划原则:
尽可能做到不同VPC的网段不同,不同VPC可以使用标准网段的子网来增加VPC可用的网段数。
如果不能做到不同VPC的网段不同,则尽量保证不同VPC的交换机网段不同。
如果也不能做到交换机网段不同,则保证要通信的交换机网段不同。
各家VPC对比
目前,VPC也是各大云厂商正在力推的网络方案。AWS、阿里云、腾讯云等官网对VPC都有详细的介绍:
总的来说,AWS和腾讯云的评分最高,能支持弹性网卡、VPN服务、网络ACL等多项服务,很大程度上降低了用户使用VPC时的技术门槛,让复杂的VPC配置变得更加简便、安全、灵活。
同时,从腾讯云的官网说明看,腾讯云还支持外网IP直通、子网广播和组播、专线NAT功能,这些是目前公有云市场的独家服务。
虚拟网络VDC与VPC的更多相关文章
- [原] 利用 OVS 建立 VxLAN 虚拟网络实验
OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...
- 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)
本节将演示如何在实验环境中实现下图所示的虚拟网络 配置 Linux Bridge br0 编辑 /etc/network/interfaces,配置 br0. 下面用 vimdiff 展示了对 /et ...
- VMware虚拟网络编辑器
摘要:很多已经使用VMware很久的同学,也没有接触过VMware的虚拟网络编辑器这个工具.其 实这个工具非常有用.功能也很强大. 我们都知道,安装了VMware软件后,系统中会自动出现VMnet ...
- 转-深入理解VMware虚拟网络
原文出处:http://wangchunhai.blog.51cto.com/225186/381225 VMware Workstation是一款非常不错的虚拟机软件,许多爱好者用VMware Wo ...
- Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
<Windows Azure Platform 系列文章目录> 本文介绍的是国内使用世纪互联运维的Azure China 在笔者之前的文章中,我们知道现在微软官方不建议使用Affinity ...
- Docker实践(2)—虚拟网络
1 docker(container)的虚拟网络 docker的虚拟网络结构: host创建一个虚拟bridge,每个container对应一个虚拟网络设备(TAP设备),与bridge一起构成一个虚 ...
- Openstack的删除错误网桥,虚拟网络
在实验openstack的各种网络模式时,可能会产生一些错误的网络指向,需要删除那些网桥. 执行前 [root@node-9 ~]# ifconfig br40 Link encap:Ethernet ...
- linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用
---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10 一.虚拟网络三种连接方式 当在V ...
- Windows Azure 配置多个站点的虚拟网络连接
通过上一篇"Windows Azure 虚拟网络配置(Site to Site)" 我们建立了可以进行Site to Site连接的虚拟网络,配置过后有些朋友会有疑问:如果需要连接 ...
随机推荐
- Github最简单实用的Git命令指南
create a new repository on the command line echo "# test" >> README.md git init gi ...
- Arcmap连接数据库需管理员获取许可——创建ArcSDE连接文件
一.在装有server的服务器上创建ArcSDE连接文件 1.打开ArcMap<<ArcToolBox<<数据管理工具<<工作空间<<创建ArcSDE连 ...
- 《从Lucene到Elasticsearch:全文检索实战》学习笔记二
今天我给大家讲讲分词算法 分词算法概述:词是语义的最小单位.分词对搜索引擎的作用很大,可以促进搜索引擎程序自动识别语句的含义,可以提高搜索结果的匹配度,分析的质量也将直接影响了搜索结果的精确度.分词存 ...
- 服务器-华为RH5885 V3-安装Windows Server 2008R2后设备管理器中存在大量的感叹号,并且无法识别网络适配器,没有网卡
问题描述:用引导盘安装Windows Server 2008R2后,出现如题的情况. 根源:驱动未安装. 解决方法: 1.下载驱动:https://support.huawei.com/enterpr ...
- CodeForces - 444C
F - DZY Loves Colors DZY loves colors, and he enjoys painting. On a colorful day, DZY gets a colorfu ...
- https://blog.csdn.net/doegoo/article/details/50749817
因为使用DiscuzX3.2进行系统的整合后,因为只是想在原J2EE的系统上增加论坛功能,而且J2EE中已经有一套用户的注册认证的体系,所以不需要在Discuz的系统中去注册以及登录功能,而是通过在J ...
- Linux 文件查看,文件夹切换,权限查看
当前用户只操作当前用户目录 1. 输入终端显示内容: 用户 @ 系统 : 路径信息 $ $ 表示普通用户 家目录 # 表示超级用户 家目录 [sudo -i ] 使用root用户 : 使用 ...
- Redis 总结精讲 看一篇成高手系统-4
本文围绕以下几点进行阐述 1.为什么使用redis2.使用redis有什么缺点3.单线程的redis为什么这么快4.redis的数据类型,以及每种数据类型的使用场景5.redis的过期策略以及内存淘汰 ...
- PHP 从数组中删除指定元素
<?php $arr1 = array(1,3, 5,7,8); $key = array_search(3, $arr1); if ($key !== false){ array_splice ...
- ffmpeg 编译
下载FFmpeg git clone https://git.ffmpeg.org/ffmpeg.git 配置编译FFmpeg ./configure --prefix=host --enable-s ...