子网
子网是虚拟私有云内的IP地址集,可以将虚拟私有云的网段分成若干块,子网划分可以帮助您合理规划IP地址资源。虚拟私有云中的所有云资源都必须部署在子网内。同一个虚拟私有云下,子网网段不可重复。
默认情况下,同一个VPC中,不同子网内的所有实例网络互通。
路由表与路由
路由表
路由表由一系列路由规则组成,用于控制VPC内出入子网的流量走向。VPC中的每个子网都必须关联一个路由表,一个子网只能关联一个路由表,但一个路由表可以同时关联至多个子网。
默认路由表:用户创建VPC时,系统会自动为其生成一个默认路由表,创建子网后,子网会自动关联默认路由表。默认路由表可以确保VPC内,不同子网的内网网络互通。
- 您可以在默认路由表中添加、删除和修改路由规则,但不能删除默认路由表。
- 创建VPN、云专线服务时,默认路由表会自动下发路由,该路由不能删除和修改。
自定义路由表:您可以直接使用默认路由表,也可以为具有相同路由规则的子网创建一个自定义路由表,并将自定义路由表与子网关联。自定义路由表可以删除。
子网关联自定义路由表仅影响子网的出流量走向,入流量仍然匹配子网所在VPC的默认路由表。
路由
您可以在默认路由表和自定义路由表中添加路由,路由包括目的地址、下一跳类型、下一跳地址等信息,可以决定网络流量的走向。路由分为系统路由和自定义路由。
系统路由:系统路由一般为VPC服务或者其他服务(比如VPN、DC等)自动在路由表添加的路由,无法删除或修改。
创建路由表时,VPC服务会自动在路由表中添加下一跳为Local的路由,通常情况下,路由表中有以下Local的路由:
- 目的地址是100.64.0.0/10,该路由用于子网内实例访问云上公共服务,比如访问DNS服务器等。
- 目的地址是198.19.128.0/20,表示系统内部服务使用的网段地址,比如VPCEP等服务。
- 目的地址是127.0.0.0/8,表示本地回环地址。
- 目的地址是子网网段,该路由用于当前VPC内,不同子网的内网网络互通。
您在创建子网时,开启IPv6功能,系统将自动为当前子网分配IPv6网段,就可以在路由表中看到IPv6路由。子网网段目的地址示例如下:
- IPv4地址:192.168.2.0/24。
- IPv6地址:240e:c080:802:be7::/64
自定义路由:路由表创建完成后,您可以添加自定义路由来控制网络流量的走向,需要指定路由的目的地址和下一跳等信息。除了手动添加自定义路由,当您使用其他云服务时(比如云容器引擎CCE或者NAT网关),其他服务会自动在VPC路由表中添加自定义路由。
路由表包括默认路由表和自定义路由表,不同路由表中支持添加自定义路由的下一跳类型有差异。
下表是默认路由表支持的下一跳类型。
下一跳类型 | 下一跳说明 |
---|---|
云主机实例 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例。 |
扩展网卡 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例的扩展网卡。 |
辅助弹性网卡 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例的辅助弹性网卡。 |
NAT网关 | 将指向目的地址的流量转发到一个NAT网关。 |
对等连接 | 将指向目的地址的流量转发到一个对等连接。 |
虚拟IP | 将指向目的地址的流量转发到一个虚拟IP地址,可以通过该虚拟IP地址将流量转发到主备ECS。 |
VPC终端节点 | 将指向目的地址的流量转发到一个VPC终端节点。 |
云容器引擎 | 将指向目的地址的流量转发到一个云容器引擎的节点。 |
下表是自定义路由表支持下一跳类型。
下一跳类型 | 说明 |
---|---|
云主机实例 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例。 |
扩展网卡 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例的扩展网卡。 |
物理机自定义网络 | 将指向目的地址的流量转发到一个物理机自定义网络。 |
VPN网关 | 将指向目的地址的流量转发到一个VPN网关。 |
云专线网关 | 将指向目的地址的流量转发到一个云专线网关。 |
辅助弹性网卡 | 将指向目的地址的流量转发到虚拟私有云内的一台ECS实例的辅助弹性网卡。 |
NAT网关 | 将指向目的地址的流量转发到一个NAT网关。 |
对等连接 | 将指向目的地址的流量转发到一个对等连接。 |
虚拟IP | 将指向目的地址的流量转发到一个虚拟IP地址,可以通过该虚拟IP地址将流量转发到主备ECS。 |
VPC终端节点 | 将指向目的地址的流量转发到一个VPC终端节点。 |
云容器引擎 | 将指向目的地址的流量转发到一个云容器引擎的节点。 |
说明个别由系统下发的路由可供用户修改和删除,这取决于创建对端服务时是否已设置目的地址。
例如,创建NAT网关时,系统会自动下发一条自定义类型的路由,没有明确指定目的地址(默认为0.0.0.0/0),此时用户可修改该目的地址。如果在路由表页面更改路由将会导致与对端数据不一致,您可以前往对端服务页面修改远端子网来调整路由表中的路由规则。
不支持手动在VPC路由表中添加下一跳类型为“VPC终端节点”或者“云容器引擎”的路由,通常您在配置VPC终端节点或者云容器引擎服务时,由该服务自动添加在VPC路由表中。
安全组
安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云主机、云容器、云数据库等实例提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当实例加入该安全组后,即受到这些访问规则的保护。
安全组中包括入方向规则和出方向规则,您可以针对每条入方向规则指定来源、端口和协议,针对出方向规则指定目的地、端口和协议,用来控制安全组内实例入方向和出方向的网络流量。以下图为例,在区域A内,某客户有一个虚拟私有云VPC-A和子网Subnet-A,在子网Subnet-A中创建一个云主机ECS-A,并为ECS-A关联一个安全组Sg-A来保护ECS-A的网络安全。
- 安全组Sg-A的入方向存在一条放通ICMP端口的自定义规则,因此可以通过个人PC (计算机)ping通ECS-A。但是安全组内未包含允许SSH流量进入实例的规则,因此您无法通过个人PC远程登录ECS-A。
- 当ECS-A需要通过EIP访问公网时,由于安全组Sg-A的出方向规则允许所有流量从实例流出,因此ECS-A可以访问公网。
对等连接
对等连接是建立在两个VPC之间的网络连接,不同VPC之间网络不通,通过对等连接可以实现不同VPC之间的云上内网通信。
对等连接用于连通同一个区域内的VPC,您可以在相同账户下或者不同账户下的VPC之间创建对等连接。
- 在区域A内,您的两个VPC分别为VPC-A和VPC-B,VPC-A和VPC-B之间网络不通。
- 您的业务服务器ECS-A01和ECS-A02位于VPC-A内,数据库服务器RDS-B01和RDS-B02位于VPC-B内,此时业务服务器和数据库服务器网络不通。
- 您需要在VPC-A和VPC-B之间建立对等连接Peering-AB,连通VPC-A和VPC-B之间的网络,业务服务器就可以访问数据库服务器。
网络ACL
网络ACL是一个子网级别的可选安全防护层,您可以在网络ACL中设置入方向和出方向规则,并将网络ACL绑定至子网,可以精准控制出入子网的流量。
网络ACL与安全组的防护范围不同,安全组对云主机、云容器、云数据库等实例进行防护,网络ACL对整个子网进行防护。安全组是必选的安全防护层,当您还想增加额外的安全防护层时,就可以启用网络ACL。两者结合起来,可以实现更精细、更复杂的安全访问控制。
网络ACL中包括入方向规则和出方向规则,您可以针对每条规则指定协议、来源端口和地址、目的端口和地址。
以下图为例,在区域A内,某虚拟私有云VPC-X有两个子网,子网Subnet-X01关联网络ACL Fw-A,Subnet-X01内部署的实例面向互联网提供Web服务。子网Subnet-X02关联网络ACL Fw-B,基于对等连接连通Subnet-X02和Subnet-Y01的网络,通过Subnet-Y01内的实例远程登录Subnet-X02内的实例。
- Fw-A的规则说明:
入方向自定义规则,允许外部任意IP地址,通过TCP (HTTP)协议访问Subnet-X01内实例的80端口。如果流量未匹配上自定义规则,则匹配默认规则,无法流入子网。
网络ACL是有状态的,允许入站请求的响应流量出站,不受规则限制,因此Subnet-X01内实例的响应流量可流出子网。非响应流量的其他流量则匹配默认规则,无法流出子网。
- Fw-B的规则说明:
入方向自定义规则,允许来自Subnet-Y01的流量,通过TCP (SSH)协议访问子网Subnet-X02内实例的22端口。
出方向自定义规则,放通ICMP协议全部端口,当在Subnet-X02内实例ping测试网络连通性时,允许去往Subnet-Y01的流量流出子网。
IP地址组
IP地址组是一个或者多个IP地址的集合,可关联至安全组、网络ACL,用于简化网络架构中IP地址的配置和管理。
对于需要统一管理的IP网段、单个IP地址,您可以将其添加到一个IP地址组内。
IP地址组无法独立使用,需要将IP地址组关联至对应的资源,可关联IP地址组的资源说明如下表所示。
资源 | 说明 | 示例 |
---|---|---|
安全组 | 添加安全组规则的时候,源地址和目的地址可以选择IP地址组。 | 如下图所示,安全组sg-A的的入方向规则的源地址使用IP地址组ipGroup-A。 |
网络ACL | 添加网络ACL规则的时候,源地址和目的地址可以选择IP地址组。 | 如下图所示,网络ACLfw-A的入方向规则的源地址使用IP地址组ipGroup-A。 |
虚拟IP
虚拟IP(Virtual IP Address)是从VPC子网网段中划分的一个内网IP地址,是一种可以独立申请和删除的内网IP地址,适用于以下场景:
- 将一个或者多个虚拟IP同时绑定至一个云主机,可以通过任意一个IP地址(私有IP/虚拟IP)访问云主机。通常当单个云主机内同时部署了多种业务,此时可以通过不同的虚拟IP访问各个业务。
- 将一个虚拟IP同时绑定至多个云主机,虚拟IP需要搭配高可用软件(比如Keepalived),用来搭建高可用的主备集群。为了提升服务的高可用性,避免单点故障,您可以用“一主一备”或“一主多备”的方法组合使用云主机,这些云主机对外呈现为一个虚拟IP。当主云主机故障时,备云主机可以转为主云主机并继续对外提供服务,以此达到高可用性HA(High Availability)的目的。
通常情况下,云主机使用私有IP地址进行内网通信,虚拟IP地址拥有私有IP地址同样的网络接入能力,包括VPC内二三层通信、VPC之间对等连接通信、EIP公网通信、接入VPN和云专线的能力。
- 私有IP地址:用于内网通信,不能访问公网。
- 虚拟IP:搭配Keepalived构建高可用集群,多个ECS构建的集群对外呈现一个虚拟IP。
- EIP:用于公网通信。
弹性网卡
弹性网卡(Elastic Network Interfaces,以下简称ENI)即虚拟网卡,您可以通过创建并配置弹性网卡,并将其附加到您的云主机实例(包括弹性云主机和物理机)上,实现灵活、高可用的网络方案配置。
弹性网卡类型
- 主弹性网卡:在创建实例时,随实例默认创建的弹性网卡称作主弹性网卡。无法解除主弹性网卡和实例的绑定关系。
- 扩展弹性网卡:您在弹性网卡控制台创建的是扩展弹性网卡,可以将网卡绑定到实例上,也可以解除网卡和实例的绑定关系。
弹性网卡应用场景
- 灵活迁移
通过将弹性网卡从云主机实例解绑后再绑定到另外一台云主机实例,保留已绑定私网IP、弹性公网IP和安全组策略,无需重新配置关联关系,将故障实例上的业务流量快速迁移到备用实例,实现服务快速恢复。
- 业务分离管理
可以为云主机实例配置多个分属于同一VPC内不同子网的弹性网卡,特定网卡分别承载云主机实例的内网、外网、管理网流量。针对子网可独立设置访问安全控制策略与路由策略,弹性网卡也可配置独立安全组策略,从而实现网络隔离与业务流量分离。
辅助弹性网卡
辅助弹性网卡是一种基于弹性网卡的衍生资源,用于解决单个云主机实例挂载的弹性网卡超出上限,不满足用户使用需要的问题。辅助弹性网卡通过VLAN子接口挂载在弹性网卡上,您可以通过创建辅助弹性网卡,使单个云主机实例挂载更多网卡,实现灵活、高可用的网络方案配置。
单个云主机实例支持绑定的弹性网卡数量有限,当因业务需要绑定超过弹性网卡上限的网卡时,可以通过为弹性网卡挂载辅助弹性网卡实现。
- 为云主机实例配置多个分属于同一VPC内不同子网的辅助弹性网卡,每个辅助弹性网卡拥有不同的私网IP、弹性公网IP,可以分别承载云主机实例的内网、外网和管理网流量。
- 辅助弹性网卡可配置独立安全组策略,从而实现网络隔离与业务流量分离。