专有网络
- 专有网络最一开始有一个经典网络,已经被淘汰了。
- 现在是第二代专有网络,基于主流的隧道技术
- 每个专有网络都至少由一个私网网段、一个路由器(vRouter)和一个交换机(vSwitch),路由表(table)组成。
CIDR
内网网段CIDR选择:
- 建议使用RFC1918中指定的私有IPv4地址作为VPC的网段,网络掩码使用==16~28位==。如
10.0.0.0/16、172.16.0.0/16、192.168.0.0/16。 - 每个交换机网段的==第1个和最后3个IP==是系统保留。
- 不能使用
100.64.0.0/10、224.0.0.0/4、127.0.0.0/8或169.254.0.0/16网段作为VPC的IPv4网段(阿里云的保留网段)。 - 每个专有网络默认支持添加5个IPv4附加网段
VPC 核心概念
每个VPC都有一个独立的隧道号,一个隧道号对应一个虚拟网络。VPC之间通过隧道号进行隔离:
- VPC内部存在交换机和路由器,可以划分子网。每个子网内部用交换机互联,不同子网间用路由器互联,不同VPC之间通过对外映射的IP(EIP/NAT IP)互联。
- 同一VPC内的Aliyun/计算/ECS之间的数据传输会加上隧道封装,带有唯一的隧道号标识,通过物理网络传输
- 不同VPC之间的ECS由于所在的隧道号不同,本身处于不同的路由平面,所以==不能通信==。天然隔离。
- 因为IP报文用隧道封装,所以数据链路层(二层Mac地址)不会进入物理网络,实现了不同ECS之间的二层网络隔离,不同VPC之间的二层网络隔离
- VPC内部的ECS使用安全组防火墙进行三层网络访问控制
VPC 互通方式
如果您需要专有网络连接其他专有网络,您可以通过VPC对等连接、云企业网或VPN网关等方式实现互通。
如果您需要专有网络与本地数据中心互通,您可以通过购买VPN网关、高速通道物理专线或智能接入网关等方式实现。
- IPv4公网通信:您可以通过配置弹性公网IP或公网NAT网关的方式使专有网络内的ECS实例通过IPv4地址进行公网通信。
- IPv6公网通信:您需要为进行公网通信的IPv6地址购买公网带宽。您也可以为该IPv6地址配置仅主动出规则,只允许专有网络中的云产品实例经IPv6地址访问公网,而不允许IPv6客户端主动与专有网络中的云资源实例建立连接。
路由器
- 路由器是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接专有网络内的各个交换机,同时也是连接专有网络和其他网络的网关设备。
- 每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器至少关联一张路由表。
交换机
- 交换机是组成专有网络的基础网络设备,用来连接不同的云资源。其实就是==子网subnet==。
- 创建专有网络后,您可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。
- 将应用部署在不同可用区的交换机内,提高应用的可用性HA。
路由表
路由表控制的是出站流量的下一跳
类型
- 系统路由表:创建专有网络后,系统自动创建一张系统路由表。系统路由表和路由条目不能删。
- 自定义路由表:可以创建自定义路由表,绑定vswitch来控制子网路由。每个vswitch只能绑定一张路由表
- 网关路由表:将自定义路由表和IPv4网关绑定,控制进入VPC的公网流量路由,可以将公网流量重定向到安全设备做统一防护。
规则
最长前缀匹配:当路由表中有多条路由条目可以匹配目的IP时,采用掩码最长(最精确)的一条路由作为匹配项确定下一跳。
绑定与解绑
- 一个VSW最多绑定一个路由表,其内部路由策略就由这个路由表来管理。多个交换机可以绑定同一个路由表。
路由条目
包括:目标网段(流量希望到哪个IP)、下一条类型(跳到ECS、VPN网关、ENI等)、下一跳(具体的实例名称)
类型:
- 系统路由:创建VPC和交换机后,系统会在路由表中会自动添加以下IPv4路由:
- 以 100.64.0.0/10 为目标网段的路由条目,用于VPC内的云产品通信。
- 以交换机网段为目标网段的路由条目,用于交换机内的云产品通信。
- 自定义路由
- 动态路由:CEN学习的路由
共享VPC
专有网络VPC的所有者账号(资源所有者)可以将VPC内的非默认交换机共享给其他阿里云账号(主账号),其他阿里云账号(主账号)可以在共享的交换机内创建云资源。
当前支持共享给同一企业组织内的阿里云账号(主账号),也支持共享给任意阿里云账号(主账号)。
流日志、流量镜像
- 流日志:捕获ENI的流入流出流量。
- 流量镜像:可以复制VPC中ECS实例的网络流量,将复制后的流量转发给指定的ENI或者CLB。可用于内容检查等场景
弹性网卡
网卡类型包括==主网卡(Primary)和==辅助网卡(Secondary)。VPC网络中的每个实例都有默认的网卡,称为主网卡。
无法独立创建和从实例卸载主网卡;您可以创建并额外绑定到实例上的网卡,称为辅助网卡。
常用场景
- 内外网分离:主网卡接收公网访问流量,辅助网卡接收内网VPC流量
- 高可用:如果您的实例失效,其网卡可挂载到预配置的热/冷备用实例,以快速恢复服务。可以将一块网卡用作连接数据库实例或NAT实例等关键服务的主要或辅助网卡。如果实例失效,您(或更有可能是代表您运行的代码)可以将网卡挂载到热备用实例。由于网卡保留了私有IP地址、弹性EIP地址和MAC地址,因此只要您将网卡挂载到替代实例,网络流量就会立即开始流向备用实例。
弹性公网IP
弹性公网IP(Elastic IP Address,简称EIP)是可以独立购买和持有的公网IP地址资源。目前,EIP支持绑定到:
- 专有网络类型的云服务器Aliyun/计算/ECS实例
- 专有网络类型的私网传统型负载均衡CLB实例
- 私网类型的应用型负载均衡ALB
- 专有网络类型的辅助弹性网卡
- NAT网关
- 高可用虚拟IP
EIP 本质
EIP是一种==NAT IP==,它实际位于阿里云的公网网关上,通过NAT方式映射到被绑定的云资源上。当EIP和云资源绑定后,云资源可以通过EIP与公网通信。
弹性公网IP和普通公网IP
- 弹性IP是一种更灵活的公网IP,而普通的公网IP则是服务器自动分配的IP地址。
- 区别在于弹性公网IP长时间持有和无需绑定固定实例的IP地址。普通公网IP是自动绑定到实例上的,随实例释放而释放。
- 普通公网IP可以转换为弹性公网IP
EIP计费
- 按量计费 + 带宽峰值
- 按实际流量计费:0.8元/GB
- 如果只创建,没挂载到实例上,还要额外收取==0.02/h==的配置费用。绑定到实例上就不收这个钱了。
- 带宽峰值是不保证的。
- 固定带宽计费
- 每天固定金额
只有**流出的流量**是计费的,流入的不计费(公有云都是推荐大家把服务迁进来)
高可用虚拟IP
HaVip:可以独立创建和释放的私网IP资源,可以和高可用软件(如keepalived)配合使用,搭建高可用主备服务。
绑定方式
havip可以通过以下方式绑定Aliyun/计算/ECS实例:
- 直接与ECS实例绑定:可以和多个ECS绑定,其中一个ECS通过ARP协议宣告这个havip,那么ECS就是主,其余ECS就是备。主故障就能切换到备。
- havip绑定ECS的弹性网卡:某个弹性网卡可以通过ARP宣告这个havip,该网卡就是主,其余辅助网卡就是备。主网卡故障,就切换到备网卡。
havip具有以下特点:
- 是一个==浮动的私网IP==,不会固定在指定的ECS实例或弹性网卡上。ECS实例或弹性网卡可通过ARP协议宣告与havip的绑定关系。
- 具有子网属性,仅支持绑定到同一vsw下的ECS实例或弹性网卡上
内网和公网
- 面向内网:havip直接绑定多台ECS,通过keepalived组成主备,别人用内网IP访问服务
- 面向公网:havip可以绑定一个弹性公网IP(EIP)暴露公网服务。后端还是通过keepalived组成的主备ECS
havip只支持==单播==,不支持广播和组播通信,用keepalived实现高可用,需要修改配置文件中的通信方式为单播通信。
集成keepalived
两台ECS实例,部署了nginx服务。可以使用havip和keepalived搭建主备双机:
- 创建havip
- 在主备双机上都安装keepalived。keepalived的VIP用havip的内网IP。
- havip与主备ECS实例绑定
- havip绑定一个EIP提供公网服务
安全组
虚拟防火墙,控制Aliyun/计算/ECS出入站流量。
- ECS可以加入多个安全组。默认是绑定在主网卡上,也可以手动设置安全组绑定到辅助网卡上。
- 安全组是==有状态==的应用。一个有状态的会话连接中,会话的最长保持时长是==910秒==。允许访问并建立会话后,安全组会默认放行同一会话中的通信。例如:如果开放了80端口入站,那么80端口出战也是默认允许的。
- 默认情况下云厂商会封禁==25端口==,禁止一些恶意邮件服务。需要开放的话,提工单。或者用465端口也行。
- 一般情况下只限制入方向,出方向一般保持默认即可。
组内互通和组外不通
组内互通:
- 同一个安全组内的ECS实例内网互通
授权安全组访问:
- 同VPC不同安全组之间的实例默认内网隔离。
- 在同一个专有网络中,如果在实例间进行数据共享等操作,例如安全组A的实例都需要通过FTP查看安全组B的实例中的共享文件,您可以通过授权安全组访问实现内网互通,比授权单个IP地址或者CIDR地址块更加便捷。
- 安全组A和安全组B属于==同一账号==时,授权对象填写安全组ID即可
- 安全组A和安全组B属于==不同账号==时,授权对象需要填写"阿里云账号ID/安全组ID"
托管安全组
- 某些云产品相互调用的时候会自动开通某些规则来放行流量。
- 创建托管安全组的方式是阿里云云产品通过阿里云临时安全令牌(Security Token Service,STS)授权您的账号的RAM角色自动进行的。
默认安全组
安全风险
默认安全组是为了简化ECS实例初次使用流程而产生的,其默认规则针对TCP协议的==22、3389端口==以及ICMP(IPv4)协议,对任意源地址(0.0.0.0/0)放通流量,这是==不符合安全最佳实践==的。
从安全最佳实践的角度来看,阿里云建议您在安全组规则中仅放通指定的源地址,而不是任意源地址,建议您尽量不要使用默认安全组,而是根据自己业务需要创建新的安全组。
安全通信五元组
源IP、源端口、目的IP、目的端口以及传输层协议
VPC连接能力
连接公网
- ECS固定公网IP
- 弹性公网IP(支持动态绑定解绑)
- 公网NAT网关
- 负载均衡
连接VPC
连接本地IDC
- 高速通道:把VPC和IDC通过运营商物理专线连起来,公司独享
- VPN网关:IPSec-VPN:本地IDC连接VPC;SSL-VPN:本地客户端远程接入VPC
- 云企业网:本地IDC的边界路由器VBR接入到CEN,构建互联网络
- 智能接入网关:线下机构接入阿里云数据中心,构建混合云
VPC对等连接
发起端接收端
主动发起VPC对等连接的是==发起端==;被动等待连接请求的是==接收端==。
两端仅用于控制连接建立的过程,实际网络通信中是双向的,两端没有任何差别,相当于在同一个网络中。
同账号的VPC Peering,发起端发出请求,系统自动接收并建立连接,无需接收端接收连接请求。
跨账号的VPC Peering,接收方可以接受或拒绝连接请求。
路由配置
建立对等连接之后,需要在发起端和接收端都配置路由条目,指向对端的CIDR,下一条是对等连接。
路由配置示例
VPC A:192.168.0.0/16 -- VPC B:10.1.0.0/16
- VPC A添加自定义路由表:目标地址 10.1.0.0/16,下一跳:对等连接
- VPC B添加自定义路由表:目标地址 192.168.0.0/16,下一跳:对等连接
功能计费
同Region VPC对等连接==免费==,跨地域VPC对等连接统一由云数据传输CDT收取流量传输费。
功能限制
VPC对等连接没有路由传递能力
如果VPC1 -- VPC2,VPC2 -- VPC3分别建立了Peering,但是这不等于VPC1和VPC3自动互通。想要互通,还得VPC1和VPC3建立peering
- 提前做好网络规划,Peering的VPC之间的交换机不能有网段重叠
多VPC互联方案
- 两个VPC,Peering打通
- 三个VPC,两两Peering打通
- 多VPC:不同业务或者分支机构有独立的VPC,这些VPC和中心VPC连接互通,以便资源共享:
VPC A配置到各个子VPC的路由条目;子VPC配置一条到中心VPC的路由条目。
选择建议
随着VPC数量的增多,VPC对等连接的数目以及路由条目的数量会相应增多:n(n-1)/2,例如,10个VPC两两互通,则需创建==45个==VPC对等连接实例,每个VPC需要配置到其他9个VPC的路由,配置复杂度会变高。因此,建议创建两两VPC对等连接的VPC数量不超过==5个==。
VPC Peering:
- 优点:无带宽限制、延迟低、同地域不收费
- 缺点:VPC数量增加,配置复杂度上升。不适合大量VPC全联通的场景。
CEN+TR:带宽受限于TR的处理能力,也有带宽费用产生。
云中网络规划
什么时候使用多VPC
- VPC是Region级别资源,业务在多Region分布,就需要多VPC
- 同一地域的多个业务环境之间需要隔离,也需要多个VPC
子网选择
- 即使只有一个VPC,也推荐使用两个vsw,并且部署在两个可用区。实现==跨AZ容灾==。
网段选择
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,三个标准RFC私网网段。100.64.0.0/10,224.0.0.0/4,127.0.0/8,169.254.0.0/16,不支持作为自定义地址段- vsw网段大小推荐在==29-16位掩码==之间,可以提供8-65536个地址
- 注意每个vsw网段的第一个和最后三个IP为系统保留地址。