Virtual Private Cloud是專有的雲上私人網路,使用者可以完全掌控自己的專用網路。專用網路是地區層級的資源,在專用網路中可以建立與使用阿里雲產品資源,如Elastic Compute Service執行個體、雲資料庫RDS執行個體等。
交換器vSwitch是可用性區域層級的資源,可以使用交換器來劃分子網,同一VPC內的不同交換器之間內網互連。通過在多個不同可用性區域的交換器中同時部署雲產品資源,可以避免應用受到單一可用性區域故障的影響。
網路規劃
合理的網路規劃需要避免網段衝突並保障網路的可擴充性,網路規劃不當將會導致後期極高的重建成本。因此,建議在建立專用網路之前先進行網路規劃。
建立/刪除專用網路與交換器
控制台
建立專用網路和交換器
前往專用網路控制台的建立專用網路頁面。
配置專用網路:
地區:選擇計劃建立雲資源的地區。
IPv4網段:選擇控制台提供的建議網段,或根據需要輸入自訂網段。在多VPC互連等情境下,建議配置與已有VPC不重疊的網段來避免VPC互連時的網段衝突問題。為了避免網段衝突、保障網路的可擴充性,建議結合IPAM建立專用網路。
1、建議使用RFC1918中指定的私人IPv4地址作為VPC的網段,網路遮罩使用16~28位。如10.0.0.0/16、172.16.0.0/16、192.168.0.0/16。
2、不能使用100.64.0.0/10、224.0.0.0/4、127.0.0.0/8或169.254.0.0/16網段作為VPC的IPv4網段。
配置交換器:
可用性區域:後續用於建立雲資源的可用性區域。需根據所需資源在對應可用性區域的支援狀態及庫存情況(是否售罄)來選擇可用性區域。
IPv4網段:選擇控制台預設的網段,或根據需要調整網段範圍。
添加更多交換器:為了避免應用受到單可用性區域故障的影響,建議建立分布在不同可用性區域的多個交換器。可以在建立專用網路的過程中,建立交換器;也可以後續在專用網路控制台-交換器中,添加更多交換器。
刪除專用網路和交換器
在目標專用網路和交換器的操作列或詳情頁單擊刪除,系統將校正是否存在未刪除的雲產品資源或關聯資源。如有依賴資源時,需要完全釋放資源後,才可刪除專用網路和交換器。
1、刪除交換器前,需要確保交換器未共用、未綁定自訂路由表和網路ACL並且交換器內的雲產品資源已釋放。
2、刪除專用網路前,需要確保VPC內資源已釋放完成,且已取消與雲企業網等網路服務的關聯。
API
與控制台邏輯不同的是,使用CreateVpc僅建立一個空的專用網路,還需要使用CreateVSwitch建立交換器。
依次調用CreateVpc和CreateVSwitch建立專用網路和交換器。
依次調用DeleteVSwitch和DeleteVpc刪除交換器和專用網路。
1、刪除交換器前,需要確保交換器未共用、未綁定自訂路由表和網路ACL並且交換器內的雲產品資源已釋放。
2、刪除專用網路前,需要確保VPC內資源已釋放完成,且已取消與雲企業網等網路服務的關聯。
Terraform
Resources:alicloud_vpc、alicloud_vswitch
Data Sources:alicloud_zones
# 指定建立VPC的地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 根據資料來源自動擷取可以建立交換器的可用性區域列表
data "alicloud_zones" "available_zones" {
available_resource_creation = "VSwitch" # 查詢VPC內可建立的可用性區域
# available_instance_type = "ecs.g7.large" # 查詢VPC內可建立ECS執行個體的可用性區域
# available_resource_creation = "slb" # 查詢VPC內可建立SLB執行個體的可用性區域
}
# 建立VPC
resource "alicloud_vpc" "example_vpc" {
vpc_name = "example_vpc_name"
cidr_block = "10.0.0.0/16" #指定網段
}
# 建立交換器
resource "alicloud_vswitch" "example_vswitch" {
vswitch_name = "example_vswitch_name"
cidr_block = "10.0.0.0/24" # 指定網段
vpc_id = alicloud_vpc.example_vpc.id # 指定交換器所屬VPC的執行個體ID
zone_id = data.alicloud_zones.available_zones.zones.0.id # 指定交換器所屬可用性區域
}
開啟/關閉IPv6
為專用網路和交換器開啟IPv6後,預設僅支援私網通訊。如需公網通訊,可開通IPv6公網頻寬。
支援IPv4/IPv6雙棧的地區。
控制台
開啟IPv6
建立專用網路和交換器時,可以選擇以下方式開啟IPv6:
使用系統分配的IPv6位址區段,並下拉選擇分配BGP(多線),系統將自動建立IPv6網關並分配IPv6網段。
為了統一管理地址資源,可以使用IPAM分配的IPv6位址區段,選擇預置了IPv6 CIDR的位址集區並配置位址遮罩或指定CIDR,從位址集區中分配IPv6網段。
針對已建立的專用網路,可以在目標專用網路的IPv6網段列單擊開通IPv6:
選擇系統分配的IPv6位址區段或IPAM分配的IPv6位址區段。
由系統分配時,可以勾選自動開啟專用網路內所有交換器IPv6功能。未勾選或由IPAM分配時,需要在目標交換器的IPv6網段列單擊開通IPv6,為交換器開啟IPv6。
關閉IPv6
在目標專用網路/交換器的IPv6網段列單擊關閉IPv6,但關閉專用網路的IPv6,需要所有交換器關閉IPv6,並刪除該專用網路下的IPv6網關。
API
與控制台邏輯不同的是,調用API為專用網路和交換器開啟IPv6後,將不會自動建立IPv6網關,需調用CreateIpv6Gateway自行建立。
建立專用網路和交換器時,調整CreateVpc和CreateVSwitch的
EnableIPv6參數開啟/關閉IPv6。建立專用網路時,傳入Ipv6IpamPoolId和Ipv6CidrMask將從指定的IPv6位址集區中為VPC分配IPv6網段。針對已建立的專用網路和交換器,調整ModifyVpcAttribute與ModifyVSwitchAttribute的
EnableIPv6參數開啟/關閉IPv6。如需從指定IPv6位址集區中為VPC分配IPv6網段,調用AssociateVpcCidrBlock添加。
Terraform
Terraform當前僅支援系統分配IPv6位址區段,暫不支援從IPAM分配IPv6位址區段。
Resources:alicloud_vpc、alicloud_vswitch
Data Sources:alicloud_zones
# 指定建立VPC的地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 根據資料來源自動擷取可以建立交換器的可用性區域列表
data "alicloud_zones" "available_zones" {
available_resource_creation = "VSwitch" # 查詢VPC內可建立的可用性區域
# available_instance_type = "ecs.g7.large" # 查詢VPC內可建立ECS執行個體的可用性區域
# available_resource_creation = "slb" # 查詢VPC內可建立SLB執行個體的可用性區域
}
# 建立雙棧VPC
resource "alicloud_vpc" "example_vpc" {
vpc_name = "example_vpc_name"
cidr_block = "10.0.0.0/16"
enable_ipv6 = true # 開啟IPv6,false為關閉IPv6
ipv6_isp = "BGP" # 指定IPv6網段類型
}
# 建立雙棧交換器
resource "alicloud_vswitch" "example_vswitch" {
vswitch_name = "example_vswitch_name"
cidr_block = "10.0.0.0/24"
vpc_id = alicloud_vpc.example_vpc.id
zone_id = data.alicloud_zones.available_zones.zones.0.id
enable_ipv6 = true # 開啟IPv6,false為關閉IPv6
ipv6_cidr_block_mask = 1 # 指定交換器IPv6網段的最後8位元位
}
修改網段
建立專用網路時,為其指定的IPv4網段是專用網路的主網段。控制台不支援修改專用網路的主網段,但可以調整ModifyVpcAttribute介面的CidrBlock參數,在主網段內放大或縮小網段。需確保縮小後的網段包含已經使用的IP地址。
專用網路的IPv6網段、交換器的IPv4/IPv6網段,均不支援修改。
使用附加網段擴充網段地址
當專用網路的可用IP地址數不足以滿足擴充的業務規模,或者前期網路規劃不當導致地址不足時,可以使用附加網段擴充VPC地址空間。
附加網段與主網段同時生效,可用於建立交換器、部署ECS等雲產品資源。
1、不能使用100.64.0.0/10、224.0.0.0/4、127.0.0.0/8或169.254.0.0/16網段作為IPv4附加網段。
2、附加網段的地址塊不能與主網段重疊。
3、每個專用網路預設支援添加5個IPv4附加網段,5個IPv6附加網段。
控制台
添加附加網段
在目標專用網路的基本資料頁面,單擊網段管理頁簽,可以添加IPv4或IPv6附加網段。
針對IPv4附加網段,添加時有3種方式:
推薦網段:在10.0.0.0/16、172.16.0.0/16、192.168.0.0/16中選擇其一快速添加。
進階配置網段:自訂配置附加網段。
IPAM分配的IPv4位址區段:使用IPAM可以避免分配的網段出現衝突。如果已有預置CIDR的IPAM位址集區,建議選擇此項。配置時,首先選擇位址集區,再配置網路遮罩。
針對IPv6附加網段:
如果專用網路未開通IPv6功能,請單擊開通IPv6,可以選擇系統分配的IPv6位址區段,並下拉選擇分配BGP(多線)。為了統一管理地址資源,可以選擇IPAM分配的IPv6位址區段,首先選擇位址集區,再選擇位址遮罩或指定CIDR。
可以勾選自動開啟專用網路內所有交換器IPv6功能;或者在目標交換器的IPv6網段列單擊開通IPv6,來單獨為交換器開啟IPv6功能。
針對已開通IPv6功能的專用網路,請單擊添加IPv6網段,選擇系統分配的IPv6位址區段或IPAM分配的IPv6位址區段。
刪除附加網段
在目標專用網路的基本資料頁面,單擊網段管理>IPv4網段頁簽或IPv6網段頁簽,找到需要刪除的附加網段,在操作列單擊刪除。
API
調用AssociateVpcCidrBlock添加附加網段。
調用UnassociateVpcCidrBlock刪除附加網段。
Terraform
Terraform當前僅支援建立IPv4附加網段,暫不支援建立IPv6附加網段。
Resources:alicloud_vpc_ipv4_cidr_block
# 指定建立VPC的地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 指定VPC的ID
variable "vpc_id" {
default = "vpc-xxx" # 修改為VPC的實際ID
}
# 在VPC中建立附加網段
resource "alicloud_vpc_ipv4_cidr_block" "example_secondary_cidr_block" {
vpc_id = var.vpc_id
secondary_cidr_block = "192.168.0.0/16" # 指定附加網段
}預留網段
在交換器中預留網段,可以確保此網段不被其他資源的建立所佔用。預留的網段,當前僅用於給彈性網卡的輔助私網IP分配IP首碼。
1、預留網段內不能包含交換器的系統保留地址。
2、單個 VPC 支援建立的 IPv4、IPv6最大預留網段數目均為100個。
3、IPv4預留網段的掩碼長度最大不超過28,IPv6網段掩碼長度且最大不超過80。
控制台
建立預留網段
在目標交換器的基本資料頁面,單擊預留網段頁簽,添加IPv4或者IPv6的預留網段。添加時有2種方式:
指定位址區段:精確控制要預留的位址區段。
指定掩碼長度:系統自動從可用網段中劃分預留網段。
針對IPv6網段,如果交換器未開通IPv6功能,請單擊開通IPv6按鈕。在彈出的開通IPv6對話方塊中設定交換器IPv6網段。
如果專用網路未開通IPv6功能,請在彈出的開通IPv6對話方塊中,先將IPv6網段類型設為預設的分配BGP(多線),再設定交換器IPv6網段。
查看已佔用IP段
在目標交換器的基本資料頁面,單擊預留網段>IPv4網段頁簽或IPv6網段頁簽,找到目標預留網段,在操作列單擊查看已佔用IP,可查看已佔用的IP段及對應的彈性網卡。
刪除預留網段
刪除預留網段前,請確保預留網段已無IP段佔用。
在目標交換器的基本資料頁面,單擊預留網段>IPv4網段頁簽或IPv6網段頁簽,找到需要刪除的預留網段,在操作列單擊刪除。
API
調用CreateVSwitchCidrReservation建立預留網段。
調用GetVSwitchCidrReservationUsage查看已佔用IP段。
調用DeleteVSwitchCidrReservation刪除預留網段。
Terraform
Resources: alicloud_vpc_vswitch_cidr_reservation
# 指定建立VPC的地區
provider "alicloud" {
region = "cn-hangzhou" # 資源所在的地區
}
# 指定交換器的ID
variable "vsw_id" {
default = "vsw-xxx" # 修改為交換器的實際ID
}
# 建立預留網段
resource "alicloud_vpc_vswitch_cidr_reservation" "example_cidr_reservation" {
vswitch_id = var.vsw_id
ip_version = "IPv4"
cidr_reservation_cidr = "10.0.0.128/26" # 指定預留網段
}結合IPAM建立專用網路
IPAM 是雲上 IP 地址管理的工具,可以自動化分配與管理 IP 地址,簡化網路管理流程並避免地址衝突。結合IPAM規劃,建立IPAM和IPAM位址集區後,可以從IPAM位址集區為專用網路分配IPv4網段和IPv6網段。
控制台
建立專用網路前,請確保已通過IPAM控制台建立IPAM和IPAM位址集區。
前往專用網路控制台的建立專用網路頁面。
分配IPv4網段:使用IPAM分配的IPv4位址區段,選擇IPAM位址集區並配置掩碼,系統會預設分配指定掩碼範圍內第一個可用的CIDR,也可以在位址集區預置CIDR內,調整IPv4網段。
需開啟IPv6時:可以選擇IPAM分配的IPv6位址區段,首先選擇IPv6位址集區,再配置位址遮罩或指定CIDR。
API
如已建立過IPAM位址集區:
分配IPv4網段:可在調用CreateVpc時傳入
Ipv4IpamPoolId來指定IPAM位址集區,同時傳入Ipv4CidrMask來指定掩碼從IPAM位址集區中分配地址作為建立VPC的IPv4網段。也可以傳入CidrBlock來指定VPC使用的網段,而不是通過指定掩碼自動分配網段。分配IPv6網段:同時傳入
Ipv6IpamPoolId和Ipv6CidrMask,將從指定的IPv6位址集區中為VPC分配IPv6網段。
如未建立過IPAM位址集區,可依次調用如下API來建立IPAM位址集區,然後參考上述邏輯建立專用網路。
Terraform
Terraform當前僅支援從IPAM位址集區分配IPv4位址區段,暫不支援分配IPv6位址區段。
Resources:vpc_ipam_ipam、alicloud_vpc_ipam_ipam_pool、alicloud_vpc_ipam_ipam_pool_cidr、alicloud_vpc
# 指定建立IPAM、IPAM 位址集區、VPC的地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 建立IPAM
resource "alicloud_vpc_ipam_ipam" "example_ipam" {
ipam_name = "example_ipam_name"
operating_region_list = ["cn-hangzhou"] # 指定IPAM的生效地區
}
# 建立IPAM位址集區
resource "alicloud_vpc_ipam_ipam_pool" "example_parentIpamPool" {
ipam_scope_id = alicloud_vpc_ipam_ipam.example_ipam.private_default_scope_id # 指定IPAM位址集區的作用範圍
ipam_pool_name = "example_parentIpamPool_name"
pool_region_id = alicloud_vpc_ipam_ipam.example_ipam.region_id # 指定IPAM位址集區的生效地區
ip_version = "IPv4" # 指定IPAM位址集區的版本
}
# 為IPAM位址集區分配CIDR
resource "alicloud_vpc_ipam_ipam_pool_cidr" "example_ipamPoolCidr" {
cidr = "10.0.0.0/16" # 指定CIDR
ipam_pool_id = alicloud_vpc_ipam_ipam_pool.example_parentIpamPool.id # 指定IPAM位址集區的ID
}
# 建立VPC
resource "alicloud_vpc" "example_ipam_vpc" {
vpc_name = "example_ipam_vpc_name"
ipv4_ipam_pool_id = alicloud_vpc_ipam_ipam_pool.example_parentIpamPool.id # 指定IPAM位址集區的ID
ipv4_cidr_mask = 24 # IPv4網路遮罩
}
更多資訊
預設專用網路與預設交換器
預設專用網路和交換器能快速實現業務驗證與部署,但需要長期網路服務支撐或承載核心生產系統時,建議根據業務架構需求,自訂建立專用網路和交換器,通過精細化網路規劃實現資源隔離、安全管控及彈性擴充能力,從而構建符合業務需求的雲上網路環境。
每個地區只能建立一個預設專用網路,每個可用性區域只能建立一個預設交換器。預設專用網路和交換器不佔用阿里雲分配的配額。
在尚未建立任何專用網路的地區建立ECS、CLB、RDS執行個體時,可以選擇由阿里雲建立預設專用網路和交換器。此方式建立的預設專用網路網段固定為172.16.0.0/12。
可以在尚未建立預設專用網路的地區,調用CreateDefaultVpc和CreateDefaultVSwitch建立預設專用網路和交換器。此方式建立的預設專用網路的網段為172.xx.0.0/16。
除上述方式外,自行建立的專用網路和交換器均為非預設。預設專用網路和交換器可以刪除,但無法將預設專用網路和交換器和非預設專用網路和交換器互相轉換。
系統保留地址
交換器網段的地址空間中存在系統保留地址,無法將系統保留地址分配給ECS等雲資源。
針對IPv4,每個交換器的第1個和最後3個IP地址為系統保留地址。
例如,交換器的網段為192.168.1.0/24,則192.168.1.0、192.168.1.253、192.168.1.254和192.168.1.255這4個地址是系統保留地址。
針對IPv6,每個交換器的第1個和最後9個IP地址為系統保留地址。
例如,交換器的IPv6網段為2408:xxxx:xxxx:6eff::/64,則第1個2408:xxxx:xxxx:6eff::和最後9個2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff7、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff8、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff9、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffa、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffb、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffc、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffd、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffe和2408:xxxx:xxxx:6eff:ffff:ffff:ffff:ffff為系統保留IP。
跨帳號授權
在將VPC串連到跨帳號的雲企業網CEN、邊界路由器VBR、專線網關ECR之前,需要先在VPC中進行跨帳號授權。
授權操作可參考:為跨帳號雲企業網執行個體授權、為跨帳號邊界路由器VBR執行個體授權、為跨帳號專線網關ECR執行個體授權。
授權成功後,對方帳號在建立VPC串連、建立VBR上連、將VPC關聯到ECR時,才可以選擇本帳號的VPC執行個體。
1、此處的帳號指的是阿里雲帳號(主帳號),而非RAM使用者(子帳號)。
2、跨帳號授權不支援跨網站,即不支援中國站和國際站之間跨帳號。